I need a place to store pages that I don't find useful anymore. I don't know what to do with it, but they need to go somewhere. I can't have them clogging up my 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 page. Hopefully, I'll figure out what to do with them.

* [[Chronology of my Self-Dialectic: KIN & RPIN]]
* [[By 2030]]
* [[Philosophy Probe Log]]
* [[Realpolitik Speculation Vault]]
*  🢔⦗[[Dreams|Dreams of h0p3]]⦘🢖
//I dedicate this page to moot, Octavia Butler, and Sir Trent Moore. At least for a time, these people understood the paradoxes of being human.//

<<<
If you want to increase your success rate, double your failure rate. 

---Thomas "Arch Capitalist" Watson Jr.
<<<

Did a lightbulb turn on for you? You know you need to "get it out" before you lose that intuition or insight. If you don't know where to put it, then put it here! Better here than nowhere.

Evolution relies upon randomness. Apply the principle, mentat! Thus, we all must preserve, contain, and harness that beautiful spark of craziness in ourselves. It's simply too useful and wonderfully human not to.<<ref "1">>

Here I freewrite, doodle, and dash my chicken-scratch upon these wikipages.

This is a place to be creative and random. Be messy or organized. Go ahead and take a braindump. Let the psychic diarrhea flow.<<ref "2">> This is a place for chaotic, honest imagination. Peer behind the veil. Find the music. Find the diamonds and redpills in the rough. Be meta; take the first steps into a new frontier or idea; be free. 

You aren't beholden to any hierarchy or criticism here. Listen to your gut, and go with the flow. Try to use your bigboy words, but if you can't, that's okay too. Just get it out! Take a deep breath and push(!) that turd-baby of a thought onto the pages of this wiki. Push! You can do it!

* [[Deschloroketamine]]
* [[Ego]]
* [[Humanity]]
* [[If I Were Dictator]]
* [[Reputation]]
* [[Osha-10 Test]]
* [[Humans: Years 25-35]]
* [[Glasses]]
* [[DCK Ramble]]
* [[To: My Family]]
* [[Redpill Realtalk]]
* [[Do we have to trust ourselves when "we don't trust ourselves?"]]
* [[How many stairs are in a staircase?]]
* [[Why should I empathize with those who don't empathize with themselves?]]
* [[Doctor's Unions]]
* [[The Tree of Eudaimonia]]
* [[Lightbot MMOG]]
* [[VPN Interview]]
* [[FOSS]]1
* [[DjinniOS (ˈGeniusˈ)]]
* [[Getting to Know Someone in X Questions]]
* [[I'm a revolutionary, not a reformist]]
* [[Open Source Decentralized Gaming Servers]]
* [[Vocation]]
* [[asdf]]
* [[Marriages are Legal Corporations]]
* [[I See Jesi Everywhere]]
* [[When I try to change myself, it feels 2nd Personal. Liking and hating myself feels second-personal very often. Second-personal respect must be understood.]]
* [[Making it a list]]
* [[Being Cynical About Cynicism]]
* [[Transferring Our Minds to Technologic Hardware]]
* [[Money, Money, Money, Money, Money, Money, Money]]
* [[Dave Chappelle's Redpill Conversion]]
* [[Old random precursor document I found a copy of]]
* [[JRE, Rat poison and Grape choke, also birth]]
* [[Sanity: What Standard To Use?]]
* [[The Pinnacle of Parental Sacrifice]]
* [[Seize the Means of Production by Making Your Technology Your Own]]
* [[Beware of those who say "X has no class"]]
* [[Beware how accusations of "virtue signaling" are themselves hypocritical variations of virtue signaling]]

Of course, this begins to look like its own 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 page.<<ref "3">> But, I will not slip into that infinigress, or at least it can be contained. You'd be surprised where the seeds eventually germinate and find themselves. Not all your ideas are good, but the thread of genius will be in some of them. 

---

<<footnotes "2" "You don't have to be proud of it, but you know you'll look at it. You always look at the shit which came out of your rectum. Most people do. Enjoy it. You aren't living if you aren't looking at your shit.">>

<<footnotes "3" "It was definitely how the 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 started out. It's important to keep this kind of freezone available. The 4chan consciousness was proof of it. The irony of what they would think of this truly magnificent device and my obvious autism is not lost on me. I am thankful, nonetheless, to those low-empathy anons.">>
* [[Practical Computer Science]]
This wiki's symbol for [[logical equivalence|Logical Equivalence]]. You are looking at a technical, logical claim when you see this used in the wiki. I mean a lot by it.
{{🢔⦗Home⦘🢖 ASCII Art Logo||Wiki: Center ASCII Art Settings}}


@@display:block;text-align:center;
!!🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖 
@@

@@display:block;text-align:center;

!!!!!🢔⦗[[Help|Help: On this Wiki]]⦘🢖 🢔⦗[[Connect|Ways to Connect to this Wiki]]⦘🢖 🢔⦗[[Verify|Cryptographic Verification]]⦘🢖 🢔⦗[[Contact]]⦘🢖 🢔⦗[[Legal|Legal Notice]]⦘🢖

@@
7MM                7MM  7MM                                                7MM        MM  
MM                 MM   MM                                                 MM        MM 
MMpMMMb.  .gP"Ya   MM   MM  ,j3d1h.      `7M'    ,A    `MF',pW"Wq. 7Mb,od8 MM   ,1uxb0x 
MM    MM ,M'   Yb  MM   MM 6W'   `Wb       VA   ,VAA   ,V 6W'   `Wb MM' "' MM ,AP    MM 
MM    MM 8Mk0sh3k  MM   MM 8M     M8        VA ,V  VA ,V  8M     M8 MM     MM 8MI    MM 
MM    MM YM.    ,  MM   MM YA.   ,A9         VVV    VVV   YA.   ,A9 MM     MM `Mb    MM 
JMML  JMML `Mbmmd' JMML JMML `Ybmd9'           W      W     `Ybmd9' JMML   h0p3 `Wbmd"MML 

New
show
show
show
show
permaview
yes

YYYY.0MM.0DD -- 
hide
hide
show
hide
show
show
hide
hide
show
hide
hide
hide
hide
hide
hide
no
yes
yes
yes
tc-btn-invisible
yes
no
disable
{
    "tiddlers": {
        "$:/Acknowledgements": {
            "title": "$:/Acknowledgements",
            "type": "text/vnd.tiddlywiki",
            "text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
        },
        "$:/core/copyright.txt": {
            "title": "$:/core/copyright.txt",
            "type": "text/plain",
            "text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2017, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
        },
        "$:/core/icon": {
            "title": "$:/core/icon",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
        },
        "$:/core/images/advanced-search-button": {
            "title": "$:/core/images/advanced-search-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-advanced-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z\"></path>\n        <circle cx=\"48\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"28\" cy=\"48\" r=\"8\"></circle>\n        <circle cx=\"68\" cy=\"48\" r=\"8\"></circle>\n    </g>\n</svg>"
        },
        "$:/core/images/auto-height": {
            "title": "$:/core/images/auto-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-auto-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M67.9867828,114.356363 L67.9579626,99.8785426 C67.9550688,98.4248183 67.1636987,97.087107 65.8909901,96.3845863 L49.9251455,87.5716209 L47.992126,95.0735397 L79.8995411,95.0735397 C84.1215894,95.0735397 85.4638131,89.3810359 81.686497,87.4948823 L49.7971476,71.5713518 L48.0101917,79.1500092 L79.992126,79.1500092 C84.2093753,79.1500092 85.5558421,73.4676733 81.7869993,71.5753162 L49.805065,55.517008 L48.0101916,63.0917009 L79.9921259,63.0917015 C84.2035118,63.0917016 85.5551434,57.4217887 81.7966702,55.5218807 L65.7625147,47.4166161 L67.9579705,50.9864368 L67.9579705,35.6148245 L77.1715737,44.8284272 C78.7336709,46.3905243 81.2663308,46.3905243 82.8284279,44.8284271 C84.390525,43.2663299 84.390525,40.7336699 82.8284278,39.1715728 L66.8284271,23.1715728 C65.2663299,21.6094757 62.73367,21.6094757 61.1715729,23.1715729 L45.1715729,39.1715729 C43.6094757,40.73367 43.6094757,43.26633 45.1715729,44.8284271 C46.73367,46.3905243 49.26633,46.3905243 50.8284271,44.8284271 L59.9579705,35.6988837 L59.9579705,50.9864368 C59.9579705,52.495201 60.806922,53.8755997 62.1534263,54.5562576 L78.1875818,62.6615223 L79.9921261,55.0917015 L48.0101917,55.0917009 C43.7929424,55.0917008 42.4464755,60.7740368 46.2153183,62.6663939 L78.1972526,78.7247021 L79.992126,71.1500092 L48.0101917,71.1500092 C43.7881433,71.1500092 42.4459197,76.842513 46.2232358,78.7286665 L78.1125852,94.6521971 L79.8995411,87.0735397 L47.992126,87.0735397 C43.8588276,87.0735397 42.4404876,92.5780219 46.0591064,94.5754586 L62.024951,103.388424 L59.9579785,99.8944677 L59.9867142,114.32986 L50.8284271,105.171573 C49.26633,103.609476 46.73367,103.609476 45.1715729,105.171573 C43.6094757,106.73367 43.6094757,109.26633 45.1715729,110.828427 L61.1715729,126.828427 C62.73367,128.390524 65.2663299,128.390524 66.8284271,126.828427 L82.8284278,110.828427 C84.390525,109.26633 84.390525,106.73367 82.8284279,105.171573 C81.2663308,103.609476 78.7336709,103.609476 77.1715737,105.171573 L67.9867828,114.356363 L67.9867828,114.356363 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n</svg>"
        },
        "$:/core/images/blank": {
            "title": "$:/core/images/blank",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"></svg>"
        },
        "$:/core/images/bold": {
            "title": "$:/core/images/bold",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-bold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.1456583,51.8095238 L41.1456583,21.8711485 L67.4985994,21.8711485 C70.0084159,21.8711485 72.4285598,22.0802967 74.7591036,22.4985994 C77.0896475,22.9169022 79.1512515,23.6638602 80.9439776,24.7394958 C82.7367036,25.8151314 84.170863,27.3090474 85.2464986,29.2212885 C86.3221342,31.1335296 86.859944,33.5835518 86.859944,36.5714286 C86.859944,41.9496067 85.2465147,45.8337882 82.0196078,48.2240896 C78.792701,50.614391 74.6694929,51.8095238 69.6498599,51.8095238 L41.1456583,51.8095238 Z M13,0 L13,128 L75.0280112,128 C80.7647346,128 86.3519803,127.28292 91.789916,125.848739 C97.2278517,124.414559 102.068139,122.203563 106.310924,119.215686 C110.553709,116.22781 113.929959,112.373506 116.439776,107.652661 C118.949592,102.931816 120.204482,97.3445701 120.204482,90.8907563 C120.204482,82.8832466 118.262391,76.0411115 114.378151,70.3641457 C110.493911,64.6871798 104.607883,60.7133634 96.719888,58.442577 C102.456611,55.6937304 106.788968,52.1680887 109.717087,47.8655462 C112.645206,43.5630037 114.109244,38.1849062 114.109244,31.7310924 C114.109244,25.7553389 113.123259,20.7357813 111.151261,16.6722689 C109.179262,12.6087565 106.400578,9.35201972 102.815126,6.90196078 C99.2296739,4.45190185 94.927196,2.68908101 89.907563,1.61344538 C84.8879301,0.537809748 79.3305627,0 73.2352941,0 L13,0 Z M41.1456583,106.128852 L41.1456583,70.9915966 L71.8011204,70.9915966 C77.896389,70.9915966 82.7964334,72.3958776 86.5014006,75.2044818 C90.2063677,78.0130859 92.0588235,82.7039821 92.0588235,89.2773109 C92.0588235,92.6237329 91.4911355,95.3725383 90.3557423,97.5238095 C89.2203491,99.6750808 87.6965548,101.378145 85.7843137,102.633053 C83.8720726,103.887961 81.661077,104.784311 79.1512605,105.322129 C76.641444,105.859947 74.0121519,106.128852 71.2633053,106.128852 L41.1456583,106.128852 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/cancel-button": {
            "title": "$:/core/images/cancel-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n\t<g fill-rule=\"evenodd\">\n\t    <path d=\"M64,76.3137085 L47.0294734,93.2842351 C43.9038742,96.4098343 38.8399231,96.4084656 35.7157288,93.2842712 C32.5978915,90.166434 32.5915506,85.0947409 35.7157649,81.9705266 L52.6862915,65 L35.7157649,48.0294734 C32.5901657,44.9038742 32.5915344,39.8399231 35.7157288,36.7157288 C38.833566,33.5978915 43.9052591,33.5915506 47.0294734,36.7157649 L64,53.6862915 L80.9705266,36.7157649 C84.0961258,33.5901657 89.1600769,33.5915344 92.2842712,36.7157288 C95.4021085,39.833566 95.4084494,44.9052591 92.2842351,48.0294734 L75.3137085,65 L92.2842351,81.9705266 C95.4098343,85.0961258 95.4084656,90.1600769 92.2842712,93.2842712 C89.166434,96.4021085 84.0947409,96.4084494 80.9705266,93.2842351 L64,76.3137085 Z M64,129 C99.346224,129 128,100.346224 128,65 C128,29.653776 99.346224,1 64,1 C28.653776,1 1.13686838e-13,29.653776 1.13686838e-13,65 C1.13686838e-13,100.346224 28.653776,129 64,129 Z M64,113 C90.509668,113 112,91.509668 112,65 C112,38.490332 90.509668,17 64,17 C37.490332,17 16,38.490332 16,65 C16,91.509668 37.490332,113 64,113 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-down": {
            "title": "$:/core/images/chevron-down",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 40.500000) rotate(-270.000000) translate(-64.000000, -40.500000) translate(-22.500000, -26.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/chevron-left": {
            "title": "$:/core/images/chevron-left",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" version=\"1.1\">\n    <g fill-rule=\"evenodd\" transform=\"translate(92.500000, 64.000000) rotate(-180.000000) translate(-92.500000, -64.000000) translate(6.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-right": {
            "title": "$:/core/images/chevron-right",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-right tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-48.000000, -3.000000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/chevron-up": {
            "title": "$:/core/images/chevron-up",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-chevron-up tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 89.500000) rotate(-90.000000) translate(-64.000000, -89.500000) translate(-22.500000, 22.500000)\">\n        <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n        <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/clone-button": {
            "title": "$:/core/images/clone-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-clone-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M32.2650915,96 L32.2650915,120.002359 C32.2650915,124.419334 35.8432884,128 40.2627323,128 L120.002359,128 C124.419334,128 128,124.421803 128,120.002359 L128,40.2627323 C128,35.8457573 124.421803,32.2650915 120.002359,32.2650915 L96,32.2650915 L96,48 L108.858899,48 C110.519357,48 111.853018,49.3405131 111.853018,50.9941198 L111.853018,108.858899 C111.853018,110.519357 110.512505,111.853018 108.858899,111.853018 L50.9941198,111.853018 C49.333661,111.853018 48,110.512505 48,108.858899 L48,96 L32.2650915,96 Z\"></path>\n        <path d=\"M40,56 L32.0070969,56 C27.5881712,56 24,52.418278 24,48 C24,43.5907123 27.5848994,40 32.0070969,40 L40,40 L40,32.0070969 C40,27.5881712 43.581722,24 48,24 C52.4092877,24 56,27.5848994 56,32.0070969 L56,40 L63.9929031,40 C68.4118288,40 72,43.581722 72,48 C72,52.4092877 68.4151006,56 63.9929031,56 L56,56 L56,63.9929031 C56,68.4118288 52.418278,72 48,72 C43.5907123,72 40,68.4151006 40,63.9929031 L40,56 Z M7.9992458,0 C3.58138434,0 0,3.5881049 0,7.9992458 L0,88.0007542 C0,92.4186157 3.5881049,96 7.9992458,96 L88.0007542,96 C92.4186157,96 96,92.4118951 96,88.0007542 L96,7.9992458 C96,3.58138434 92.4118951,0 88.0007542,0 L7.9992458,0 Z M19.0010118,16 C17.3435988,16 16,17.336731 16,19.0010118 L16,76.9989882 C16,78.6564012 17.336731,80 19.0010118,80 L76.9989882,80 C78.6564012,80 80,78.663269 80,76.9989882 L80,19.0010118 C80,17.3435988 78.663269,16 76.9989882,16 L19.0010118,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-all-button": {
            "title": "$:/core/images/close-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-close-all-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\" transform=\"translate(-23.000000, -23.000000)\">\n        <path d=\"M43,131 L22.9976794,131 C18.5827987,131 15,127.418278 15,123 C15,118.590712 18.5806831,115 22.9976794,115 L43,115 L43,94.9976794 C43,90.5827987 46.581722,87 51,87 C55.4092877,87 59,90.5806831 59,94.9976794 L59,115 L79.0023206,115 C83.4172013,115 87,118.581722 87,123 C87,127.409288 83.4193169,131 79.0023206,131 L59,131 L59,151.002321 C59,155.417201 55.418278,159 51,159 C46.5907123,159 43,155.419317 43,151.002321 L43,131 Z\" transform=\"translate(51.000000, 123.000000) rotate(-45.000000) translate(-51.000000, -123.000000) \"></path>\n        <path d=\"M43,59 L22.9976794,59 C18.5827987,59 15,55.418278 15,51 C15,46.5907123 18.5806831,43 22.9976794,43 L43,43 L43,22.9976794 C43,18.5827987 46.581722,15 51,15 C55.4092877,15 59,18.5806831 59,22.9976794 L59,43 L79.0023206,43 C83.4172013,43 87,46.581722 87,51 C87,55.4092877 83.4193169,59 79.0023206,59 L59,59 L59,79.0023206 C59,83.4172013 55.418278,87 51,87 C46.5907123,87 43,83.4193169 43,79.0023206 L43,59 Z\" transform=\"translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) \"></path>\n        <path d=\"M115,59 L94.9976794,59 C90.5827987,59 87,55.418278 87,51 C87,46.5907123 90.5806831,43 94.9976794,43 L115,43 L115,22.9976794 C115,18.5827987 118.581722,15 123,15 C127.409288,15 131,18.5806831 131,22.9976794 L131,43 L151.002321,43 C155.417201,43 159,46.581722 159,51 C159,55.4092877 155.419317,59 151.002321,59 L131,59 L131,79.0023206 C131,83.4172013 127.418278,87 123,87 C118.590712,87 115,83.4193169 115,79.0023206 L115,59 Z\" transform=\"translate(123.000000, 51.000000) rotate(-45.000000) translate(-123.000000, -51.000000) \"></path>\n        <path d=\"M115,131 L94.9976794,131 C90.5827987,131 87,127.418278 87,123 C87,118.590712 90.5806831,115 94.9976794,115 L115,115 L115,94.9976794 C115,90.5827987 118.581722,87 123,87 C127.409288,87 131,90.5806831 131,94.9976794 L131,115 L151.002321,115 C155.417201,115 159,118.581722 159,123 C159,127.409288 155.419317,131 151.002321,131 L131,131 L131,151.002321 C131,155.417201 127.418278,159 123,159 C118.590712,159 115,155.419317 115,151.002321 L115,131 Z\" transform=\"translate(123.000000, 123.000000) rotate(-45.000000) translate(-123.000000, -123.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/close-button": {
            "title": "$:/core/images/close-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M65.0864256,75.4091629 L14.9727349,125.522854 C11.8515951,128.643993 6.78104858,128.64922 3.65685425,125.525026 C0.539017023,122.407189 0.5336324,117.334539 3.65902635,114.209145 L53.7727171,64.0954544 L3.65902635,13.9817637 C0.537886594,10.8606239 0.532659916,5.79007744 3.65685425,2.6658831 C6.77469148,-0.451954124 11.8473409,-0.457338747 14.9727349,2.66805521 L65.0864256,52.7817459 L115.200116,2.66805521 C118.321256,-0.453084553 123.391803,-0.458311231 126.515997,2.6658831 C129.633834,5.78372033 129.639219,10.8563698 126.513825,13.9817637 L76.4001341,64.0954544 L126.513825,114.209145 C129.634965,117.330285 129.640191,122.400831 126.515997,125.525026 C123.39816,128.642863 118.32551,128.648248 115.200116,125.522854 L65.0864256,75.4091629 L65.0864256,75.4091629 Z\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/close-others-button": {
            "title": "$:/core/images/close-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-close-others-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z M64,96 C81.673112,96 96,81.673112 96,64 C96,46.326888 81.673112,32 64,32 C46.326888,32 32,46.326888 32,64 C32,81.673112 46.326888,96 64,96 Z M64,80 C72.836556,80 80,72.836556 80,64 C80,55.163444 72.836556,48 64,48 C55.163444,48 48,55.163444 48,64 C48,72.836556 55.163444,80 64,80 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/copy-clipboard": {
            "title": "$:/core/images/copy-clipboard",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-copy-clipboard tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\">\n\t\t<rect x=\"40\" y=\"40\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"82\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"54\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"96\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"68\" width=\"12\" height=\"8\" rx=\"4\"></rect>\n\t\t<path d=\"M40,16 L23.9992458,16 C19.5813843,16 16,19.5907123 16,24 C16,24.0016363 16.0000005,24.0032725 16.0000015,24.0049086 C16.0000005,24.0065441 16,24.0081803 16,24.0098166 L16,119.990183 C16,119.99182 16.0000005,119.993456 16.0000015,119.995092 C16.0000005,119.996727 16,119.998364 16,120 C16,124.409288 19.5813843,128 23.9992458,128 L104.000754,128 C106.205061,128 108.203844,127.105595 109.652065,125.659342 C111.102424,124.21251 112,122.214511 112,120.007595 L112,103.992405 C112,99.5776607 108.418278,96 104,96 C99.5907123,96 96,99.5783218 96,103.992405 L96,112 L32,112 L32,32 L96,32 L96,40.0075946 C96,44.4223393 99.581722,48 104,48 C108.409288,48 112,44.4216782 112,40.0075946 L112,23.9924054 C112,21.7851587 111.104671,19.7871591 109.657101,18.3409203 C108.203844,16.8944047 106.205061,16 104.000754,16 L88,16 C88,11.5907123 84.4151006,8 79.9929031,8 L48.0070969,8 C43.5881712,8 40,11.581722 40,16 Z M44,14.9958262 C44,12.7889923 45.7964248,11 48.0000255,11 L79.9999745,11 C82.2091276,11 84,12.7965212 84,14.9958262 L84,19.0041738 C84,21.2110077 82.2035752,23 79.9999745,23 L48.0000255,23 C45.7908724,23 44,21.2034788 44,19.0041738 L44,14.9958262 Z\"></path>\n\t\t<rect x=\"62\" y=\"64\" width=\"66\" height=\"16\" rx=\"8\"></rect>\n\t\t<path d=\"M60.6568542,85.6568542 L76.6568542,69.6568543 L65.3431458,69.6568542 L81.3431458,85.6568542 C84.4673401,88.7810486 89.5326599,88.7810486 92.6568542,85.6568542 C95.7810486,82.5326599 95.7810486,77.4673401 92.6568542,74.3431458 L76.6568542,58.3431458 C73.5326599,55.2189514 68.4673401,55.2189514 65.3431458,58.3431457 L49.3431458,74.3431457 C46.2189514,77.4673401 46.2189514,82.5326599 49.3431457,85.6568542 C52.4673401,88.7810486 57.5326599,88.7810486 60.6568542,85.6568542 L60.6568542,85.6568542 Z\" transform=\"translate(71.000000, 72.000000) rotate(-90.000000) translate(-71.000000, -72.000000) \"></path>\n\t</g>\n</svg>"
        },
        "$:/core/images/delete-button": {
            "title": "$:/core/images/delete-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\" transform=\"translate(12.000000, 0.000000)\">\n        <rect x=\"0\" y=\"11\" width=\"105\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"28\" y=\"0\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"8\" y=\"112\" width=\"88\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"56\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n        <rect x=\"32\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/done-button": {
            "title": "$:/core/images/done-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M3.52445141,76.8322939 C2.07397484,75.3828178 1.17514421,73.3795385 1.17514421,71.1666288 L1.17514421,23.1836596 C1.17514421,18.7531992 4.75686621,15.1751442 9.17514421,15.1751442 C13.5844319,15.1751442 17.1751442,18.7606787 17.1751442,23.1836596 L17.1751442,63.1751442 L119.173716,63.1751442 C123.590457,63.1751442 127.175144,66.7568662 127.175144,71.1751442 C127.175144,75.5844319 123.592783,79.1751442 119.173716,79.1751442 L9.17657227,79.1751442 C6.96796403,79.1751442 4.9674142,78.279521 3.51911285,76.8315312 Z\" id=\"Rectangle-285\" transform=\"translate(64.175144, 47.175144) rotate(-45.000000) translate(-64.175144, -47.175144) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/down-arrow": {
            "title": "$:/core/images/down-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <path d=\"M109.35638,81.3533152 C107.923899,82.7869182 105.94502,83.6751442 103.759224,83.6751442 L24.5910645,83.6751442 C20.225873,83.6751442 16.6751442,80.1307318 16.6751442,75.7584775 C16.6751442,71.3951199 20.2192225,67.8418109 24.5910645,67.8418109 L95.8418109,67.8418109 L95.8418109,-3.40893546 C95.8418109,-7.77412698 99.3862233,-11.3248558 103.758478,-11.3248558 C108.121835,-11.3248558 111.675144,-7.78077754 111.675144,-3.40893546 L111.675144,75.7592239 C111.675144,77.9416955 110.789142,79.9205745 109.356651,81.3538862 Z\" transform=\"translate(64.175144, 36.175144) rotate(45.000000) translate(-64.175144, -36.175144) \"></path>\n</svg>"
        },
        "$:/core/images/download-button": {
            "title": "$:/core/images/download-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-download-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path class=\"tc-image-download-button-ring\" d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"/><path d=\"M34.3496823,66.4308767 L61.2415823,93.634668 C63.0411536,95.4551107 65.9588502,95.4551107 67.7584215,93.634668 L94.6503215,66.4308767 C96.4498928,64.610434 96.4498928,61.6588981 94.6503215,59.8384554 C93.7861334,58.9642445 92.6140473,58.4731195 91.3919019,58.4731195 L82.9324098,58.4731195 C80.3874318,58.4731195 78.3243078,56.3860674 78.3243078,53.8115729 L78.3243078,38.6615466 C78.3243078,36.0870521 76.2611837,34 73.7162058,34 L55.283798,34 C52.7388201,34 50.675696,36.0870521 50.675696,38.6615466 L50.675696,38.6615466 L50.675696,53.8115729 C50.675696,56.3860674 48.612572,58.4731195 46.0675941,58.4731195 L37.608102,58.4731195 C35.063124,58.4731195 33,60.5601716 33,63.134666 C33,64.3709859 33.4854943,65.5566658 34.3496823,66.4308767 L34.3496823,66.4308767 Z\"/></g></svg>"
        },
        "$:/core/images/edit-button": {
            "title": "$:/core/images/edit-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M116.870058,45.3431458 L108.870058,45.3431458 L108.870058,45.3431458 L108.870058,61.3431458 L116.870058,61.3431458 L116.870058,45.3431458 Z M124.870058,45.3431458 L127.649881,45.3431458 C132.066101,45.3431458 135.656854,48.9248678 135.656854,53.3431458 C135.656854,57.7524334 132.07201,61.3431458 127.649881,61.3431458 L124.870058,61.3431458 L124.870058,45.3431458 Z M100.870058,45.3431458 L15.6638275,45.3431458 C15.5064377,45.3431458 15.3501085,45.3476943 15.1949638,45.3566664 L15.1949638,45.3566664 C15.0628002,45.3477039 14.928279,45.3431458 14.7913977,45.3431458 C6.68160973,45.3431458 -8.34314575,53.3431458 -8.34314575,53.3431458 C-8.34314575,53.3431458 6.85614548,61.3431458 14.7913977,61.3431458 C14.9266533,61.3431458 15.0596543,61.3384973 15.190398,61.3293588 C15.3470529,61.3385075 15.5049057,61.3431458 15.6638275,61.3431458 L100.870058,61.3431458 L100.870058,45.3431458 L100.870058,45.3431458 Z\" transform=\"translate(63.656854, 53.343146) rotate(-45.000000) translate(-63.656854, -53.343146) \"></path>\n        <path d=\"M35.1714596,124.189544 C41.9594858,123.613403 49.068777,121.917633 58.85987,118.842282 C60.6854386,118.268877 62.4306907,117.705515 65.1957709,116.802278 C81.1962861,111.575575 87.0734839,109.994907 93.9414474,109.655721 C102.29855,109.242993 107.795169,111.785371 111.520478,118.355045 C112.610163,120.276732 115.051363,120.951203 116.97305,119.861518 C118.894737,118.771832 119.569207,116.330633 118.479522,114.408946 C113.146151,105.003414 104.734907,101.112919 93.5468356,101.66546 C85.6716631,102.054388 79.4899908,103.716944 62.7116783,109.197722 C59.9734132,110.092199 58.2519873,110.64787 56.4625698,111.20992 C37.002649,117.322218 25.6914684,118.282267 16.8654804,112.957098 C14.9739614,111.815848 12.5154166,112.424061 11.3741667,114.31558 C10.2329168,116.207099 10.84113,118.665644 12.7326489,119.806894 C19.0655164,123.627836 26.4866335,124.926678 35.1714596,124.189544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/erase": {
            "title": "$:/core/images/erase",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-erase tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.0870401,127.996166 L123.102318,64.980888 C129.636723,58.4464827 129.629513,47.8655877 123.098967,41.3350425 L99.4657866,17.7018617 C92.927448,11.1635231 82.3486358,11.1698163 75.8199411,17.698511 L4.89768189,88.6207702 C-1.63672343,95.1551755 -1.6295126,105.736071 4.90103262,112.266616 L20.6305829,127.996166 L60.0870401,127.996166 Z M25.1375576,120.682546 L10.812569,106.357558 C7.5455063,103.090495 7.54523836,97.793808 10.8048093,94.5342371 L46.2691086,59.0699377 L81.7308914,94.5317205 L55.5800654,120.682546 L25.1375576,120.682546 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/excise": {
            "title": "$:/core/images/excise",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-excise tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,107.313709 L53.6568542,109.656854 C50.5326599,112.781049 45.4673401,112.781049 42.3431457,109.656854 C39.2189514,106.53266 39.2189514,101.46734 42.3431458,98.3431457 L58.3431458,82.3431457 C61.4673401,79.2189514 66.5326599,79.2189514 69.6568542,82.3431458 L85.6568542,98.3431458 C88.7810486,101.46734 88.7810486,106.53266 85.6568542,109.656854 C82.5326599,112.781049 77.4673401,112.781049 74.3431458,109.656854 L72,107.313708 L72,121.597798 C72,125.133636 68.418278,128 64,128 C59.581722,128 56,125.133636 56,121.597798 L56,107.313709 Z M0,40.0070969 C0,35.5848994 3.59071231,32 8,32 C12.418278,32 16,35.5881712 16,40.0070969 L16,71.9929031 C16,76.4151006 12.4092877,80 8,80 C3.581722,80 0,76.4118288 0,71.9929031 L0,40.0070969 Z M32,40.0070969 C32,35.5848994 35.5907123,32 40,32 C44.418278,32 48,35.5881712 48,40.0070969 L48,71.9929031 C48,76.4151006 44.4092877,80 40,80 C35.581722,80 32,76.4118288 32,71.9929031 L32,40.0070969 Z M80,40.0070969 C80,35.5848994 83.5907123,32 88,32 C92.418278,32 96,35.5881712 96,40.0070969 L96,71.9929031 C96,76.4151006 92.4092877,80 88,80 C83.581722,80 80,76.4118288 80,71.9929031 L80,40.0070969 Z M56,8.00709688 C56,3.58489938 59.5907123,0 64,0 C68.418278,0 72,3.58817117 72,8.00709688 L72,39.9929031 C72,44.4151006 68.4092877,48 64,48 C59.581722,48 56,44.4118288 56,39.9929031 L56,8.00709688 Z M112,40.0070969 C112,35.5848994 115.590712,32 120,32 C124.418278,32 128,35.5881712 128,40.0070969 L128,71.9929031 C128,76.4151006 124.409288,80 120,80 C115.581722,80 112,76.4118288 112,71.9929031 L112,40.0070969 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/export-button": {
            "title": "$:/core/images/export-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-export-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00348646,127.999999 C8.00464867,128 8.00581094,128 8.00697327,128 L119.993027,128 C122.205254,128 124.207939,127.101378 125.657096,125.651198 L125.656838,125.65759 C127.104563,124.210109 128,122.21009 128,119.999949 L128,56.0000511 C128,51.5817449 124.409288,48 120,48 C115.581722,48 112,51.5797863 112,56.0000511 L112,112 L16,112 L16,56.0000511 C16,51.5817449 12.4092877,48 8,48 C3.581722,48 7.10542736e-15,51.5797863 7.10542736e-15,56.0000511 L7.10542736e-15,119.999949 C7.10542736e-15,124.418255 3.59071231,128 8,128 C8.00116233,128 8.0023246,128 8.00348681,127.999999 Z M56.6235633,27.3113724 L47.6580188,36.2769169 C44.5333664,39.4015692 39.4634864,39.4061295 36.339292,36.2819351 C33.2214548,33.1640979 33.2173444,28.0901742 36.3443103,24.9632084 L58.9616908,2.34582788 C60.5248533,0.782665335 62.5748436,0.000361191261 64.624516,2.38225238e-14 L64.6193616,0.00151809229 C66.6695374,0.000796251595 68.7211167,0.781508799 70.2854358,2.34582788 L92.9028163,24.9632084 C96.0274686,28.0878607 96.0320289,33.1577408 92.9078345,36.2819351 C89.7899973,39.3997724 84.7160736,39.4038827 81.5891078,36.2769169 L72.6235633,27.3113724 L72.6235633,88.5669606 C72.6235633,92.9781015 69.0418413,96.5662064 64.6235633,96.5662064 C60.2142756,96.5662064 56.6235633,92.984822 56.6235633,88.5669606 L56.6235633,27.3113724 L56.6235633,27.3113724 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/file": {
            "title": "$:/core/images/file",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-file tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M111.96811,30.5 L112,30.5 L112,119.999079 C112,124.417866 108.419113,128 104.000754,128 L23.9992458,128 C19.5813843,128 16,124.417687 16,119.999079 L16,8.00092105 C16,3.58213437 19.5808867,0 23.9992458,0 L81,0 L81,0.0201838424 C83.1589869,-0.071534047 85.3482153,0.707077645 86.9982489,2.35711116 L109.625176,24.9840387 C111.151676,26.510538 111.932942,28.4998414 111.96811,30.5 L111.96811,30.5 Z M81,8 L24,8 L24,120 L104,120 L104,30.5 L89.0003461,30.5 C84.5818769,30.5 81,26.9216269 81,22.4996539 L81,8 Z\"></path>\n        <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"68\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"84\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"100\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/fixed-height": {
            "title": "$:/core/images/fixed-height",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fixed-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60,35.6568542 L50.8284271,44.8284271 C49.26633,46.3905243 46.73367,46.3905243 45.1715729,44.8284271 C43.6094757,43.26633 43.6094757,40.73367 45.1715729,39.1715729 L61.1715729,23.1715729 C62.73367,21.6094757 65.2663299,21.6094757 66.8284271,23.1715728 L82.8284278,39.1715728 C84.390525,40.7336699 84.390525,43.2663299 82.8284279,44.8284271 C81.2663308,46.3905243 78.7336709,46.3905243 77.1715737,44.8284272 L68,35.6568539 L68,93.3431461 L77.1715737,84.1715728 C78.7336709,82.6094757 81.2663308,82.6094757 82.8284279,84.1715729 C84.390525,85.7336701 84.390525,88.2663301 82.8284278,89.8284272 L66.8284271,105.828427 C65.2663299,107.390524 62.73367,107.390524 61.1715729,105.828427 L45.1715729,89.8284271 C43.6094757,88.26633 43.6094757,85.73367 45.1715729,84.1715729 C46.73367,82.6094757 49.26633,82.6094757 50.8284271,84.1715729 L60,93.3431458 L60,35.6568542 L60,35.6568542 Z M16,116 L112,116 C114.209139,116 116,114.209139 116,112 C116,109.790861 114.209139,108 112,108 L16,108 C13.790861,108 12,109.790861 12,112 C12,114.209139 13.790861,116 16,116 L16,116 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-all-button": {
            "title": "$:/core/images/fold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,58.6235628 C61.9791013,58.6242848 59.9275217,57.8435723 58.3632024,56.279253 L35.7458219,33.6618725 C32.6211696,30.5372202 32.6166093,25.4673401 35.7408036,22.3431458 C38.8586409,19.2253085 43.9325646,19.2211982 47.0595304,22.348164 L64.0250749,39.3137085 L80.9906194,22.348164 C84.1152717,19.2235117 89.1851518,19.2189514 92.3093461,22.3431458 C95.4271834,25.460983 95.4312937,30.5349067 92.3043279,33.6618725 L69.6869474,56.279253 C68.1237851,57.8424153 66.0737951,58.6247195 64.0241231,58.6250809 Z\" transform=\"translate(64.024316, 39.313708) scale(1, -1) translate(-64.024316, -39.313708) \"></path>\n        <path d=\"M64.0292774,123.621227 C61.9791013,123.621949 59.9275217,122.841236 58.3632024,121.276917 L35.7458219,98.6595365 C32.6211696,95.5348842 32.6166093,90.4650041 35.7408036,87.3408098 C38.8586409,84.2229725 43.9325646,84.2188622 47.0595304,87.345828 L64.0250749,104.311373 L80.9906194,87.345828 C84.1152717,84.2211757 89.1851518,84.2166154 92.3093461,87.3408098 C95.4271834,90.458647 95.4312937,95.5325707 92.3043279,98.6595365 L69.6869474,121.276917 C68.1237851,122.840079 66.0737951,123.622383 64.0241231,123.622745 Z\" transform=\"translate(64.024316, 104.311372) scale(1, -1) translate(-64.024316, -104.311372) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-button": {
            "title": "$:/core/images/fold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M64.0292774,63.6235628 C61.9791013,63.6242848 59.9275217,62.8435723 58.3632024,61.279253 L35.7458219,38.6618725 C32.6211696,35.5372202 32.6166093,30.4673401 35.7408036,27.3431458 C38.8586409,24.2253085 43.9325646,24.2211982 47.0595304,27.348164 L64.0250749,44.3137085 L80.9906194,27.348164 C84.1152717,24.2235117 89.1851518,24.2189514 92.3093461,27.3431458 C95.4271834,30.460983 95.4312937,35.5349067 92.3043279,38.6618725 L69.6869474,61.279253 C68.1237851,62.8424153 66.0737951,63.6247195 64.0241231,63.6250809 Z\" transform=\"translate(64.024316, 44.313708) scale(1, -1) translate(-64.024316, -44.313708) \"></path>\n        <path d=\"M64.0049614,105.998482 C61.9547853,105.999204 59.9032057,105.218491 58.3388864,103.654172 L35.7215059,81.0367916 C32.5968535,77.9121393 32.5922933,72.8422592 35.7164876,69.7180649 C38.8343248,66.6002276 43.9082485,66.5961173 47.0352144,69.7230831 L64.0007589,86.6886276 L80.9663034,69.7230831 C84.0909557,66.5984308 89.1608358,66.5938705 92.2850301,69.7180649 C95.4028673,72.8359021 95.4069777,77.9098258 92.2800119,81.0367916 L69.6626314,103.654172 C68.099469,105.217334 66.0494791,105.999639 63.999807,106 Z\" transform=\"translate(64.000000, 86.688628) scale(1, -1) translate(-64.000000, -86.688628) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/fold-others-button": {
            "title": "$:/core/images/fold-others-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-fold-others tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"56.0314331\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M101.657101,104.948818 C100.207918,103.498614 98.2051847,102.599976 95.9929031,102.599976 L72,102.599976 L72,78.6070725 C72,76.3964271 71.1036108,74.3936927 69.6545293,72.9441002 L69.6571005,72.9488183 C68.2079177,71.4986143 66.2051847,70.5999756 63.9929031,70.5999756 L32.0070969,70.5999756 C27.5881712,70.5999756 24,74.1816976 24,78.5999756 C24,83.0092633 27.5848994,86.5999756 32.0070969,86.5999756 L56,86.5999756 L56,110.592879 C56,112.803524 56.8963895,114.806259 58.3454713,116.255852 L58.3429,116.251133 C59.7920828,117.701337 61.7948156,118.599976 64.0070969,118.599976 L88,118.599976 L88,142.592879 C88,147.011804 91.581722,150.599976 96,150.599976 C100.409288,150.599976 104,147.015076 104,142.592879 L104,110.607072 C104,108.396427 103.103611,106.393693 101.654529,104.9441 Z\" transform=\"translate(64.000000, 110.599976) rotate(-45.000000) translate(-64.000000, -110.599976) \"></path>\n        <path d=\"M101.725643,11.7488671 C100.27646,10.2986632 98.2737272,9.40002441 96.0614456,9.40002441 L72.0685425,9.40002441 L72.0685425,-14.5928787 C72.0685425,-16.8035241 71.1721533,-18.8062584 69.7230718,-20.255851 L69.725643,-20.2511329 C68.2764602,-21.7013368 66.2737272,-22.5999756 64.0614456,-22.5999756 L32.0756394,-22.5999756 C27.6567137,-22.5999756 24.0685425,-19.0182536 24.0685425,-14.5999756 C24.0685425,-10.1906879 27.6534419,-6.59997559 32.0756394,-6.59997559 L56.0685425,-6.59997559 L56.0685425,17.3929275 C56.0685425,19.6035732 56.964932,21.6063078 58.4140138,23.0559004 L58.4114425,23.0511823 C59.8606253,24.5013859 61.8633581,25.4000244 64.0756394,25.4000244 L88.0685425,25.4000244 L88.0685425,49.3929275 C88.0685425,53.8118532 91.6502645,57.4000244 96.0685425,57.4000244 C100.47783,57.4000244 104.068542,53.815125 104.068542,49.3929275 L104.068542,17.4071213 C104.068542,15.1964759 103.172153,13.1937416 101.723072,11.744149 Z\" transform=\"translate(64.068542, 17.400024) scale(1, -1) rotate(-45.000000) translate(-64.068542, -17.400024) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/folder": {
            "title": "$:/core/images/folder",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-folder tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.6943257,128.000004 L7.99859666,128.000004 C3.5810937,128.000004 0,124.413822 0,119.996384 L0,48.0036243 C0,43.5833471 3.58387508,40.0000044 7.99859666,40.0000044 L16,40.0000044 L16,31.9999914 C16,27.5817181 19.5783731,24 24.0003461,24 L55.9996539,24 C60.4181231,24 64,27.5800761 64,31.9999914 L64,40.0000044 L104.001403,40.0000044 C108.418906,40.0000044 112,43.5861868 112,48.0036243 L112,59.8298353 L104,59.7475921 L104,51.9994189 C104,49.7887607 102.207895,48.0000044 99.9972215,48.0000044 L56,48.0000044 L56,36.0000255 C56,33.7898932 54.2072328,32 51.9957423,32 L28.0042577,32 C25.7890275,32 24,33.7908724 24,36.0000255 L24,48.0000044 L12.0027785,48.0000044 C9.78987688,48.0000044 8,49.7906032 8,51.9994189 L8,116.00059 C8,118.211248 9.79210499,120.000004 12.0027785,120.000004 L58.7630167,120.000004 L55.6943257,128.000004 L55.6943257,128.000004 Z\"></path>\n        <path d=\"M23.8728955,55.5 L119.875702,55.5 C124.293205,55.5 126.87957,59.5532655 125.650111,64.5630007 L112.305967,118.936999 C111.077582,123.942356 106.497904,128 102.083183,128 L6.08037597,128 C1.66287302,128 -0.923492342,123.946735 0.305967145,118.936999 L13.650111,64.5630007 C14.878496,59.5576436 19.4581739,55.5 23.8728955,55.5 L23.8728955,55.5 L23.8728955,55.5 Z M25.6530124,64 L113.647455,64 C115.858129,64 117.151473,66.0930612 116.538306,68.6662267 L105.417772,115.333773 C104.803671,117.910859 102.515967,120 100.303066,120 L12.3086228,120 C10.0979492,120 8.8046054,117.906939 9.41777189,115.333773 L20.5383062,68.6662267 C21.1524069,66.0891409 23.4401107,64 25.6530124,64 L25.6530124,64 L25.6530124,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/full-screen-button": {
            "title": "$:/core/images/full-screen-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-full-screen-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g>\n        <g>\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 104.000000) rotate(-180.000000) translate(-104.000000, -104.000000) translate(80.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(24.000000, 104.000000) rotate(-90.000000) translate(-24.000000, -104.000000) translate(0.000000, 80.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n        <g transform=\"translate(104.000000, 24.000000) rotate(90.000000) translate(-104.000000, -24.000000) translate(80.000000, 0.000000)\">\n            <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/github": {
            "title": "$:/core/images/github",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-github tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n        <g fill-rule=\"evenodd\">\n            <path d=\"M63.9383506,1.60695328 C28.6017227,1.60695328 -0.055756057,30.2970814 -0.055756057,65.6906208 C-0.055756057,94.003092 18.2804728,118.019715 43.7123154,126.493393 C46.9143781,127.083482 48.0812647,125.104717 48.0812647,123.405261 C48.0812647,121.886765 48.02626,117.85449 47.9948287,112.508284 C30.1929317,116.379268 26.4368926,103.916587 26.4368926,103.916587 C23.5255693,96.5129372 19.3294921,94.5420399 19.3294921,94.5420399 C13.5186324,90.5687739 19.7695302,90.6474524 19.7695302,90.6474524 C26.1933001,91.099854 29.5721638,97.2525155 29.5721638,97.2525155 C35.2808718,107.044059 44.5531024,104.215566 48.1991321,102.575118 C48.7806109,98.4366275 50.4346826,95.612068 52.2616263,94.0109598 C38.0507543,92.3941159 23.1091047,86.8944862 23.1091047,62.3389152 C23.1091047,55.3443933 25.6039634,49.6205298 29.6978889,45.1437211 C29.0378318,43.5229433 26.8415704,37.0044266 30.3265147,28.1845627 C30.3265147,28.1845627 35.6973364,26.4615028 47.9241083,34.7542205 C53.027764,33.330139 58.5046663,32.6220321 63.9462084,32.5944947 C69.3838216,32.6220321 74.856795,33.330139 79.9683085,34.7542205 C92.1872225,26.4615028 97.5501864,28.1845627 97.5501864,28.1845627 C101.042989,37.0044266 98.8467271,43.5229433 98.190599,45.1437211 C102.292382,49.6205298 104.767596,55.3443933 104.767596,62.3389152 C104.767596,86.9574291 89.8023734,92.3744463 75.5482834,93.9598188 C77.8427675,95.9385839 79.8897303,99.8489072 79.8897303,105.828476 C79.8897303,114.392635 79.8111521,121.304544 79.8111521,123.405261 C79.8111521,125.120453 80.966252,127.114954 84.2115327,126.489459 C109.623731,117.996111 127.944244,93.9952241 127.944244,65.6906208 C127.944244,30.2970814 99.2867652,1.60695328 63.9383506,1.60695328\"></path>\n        </g>\n    </svg>\n"
        },
        "$:/core/images/globe": {
            "title": "$:/core/images/globe",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-globe tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M72.8111354,37.1275855 C72.8111354,37.9789875 72.8111354,38.8303894 72.8111354,39.6817913 C72.8111354,41.8784743 73.7885604,46.5631866 72.8111354,48.5143758 C71.3445471,51.4420595 68.1617327,52.0543531 66.4170946,54.3812641 C65.2352215,55.9575873 61.7987417,64.9821523 62.7262858,67.3005778 C66.6959269,77.2228204 74.26087,70.4881886 80.6887657,76.594328 C81.5527211,77.415037 83.5758191,78.8666631 83.985137,79.8899578 C87.2742852,88.1128283 76.4086873,94.8989524 87.7419325,106.189751 C88.9872885,107.430443 91.555495,102.372895 91.8205061,101.575869 C92.6726866,99.0129203 98.5458765,96.1267309 100.908882,94.5234439 C102.928056,93.1534443 105.782168,91.8557166 107.236936,89.7775886 C109.507391,86.5342557 108.717505,82.2640435 110.334606,79.0328716 C112.473794,74.7585014 114.163418,69.3979002 116.332726,65.0674086 C120.230862,57.2857361 121.054075,67.1596684 121.400359,67.5059523 C121.757734,67.8633269 122.411167,67.5059523 122.916571,67.5059523 C123.011132,67.5059523 124.364019,67.6048489 124.432783,67.5059523 C125.0832,66.5705216 123.390209,49.5852316 123.114531,48.2089091 C121.710578,41.1996597 116.17083,32.4278331 111.249523,27.7092761 C104.975994,21.6942076 104.160516,11.5121686 92.9912146,12.7547535 C92.7872931,12.7774397 87.906794,22.9027026 85.2136766,26.2672064 C81.486311,30.9237934 82.7434931,22.1144904 78.6876623,22.1144904 C78.6065806,22.1144904 77.5045497,22.0107615 77.4353971,22.1144904 C76.8488637,22.9942905 75.9952305,26.0101404 75.1288269,26.5311533 C74.8635477,26.6906793 73.4071369,26.2924966 73.2826811,26.5311533 C71.0401728,30.8313939 81.5394677,28.7427264 79.075427,34.482926 C76.7225098,39.9642538 72.747373,32.4860199 72.747373,43.0434079\"></path>\n        <path d=\"M44.4668556,7.01044608 C54.151517,13.1403033 45.1489715,19.2084878 47.1611905,23.2253896 C48.8157833,26.5283781 51.4021933,28.6198851 48.8753629,33.038878 C46.8123257,36.6467763 42.0052989,37.0050492 39.251679,39.7621111 C36.2115749,42.8060154 33.7884281,48.7028116 32.4624592,52.6732691 C30.8452419,57.5158356 47.0088721,59.5388126 44.5246867,63.6811917 C43.1386839,65.9923513 37.7785192,65.1466282 36.0880227,63.8791519 C34.9234453,63.0059918 32.4946425,63.3331166 31.6713597,62.0997342 C29.0575851,58.1839669 29.4107339,54.0758543 28.0457962,49.9707786 C27.1076833,47.1493864 21.732611,47.8501656 20.2022714,49.3776393 C19.6790362,49.8998948 19.8723378,51.1703278 19.8723378,51.8829111 C19.8723378,57.1682405 26.9914913,55.1986414 26.9914913,58.3421973 C26.9914913,72.9792302 30.9191897,64.8771867 38.1313873,69.6793121 C48.1678018,76.3618966 45.9763926,76.981595 53.0777543,84.0829567 C56.7511941,87.7563965 60.8192437,87.7689005 62.503478,93.3767069 C64.1046972,98.7081071 53.1759798,98.7157031 50.786754,100.825053 C49.663965,101.816317 47.9736094,104.970571 46.5680513,105.439676 C44.7757187,106.037867 43.334221,105.93607 41.6242359,107.219093 C39.1967302,109.040481 37.7241465,112.151588 37.6034934,112.030935 C35.4555278,109.88297 34.0848666,96.5511248 33.7147244,93.7726273 C33.1258872,89.3524817 28.1241923,88.2337027 26.7275443,84.7420826 C25.1572737,80.8164061 28.2518481,75.223612 25.599097,70.9819941 C19.0797019,60.557804 13.7775712,56.4811506 10.2493953,44.6896152 C9.3074899,41.5416683 13.5912267,38.1609942 15.1264825,35.8570308 C17.0029359,33.0410312 17.7876232,30.0028946 19.8723378,27.2224065 C22.146793,24.1888519 40.8551166,9.46076832 43.8574051,8.63490613 L44.4668556,7.01044608 Z\"></path>\n        <path d=\"M64,126 C98.2416545,126 126,98.2416545 126,64 C126,29.7583455 98.2416545,2 64,2 C29.7583455,2 2,29.7583455 2,64 C2,98.2416545 29.7583455,126 64,126 Z M64,120 C94.927946,120 120,94.927946 120,64 C120,33.072054 94.927946,8 64,8 C33.072054,8 8,33.072054 8,64 C8,94.927946 33.072054,120 64,120 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-1": {
            "title": "$:/core/images/heading-1",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M14,30 L27.25,30 L27.25,60.104 L61.7,60.104 L61.7,30 L74.95,30 L74.95,105.684 L61.7,105.684 L61.7,71.552 L27.25,71.552 L27.25,105.684 L14,105.684 L14,30 Z M84.3350766,43.78 C86.8790893,43.78 89.3523979,43.5680021 91.7550766,43.144 C94.1577553,42.7199979 96.3307336,42.0133383 98.2740766,41.024 C100.21742,40.0346617 101.87807,38.7626744 103.256077,37.208 C104.634084,35.6533256 105.535075,33.7453446 105.959077,31.484 L115.817077,31.484 L115.817077,105.684 L102.567077,105.684 L102.567077,53.32 L84.3350766,53.32 L84.3350766,43.78 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-2": {
            "title": "$:/core/images/heading-2",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-2 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M125.519077,105.684 L74.8510766,105.684 C74.9217436,99.5359693 76.4057288,94.1653563 79.3030766,89.572 C82.2004244,84.9786437 86.1577182,80.986017 91.1750766,77.594 C93.5777553,75.8273245 96.0863969,74.113675 98.7010766,72.453 C101.315756,70.792325 103.718399,69.0080095 105.909077,67.1 C108.099754,65.1919905 109.901736,63.1250111 111.315077,60.899 C112.728417,58.6729889 113.47041,56.1113478 113.541077,53.214 C113.541077,51.8713266 113.382078,50.4403409 113.064077,48.921 C112.746075,47.4016591 112.127748,45.9883399 111.209077,44.681 C110.290405,43.3736601 109.018418,42.2783377 107.393077,41.395 C105.767735,40.5116622 103.647756,40.07 101.033077,40.07 C98.6303979,40.07 96.6340846,40.5469952 95.0440766,41.501 C93.4540687,42.4550048 92.1820814,43.762325 91.2280766,45.423 C90.2740719,47.083675 89.5674123,49.0446554 89.1080766,51.306 C88.648741,53.5673446 88.3837436,56.0053203 88.3130766,58.62 L76.2290766,58.62 C76.2290766,54.5213128 76.7767378,50.7230175 77.8720766,47.225 C78.9674154,43.7269825 80.610399,40.7060127 82.8010766,38.162 C84.9917542,35.6179873 87.6593942,33.6216739 90.8040766,32.173 C93.948759,30.7243261 97.6057224,30 101.775077,30 C106.297766,30 110.078395,30.7419926 113.117077,32.226 C116.155758,33.7100074 118.611401,35.5826554 120.484077,37.844 C122.356753,40.1053446 123.681739,42.5609868 124.459077,45.211 C125.236414,47.8610133 125.625077,50.3873213 125.625077,52.79 C125.625077,55.7580148 125.165748,58.4433213 124.247077,60.846 C123.328405,63.2486787 122.091751,65.4569899 120.537077,67.471 C118.982402,69.4850101 117.215753,71.3399915 115.237077,73.036 C113.2584,74.7320085 111.209087,76.3219926 109.089077,77.806 C106.969066,79.2900074 104.849087,80.7033266 102.729077,82.046 C100.609066,83.3886734 98.6480856,84.7313266 96.8460766,86.074 C95.0440676,87.4166734 93.47175,88.8123261 92.1290766,90.261 C90.7864032,91.7096739 89.8677458,93.2466585 89.3730766,94.872 L125.519077,94.872 L125.519077,105.684 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-3": {
            "title": "$:/core/images/heading-3",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-3 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M94.8850766,62.224 C96.8637532,62.294667 98.8424001,62.1533351 100.821077,61.8 C102.799753,61.4466649 104.566402,60.8283378 106.121077,59.945 C107.675751,59.0616623 108.930072,57.8426744 109.884077,56.288 C110.838081,54.7333256 111.315077,52.8253446 111.315077,50.564 C111.315077,47.3839841 110.237421,44.8400095 108.082077,42.932 C105.926733,41.0239905 103.153094,40.07 99.7610766,40.07 C97.641066,40.07 95.8037511,40.4939958 94.2490766,41.342 C92.6944022,42.1900042 91.4047484,43.3383261 90.3800766,44.787 C89.3554048,46.2356739 88.5957458,47.860991 88.1010766,49.663 C87.6064075,51.465009 87.3944096,53.3199905 87.4650766,55.228 L75.3810766,55.228 C75.5224107,51.623982 76.1937373,48.2850154 77.3950766,45.211 C78.596416,42.1369846 80.2393995,39.4693446 82.3240766,37.208 C84.4087537,34.9466554 86.9350618,33.1800064 89.9030766,31.908 C92.8710915,30.6359936 96.2277246,30 99.9730766,30 C102.870424,30 105.714729,30.4239958 108.506077,31.272 C111.297424,32.1200042 113.806065,33.3566585 116.032077,34.982 C118.258088,36.6073415 120.042403,38.6743208 121.385077,41.183 C122.72775,43.6916792 123.399077,46.5713171 123.399077,49.822 C123.399077,53.5673521 122.551085,56.8356527 120.855077,59.627 C119.159068,62.4183473 116.509095,64.4499936 112.905077,65.722 L112.905077,65.934 C117.145098,66.7820042 120.448731,68.8843166 122.816077,72.241 C125.183422,75.5976835 126.367077,79.6786426 126.367077,84.484 C126.367077,88.017351 125.660417,91.1796527 124.247077,93.971 C122.833736,96.7623473 120.925755,99.129657 118.523077,101.073 C116.120398,103.016343 113.329093,104.517995 110.149077,105.578 C106.969061,106.638005 103.612428,107.168 100.079077,107.168 C95.7683884,107.168 92.005426,106.549673 88.7900766,105.313 C85.5747272,104.076327 82.8894207,102.327345 80.7340766,100.066 C78.5787325,97.8046554 76.9357489,95.0840159 75.8050766,91.904 C74.6744043,88.7239841 74.0737436,85.1906861 74.0030766,81.304 L86.0870766,81.304 C85.9457426,85.8266893 87.0587315,89.5896517 89.4260766,92.593 C91.7934218,95.5963483 95.3443863,97.098 100.079077,97.098 C104.107097,97.098 107.481396,95.9496782 110.202077,93.653 C112.922757,91.3563219 114.283077,88.0880212 114.283077,83.848 C114.283077,80.9506522 113.717749,78.6540085 112.587077,76.958 C111.456404,75.2619915 109.972419,73.9723378 108.135077,73.089 C106.297734,72.2056623 104.230755,71.6580011 101.934077,71.446 C99.6373985,71.2339989 97.2877553,71.163333 94.8850766,71.234 L94.8850766,62.224 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-4": {
            "title": "$:/core/images/heading-4",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-4 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8,30 L21.25,30 L21.25,60.104 L55.7,60.104 L55.7,30 L68.95,30 L68.95,105.684 L55.7,105.684 L55.7,71.552 L21.25,71.552 L21.25,105.684 L8,105.684 L8,30 Z M84.5890766,78.548 L107.061077,78.548 L107.061077,45.9 L106.849077,45.9 L84.5890766,78.548 Z M128.049077,88.088 L118.509077,88.088 L118.509077,105.684 L107.061077,105.684 L107.061077,88.088 L75.2610766,88.088 L75.2610766,76.11 L107.061077,31.484 L118.509077,31.484 L118.509077,78.548 L128.049077,78.548 L128.049077,88.088 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-5": {
            "title": "$:/core/images/heading-5",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-5 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M83.7550766,31.484 L122.127077,31.484 L122.127077,42.296 L92.7650766,42.296 L88.9490766,61.164 L89.1610766,61.376 C90.7864181,59.5386575 92.8533974,58.1430048 95.3620766,57.189 C97.8707558,56.2349952 100.361731,55.758 102.835077,55.758 C106.509762,55.758 109.795729,56.3763272 112.693077,57.613 C115.590424,58.8496729 118.0284,60.5809889 120.007077,62.807 C121.985753,65.0330111 123.487405,67.6653181 124.512077,70.704 C125.536748,73.7426819 126.049077,77.028649 126.049077,80.562 C126.049077,83.5300148 125.572081,86.5863176 124.618077,89.731 C123.664072,92.8756824 122.144754,95.7376538 120.060077,98.317 C117.9754,100.896346 115.30776,103.016325 112.057077,104.677 C108.806394,106.337675 104.919766,107.168 100.397077,107.168 C96.7930586,107.168 93.454092,106.691005 90.3800766,105.737 C87.3060613,104.782995 84.6030883,103.35201 82.2710766,101.444 C79.939065,99.5359905 78.0840835,97.1863473 76.7060766,94.395 C75.3280697,91.6036527 74.5684107,88.3353521 74.4270766,84.59 L86.5110766,84.59 C86.8644117,88.6180201 88.2423979,91.7096559 90.6450766,93.865 C93.0477553,96.0203441 96.2277235,97.098 100.185077,97.098 C102.729089,97.098 104.884401,96.6740042 106.651077,95.826 C108.417752,94.9779958 109.848738,93.8120074 110.944077,92.328 C112.039415,90.8439926 112.816741,89.1126766 113.276077,87.134 C113.735412,85.1553234 113.965077,83.0353446 113.965077,80.774 C113.965077,78.7246564 113.682413,76.763676 113.117077,74.891 C112.55174,73.018324 111.703749,71.3753404 110.573077,69.962 C109.442404,68.5486596 107.976086,67.4180042 106.174077,66.57 C104.372068,65.7219958 102.269755,65.298 99.8670766,65.298 C97.3230639,65.298 94.9380878,65.7749952 92.7120766,66.729 C90.4860655,67.6830048 88.8784149,69.4673203 87.8890766,72.082 L75.8050766,72.082 L83.7550766,31.484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/heading-6": {
            "title": "$:/core/images/heading-6",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-heading-6 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M112.587077,50.246 C112.304409,47.2073181 111.226753,44.751676 109.354077,42.879 C107.481401,41.006324 104.955093,40.07 101.775077,40.07 C99.584399,40.07 97.6940846,40.4763293 96.1040766,41.289 C94.5140687,42.1016707 93.1714154,43.1793266 92.0760766,44.522 C90.9807378,45.8646734 90.0974133,47.401658 89.4260766,49.133 C88.7547399,50.864342 88.2070787,52.6839905 87.7830766,54.592 C87.3590745,56.5000095 87.0587442,58.390324 86.8820766,60.263 C86.7054091,62.135676 86.5464107,63.8846585 86.4050766,65.51 L86.6170766,65.722 C88.2424181,62.7539852 90.4860623,60.5456739 93.3480766,59.097 C96.2100909,57.6483261 99.3017267,56.924 102.623077,56.924 C106.297762,56.924 109.583729,57.5599936 112.481077,58.832 C115.378424,60.1040064 117.834067,61.8529889 119.848077,64.079 C121.862087,66.3050111 123.399071,68.9373181 124.459077,71.976 C125.519082,75.0146819 126.049077,78.300649 126.049077,81.834 C126.049077,85.438018 125.466082,88.7769846 124.300077,91.851 C123.134071,94.9250154 121.455754,97.6103219 119.265077,99.907 C117.074399,102.203678 114.459758,103.987994 111.421077,105.26 C108.382395,106.532006 105.025762,107.168 101.351077,107.168 C95.9097161,107.168 91.4400941,106.16101 87.9420766,104.147 C84.4440591,102.13299 81.6880867,99.3770175 79.6740766,95.879 C77.6600666,92.3809825 76.2644138,88.2823568 75.4870766,83.583 C74.7097394,78.8836432 74.3210766,73.8133605 74.3210766,68.372 C74.3210766,63.9199777 74.7980719,59.4326893 75.7520766,54.91 C76.7060814,50.3873107 78.278399,46.2710186 80.4690766,42.561 C82.6597542,38.8509815 85.5393921,35.8300117 89.1080766,33.498 C92.6767611,31.1659883 97.0757171,30 102.305077,30 C105.273091,30 108.064397,30.4946617 110.679077,31.484 C113.293756,32.4733383 115.608067,33.8513245 117.622077,35.618 C119.636087,37.3846755 121.27907,39.5046543 122.551077,41.978 C123.823083,44.4513457 124.529743,47.2073181 124.671077,50.246 L112.587077,50.246 Z M100.927077,97.098 C103.117754,97.098 105.025735,96.6563378 106.651077,95.773 C108.276418,94.8896623 109.636738,93.7413404 110.732077,92.328 C111.827415,90.9146596 112.640074,89.271676 113.170077,87.399 C113.700079,85.526324 113.965077,83.6006766 113.965077,81.622 C113.965077,79.6433234 113.700079,77.7353425 113.170077,75.898 C112.640074,74.0606575 111.827415,72.4530069 110.732077,71.075 C109.636738,69.6969931 108.276418,68.5840042 106.651077,67.736 C105.025735,66.8879958 103.117754,66.464 100.927077,66.464 C98.736399,66.464 96.8107516,66.8703293 95.1500766,67.683 C93.4894017,68.4956707 92.0937489,69.5909931 90.9630766,70.969 C89.8324043,72.3470069 88.9844128,73.9546575 88.4190766,75.792 C87.8537405,77.6293425 87.5710766,79.5726564 87.5710766,81.622 C87.5710766,83.6713436 87.8537405,85.6146575 88.4190766,87.452 C88.9844128,89.2893425 89.8324043,90.9323261 90.9630766,92.381 C92.0937489,93.8296739 93.4894017,94.9779958 95.1500766,95.826 C96.8107516,96.6740042 98.736399,97.098 100.927077,97.098 L100.927077,97.098 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/help": {
            "title": "$:/core/images/help",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-help tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M36.0548906,111.44117 C30.8157418,115.837088 20.8865444,118.803477 9.5,118.803477 C7.86465619,118.803477 6.25937294,118.742289 4.69372699,118.624467 C12.612543,115.984876 18.7559465,110.02454 21.0611049,102.609942 C8.74739781,92.845129 1.04940554,78.9359851 1.04940554,63.5 C1.04940554,33.9527659 29.2554663,10 64.0494055,10 C98.8433448,10 127.049406,33.9527659 127.049406,63.5 C127.049406,93.0472341 98.8433448,117 64.0494055,117 C53.9936953,117 44.48824,114.999337 36.0548906,111.44117 L36.0548906,111.44117 Z M71.4042554,77.5980086 C71.406883,77.2865764 71.4095079,76.9382011 71.4119569,76.5610548 C71.4199751,75.3262169 71.4242825,74.0811293 71.422912,72.9158546 C71.4215244,71.736154 71.4143321,70.709635 71.4001396,69.8743525 C71.4078362,68.5173028 71.9951951,67.7870427 75.1273009,65.6385471 C75.2388969,65.5619968 76.2124091,64.8981068 76.5126553,64.6910879 C79.6062455,62.5580654 81.5345849,60.9050204 83.2750652,58.5038955 C85.6146327,55.2762841 86.8327108,51.426982 86.8327108,46.8554323 C86.8327108,33.5625756 76.972994,24.9029551 65.3778484,24.9029551 C54.2752771,24.9029551 42.8794554,34.5115163 41.3121702,47.1975534 C40.9043016,50.4989536 43.2499725,53.50591 46.5513726,53.9137786 C49.8527728,54.3216471 52.8597292,51.9759763 53.2675978,48.6745761 C54.0739246,42.1479456 60.2395837,36.9492759 65.3778484,36.9492759 C70.6427674,36.9492759 74.78639,40.5885487 74.78639,46.8554323 C74.78639,50.4892974 73.6853224,52.008304 69.6746221,54.7736715 C69.4052605,54.9593956 68.448509,55.6118556 68.3131127,55.7047319 C65.6309785,57.5445655 64.0858213,58.803255 62.6123358,60.6352315 C60.5044618,63.2559399 59.3714208,66.3518252 59.3547527,69.9487679 C59.3684999,70.8407274 59.3752803,71.8084521 59.3765995,72.9300232 C59.3779294,74.0607297 59.3737237,75.2764258 59.36589,76.482835 C59.3634936,76.8518793 59.3609272,77.1924914 59.3583633,77.4963784 C59.3568319,77.6778944 59.3556368,77.8074256 59.3549845,77.8730928 C59.3219814,81.1994287 61.9917551,83.9227111 65.318091,83.9557142 C68.644427,83.9887173 71.3677093,81.3189435 71.4007124,77.9926076 C71.4014444,77.9187458 71.402672,77.7856841 71.4042554,77.5980086 Z M65.3778489,102.097045 C69.5359735,102.097045 72.9067994,98.7262189 72.9067994,94.5680944 C72.9067994,90.4099698 69.5359735,87.0391439 65.3778489,87.0391439 C61.2197243,87.0391439 57.8488984,90.4099698 57.8488984,94.5680944 C57.8488984,98.7262189 61.2197243,102.097045 65.3778489,102.097045 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/home-button": {
            "title": "$:/core/images/home-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112.9847,119.501583 C112.99485,119.336814 113,119.170705 113,119.003406 L113,67.56802 C116.137461,70.5156358 121.076014,70.4518569 124.133985,67.3938855 C127.25818,64.2696912 127.260618,59.2068102 124.131541,56.0777326 L70.3963143,2.34250601 C68.8331348,0.779326498 66.7828947,-0.000743167069 64.7337457,1.61675364e-05 C62.691312,-0.00409949529 60.6426632,0.777559815 59.077717,2.34250601 L33,28.420223 L33,28.420223 L33,8.00697327 C33,3.58484404 29.4092877,0 25,0 C20.581722,0 17,3.59075293 17,8.00697327 L17,44.420223 L5.3424904,56.0777326 C2.21694607,59.2032769 2.22220878,64.2760483 5.34004601,67.3938855 C8.46424034,70.5180798 13.5271213,70.5205187 16.6561989,67.3914411 L17,67.04764 L17,119.993027 C17,119.994189 17.0000002,119.995351 17.0000007,119.996514 C17.0000002,119.997675 17,119.998838 17,120 C17,124.418278 20.5881049,128 24.9992458,128 L105.000754,128 C109.418616,128 113,124.409288 113,120 C113,119.832611 112.99485,119.666422 112.9847,119.501583 Z M97,112 L97,51.5736087 L97,51.5736087 L64.7370156,19.3106244 L33,51.04764 L33,112 L97,112 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/import-button": {
            "title": "$:/core/images/import-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-import-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M105.449437,94.2138951 C105.449437,94.2138951 110.049457,94.1897106 110.049457,99.4026111 C110.049457,104.615512 105.163246,104.615511 105.163246,104.615511 L45.0075072,105.157833 C45.0075072,105.157833 0.367531803,106.289842 0.367532368,66.6449212 C0.367532934,27.0000003 45.0428249,27.0000003 45.0428249,27.0000003 L105.532495,27.0000003 C105.532495,27.0000003 138.996741,25.6734987 138.996741,55.1771866 C138.996741,84.6808745 105.727102,82.8457535 105.727102,82.8457535 L56.1735087,82.8457535 C56.1735087,82.8457535 22.6899229,85.1500223 22.6899229,66.0913753 C22.6899229,47.0327282 56.1735087,49.3383013 56.1735087,49.3383013 L105.727102,49.3383013 C105.727102,49.3383013 111.245209,49.3383024 111.245209,54.8231115 C111.245209,60.3079206 105.727102,60.5074524 105.727102,60.5074524 L56.1735087,60.5074524 C56.1735087,60.5074524 37.48913,60.5074528 37.48913,66.6449195 C37.48913,72.7823862 56.1735087,71.6766023 56.1735087,71.6766023 L105.727102,71.6766029 C105.727102,71.6766029 127.835546,73.1411469 127.835546,55.1771866 C127.835546,35.5304025 105.727102,38.3035317 105.727102,38.3035317 L45.0428249,38.3035317 C45.0428249,38.3035317 11.5287276,38.3035313 11.5287276,66.6449208 C11.5287276,94.9863103 45.0428244,93.9579678 45.0428244,93.9579678 L105.449437,94.2138951 Z\" transform=\"translate(69.367532, 66.000000) rotate(-45.000000) translate(-69.367532, -66.000000) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/info-button": {
            "title": "$:/core/images/info-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <g transform=\"translate(0.049406, 0.000000)\">\n            <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"></path>\n            <circle cx=\"64\" cy=\"32\" r=\"8\"></circle>\n            <rect x=\"56\" y=\"48\" width=\"16\" height=\"56\" rx=\"8\"></rect>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/italic": {
            "title": "$:/core/images/italic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-italic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n         <polygon points=\"66.7114846 0 89.1204482 0 62.4089636 128 40 128\"></polygon>\n    </g>\n</svg>"
        },
        "$:/core/images/left-arrow": {
            "created": "20150315234410875",
            "modified": "20150315235324760",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/left-arrow",
            "text": "<svg class=\"tc-image-left-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path transform=\"rotate(135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25075c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056z\"/>\n</svg>\n"
        },
        "$:/core/images/line-width": {
            "title": "$:/core/images/line-width",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-line-width tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128,-97 L112.992786,-97 C112.452362,-97 112,-96.5522847 112,-96 C112,-95.4438648 112.444486,-95 112.992786,-95 L128,-95 L128,-97 Z M128,-78.6794919 L111.216185,-88.3696322 C110.748163,-88.6398444 110.132549,-88.4782926 109.856406,-88 C109.578339,-87.5183728 109.741342,-86.9117318 110.216185,-86.6375814 L128,-76.3700908 L128,-78.6794919 Z M78.6794919,-128 L88.3696322,-111.216185 C88.6437826,-110.741342 88.4816272,-110.134474 88,-109.856406 C87.5217074,-109.580264 86.9077936,-109.748163 86.6375814,-110.216185 L76.3700908,-128 L78.6794919,-128 Z M97,-128 L97,-112.992786 C97,-112.444486 96.5561352,-112 96,-112 C95.4477153,-112 95,-112.452362 95,-112.992786 L95,-128 L97,-128 Z M115.629909,-128 L105.362419,-110.216185 C105.088268,-109.741342 104.481627,-109.578339 104,-109.856406 C103.521707,-110.132549 103.360156,-110.748163 103.630368,-111.216185 L113.320508,-128 L115.629909,-128 Z M128,-113.320508 L111.216185,-103.630368 C110.741342,-103.356217 110.134474,-103.518373 109.856406,-104 C109.580264,-104.478293 109.748163,-105.092206 110.216185,-105.362419 L128,-115.629909 L128,-113.320508 Z M48,-96 C48,-96.5522847 48.4523621,-97 48.9927864,-97 L79.0072136,-97 C79.5555144,-97 80,-96.5561352 80,-96 C80,-95.4477153 79.5476379,-95 79.0072136,-95 L48.9927864,-95 C48.4444856,-95 48,-95.4438648 48,-96 Z M54.4307806,-120 C54.706923,-120.478293 55.3225377,-120.639844 55.7905589,-120.369632 L81.7838153,-105.362419 C82.2586577,-105.088268 82.4216611,-104.481627 82.1435935,-104 C81.8674512,-103.521707 81.2518365,-103.360156 80.7838153,-103.630368 L54.7905589,-118.637581 C54.3157165,-118.911732 54.152713,-119.518373 54.4307806,-120 Z M104,-82.1435935 C104.478293,-82.4197359 105.092206,-82.2518365 105.362419,-81.7838153 L120.369632,-55.7905589 C120.643783,-55.3157165 120.481627,-54.7088482 120,-54.4307806 C119.521707,-54.1546382 118.907794,-54.3225377 118.637581,-54.7905589 L103.630368,-80.7838153 C103.356217,-81.2586577 103.518373,-81.865526 104,-82.1435935 Z M96,-80 C96.5522847,-80 97,-79.5476379 97,-79.0072136 L97,-48.9927864 C97,-48.4444856 96.5561352,-48 96,-48 C95.4477153,-48 95,-48.4523621 95,-48.9927864 L95,-79.0072136 C95,-79.5555144 95.4438648,-80 96,-80 Z M88,-82.1435935 C88.4782926,-81.8674512 88.6398444,-81.2518365 88.3696322,-80.7838153 L73.3624186,-54.7905589 C73.0882682,-54.3157165 72.4816272,-54.152713 72,-54.4307806 C71.5217074,-54.706923 71.3601556,-55.3225377 71.6303678,-55.7905589 L86.6375814,-81.7838153 C86.9117318,-82.2586577 87.5183728,-82.4216611 88,-82.1435935 Z M82.1435935,-88 C82.4197359,-87.5217074 82.2518365,-86.9077936 81.7838153,-86.6375814 L55.7905589,-71.6303678 C55.3157165,-71.3562174 54.7088482,-71.5183728 54.4307806,-72 C54.1546382,-72.4782926 54.3225377,-73.0922064 54.7905589,-73.3624186 L80.7838153,-88.3696322 C81.2586577,-88.6437826 81.865526,-88.4816272 82.1435935,-88 Z M1.30626177e-08,-41.9868843 L15.0170091,-57.9923909 L20.7983821,-52.9749272 L44.7207091,-81.2095939 L73.4260467,-42.1002685 L85.984793,-56.6159488 L104.48741,-34.0310661 L127.969109,-47.4978019 L127.969109,7.99473128e-07 L1.30626177e-08,7.99473128e-07 L1.30626177e-08,-41.9868843 Z M96,-84 C102.627417,-84 108,-89.372583 108,-96 C108,-102.627417 102.627417,-108 96,-108 C89.372583,-108 84,-102.627417 84,-96 C84,-89.372583 89.372583,-84 96,-84 Z\"></path>\n        <path d=\"M16,18 L112,18 C113.104569,18 114,17.1045695 114,16 C114,14.8954305 113.104569,14 112,14 L16,14 C14.8954305,14 14,14.8954305 14,16 C14,17.1045695 14.8954305,18 16,18 L16,18 Z M16,35 L112,35 C114.209139,35 116,33.209139 116,31 C116,28.790861 114.209139,27 112,27 L16,27 C13.790861,27 12,28.790861 12,31 C12,33.209139 13.790861,35 16,35 L16,35 Z M16,56 L112,56 C115.313708,56 118,53.3137085 118,50 C118,46.6862915 115.313708,44 112,44 L16,44 C12.6862915,44 10,46.6862915 10,50 C10,53.3137085 12.6862915,56 16,56 L16,56 Z M16,85 L112,85 C117.522847,85 122,80.5228475 122,75 C122,69.4771525 117.522847,65 112,65 L16,65 C10.4771525,65 6,69.4771525 6,75 C6,80.5228475 10.4771525,85 16,85 L16,85 Z M16,128 L112,128 C120.836556,128 128,120.836556 128,112 C128,103.163444 120.836556,96 112,96 L16,96 C7.163444,96 0,103.163444 0,112 C0,120.836556 7.163444,128 16,128 L16,128 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/link": {
            "title": "$:/core/images/link",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-link tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M128.719999,57.568543 C130.219553,53.8628171 131.045202,49.8121445 131.045202,45.5685425 C131.045202,27.8915447 116.718329,13.5685425 99.0452364,13.5685425 L67.0451674,13.5685425 C49.3655063,13.5685425 35.0452019,27.8954305 35.0452019,45.5685425 C35.0452019,63.2455403 49.3720745,77.5685425 67.0451674,77.5685425 L99.0452364,77.5685425 C100.406772,77.5685425 101.748384,77.4835732 103.065066,77.3186499 C96.4792444,73.7895096 91.1190212,68.272192 87.7873041,61.5685425 L67.0506214,61.5685425 C58.2110723,61.5685425 51.0452019,54.4070414 51.0452019,45.5685425 C51.0452019,36.7319865 58.2005234,29.5685425 67.0506214,29.5685425 L99.0397824,29.5685425 C107.879331,29.5685425 115.045202,36.7300436 115.045202,45.5685425 C115.045202,48.9465282 113.99957,52.0800164 112.21335,54.6623005 C114.314383,56.4735917 117.050039,57.5685425 120.041423,57.5685425 L128.720003,57.5685425 Z\" transform=\"translate(83.045202, 45.568542) rotate(-225.000000) translate(-83.045202, -45.568542)\"></path>\n        <path d=\"M-0.106255113,71.0452019 C-1.60580855,74.7509276 -2.43145751,78.8016001 -2.43145751,83.0452019 C-2.43145751,100.7222 11.8954151,115.045202 29.568508,115.045202 L61.568577,115.045202 C79.2482381,115.045202 93.5685425,100.718314 93.5685425,83.0452019 C93.5685425,65.3682041 79.2416699,51.0452019 61.568577,51.0452019 L29.568508,51.0452019 C28.206973,51.0452019 26.8653616,51.1301711 25.5486799,51.2950943 C32.1345,54.8242347 37.4947231,60.3415524 40.8264403,67.0452019 L61.563123,67.0452019 C70.4026721,67.0452019 77.5685425,74.206703 77.5685425,83.0452019 C77.5685425,91.8817579 70.413221,99.0452019 61.563123,99.0452019 L29.573962,99.0452019 C20.7344129,99.0452019 13.5685425,91.8837008 13.5685425,83.0452019 C13.5685425,79.6672162 14.6141741,76.533728 16.4003949,73.9514439 C14.2993609,72.1401527 11.5637054,71.0452019 8.5723215,71.0452019 L-0.106255113,71.0452019 Z\" transform=\"translate(45.568542, 83.045202) rotate(-225.000000) translate(-45.568542, -83.045202)\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-bullet": {
            "title": "$:/core/images/list-bullet",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-bullet tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M11.6363636,40.2727273 C18.0629498,40.2727273 23.2727273,35.0629498 23.2727273,28.6363636 C23.2727273,22.2097775 18.0629498,17 11.6363636,17 C5.20977746,17 0,22.2097775 0,28.6363636 C0,35.0629498 5.20977746,40.2727273 11.6363636,40.2727273 Z M11.6363636,75.1818182 C18.0629498,75.1818182 23.2727273,69.9720407 23.2727273,63.5454545 C23.2727273,57.1188684 18.0629498,51.9090909 11.6363636,51.9090909 C5.20977746,51.9090909 0,57.1188684 0,63.5454545 C0,69.9720407 5.20977746,75.1818182 11.6363636,75.1818182 Z M11.6363636,110.090909 C18.0629498,110.090909 23.2727273,104.881132 23.2727273,98.4545455 C23.2727273,92.0279593 18.0629498,86.8181818 11.6363636,86.8181818 C5.20977746,86.8181818 0,92.0279593 0,98.4545455 C0,104.881132 5.20977746,110.090909 11.6363636,110.090909 Z M34.9090909,22.8181818 L128,22.8181818 L128,34.4545455 L34.9090909,34.4545455 L34.9090909,22.8181818 Z M34.9090909,57.7272727 L128,57.7272727 L128,69.3636364 L34.9090909,69.3636364 L34.9090909,57.7272727 Z M34.9090909,92.6363636 L128,92.6363636 L128,104.272727 L34.9090909,104.272727 L34.9090909,92.6363636 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list-number": {
            "title": "$:/core/images/list-number",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list-number tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M33.8390805,22.3563218 L128,22.3563218 L128,34.1264368 L33.8390805,34.1264368 L33.8390805,22.3563218 Z M33.8390805,57.6666667 L128,57.6666667 L128,69.4367816 L33.8390805,69.4367816 L33.8390805,57.6666667 Z M33.8390805,92.9770115 L128,92.9770115 L128,104.747126 L33.8390805,104.747126 L33.8390805,92.9770115 Z M0.379509711,42.6307008 L0.379509711,40.4082314 L1.37821948,40.4082314 C2.20382368,40.4082314 2.82301754,40.268077 3.23581964,39.9877642 C3.64862174,39.7074513 3.85501969,39.0400498 3.85501969,37.9855395 L3.85501969,22.7686318 C3.85501969,21.3270228 3.66193774,20.4327047 3.27576803,20.0856507 C2.88959832,19.7385967 1.79768657,19.5650723 0,19.5650723 L0,17.4226919 C3.50215975,17.2758613 6.25191314,16.4683055 8.24934266,15 L10.3666074,15 L10.3666074,37.865406 C10.3666074,38.786434 10.5164123,39.4404875 10.8160268,39.8275862 C11.1156412,40.2146849 11.764796,40.4082314 12.7635108,40.4082314 L13.7622206,40.4082314 L13.7622206,42.6307008 L0.379509711,42.6307008 Z M0.0798967812,77.9873934 L0.0798967812,76.0852799 C7.27064304,69.5312983 10.8659622,63.5046623 10.8659622,58.005191 C10.8659622,56.4434479 10.5397203,55.195407 9.88722667,54.2610308 C9.23473303,53.3266546 8.36253522,52.8594735 7.27060709,52.8594735 C6.3784219,52.8594735 5.61608107,53.1764892 4.98356173,53.8105302 C4.35104238,54.4445712 4.03478745,55.1753759 4.03478745,56.0029663 C4.03478745,56.9773871 4.28113339,57.8316611 4.77383268,58.5658139 C4.88036225,58.7259926 4.93362624,58.8461249 4.93362624,58.9262143 C4.93362624,59.0730449 4.77383427,59.2065252 4.45424555,59.3266593 C4.2411864,59.4067486 3.70188852,59.6336652 2.83633573,60.0074156 C1.99741533,60.3811661 1.47809145,60.5680386 1.2783485,60.5680386 C1.03865696,60.5680386 0.765679018,60.1976307 0.459406492,59.4568039 C0.153133966,58.715977 0,57.9184322 0,57.0641453 C0,55.1153036 0.848894811,53.5202138 2.5467099,52.2788283 C4.24452499,51.0374428 6.34512352,50.4167594 8.84856852,50.4167594 C11.3120649,50.4167594 13.3793735,51.0874979 15.0505562,52.4289952 C16.7217389,53.7704924 17.5573177,55.5224215 17.5573177,57.684835 C17.5573177,58.9662652 17.2743527,60.2076321 16.7084144,61.4089729 C16.142476,62.6103138 14.7875733,64.4623531 12.6436656,66.9651465 C10.4997579,69.4679398 8.40914641,71.7804862 6.3717683,73.902855 L17.8169822,73.902855 L16.7982982,79.6292176 L14.6810335,79.6292176 C14.7609307,79.3489048 14.8008787,79.0952922 14.8008787,78.8683723 C14.8008787,78.4812736 14.7010087,78.237672 14.5012658,78.1375603 C14.3015228,78.0374485 13.9020429,77.9873934 13.3028141,77.9873934 L0.0798967812,77.9873934 Z M12.2042333,97.1935484 C13.9486551,97.2335931 15.4400468,97.8309175 16.6784531,98.9855395 C17.9168594,100.140162 18.5360532,101.75861 18.5360532,103.840934 C18.5360532,106.830938 17.4041935,109.233584 15.14044,111.048943 C12.8766866,112.864303 10.1402492,113.771969 6.93104577,113.771969 C4.92030005,113.771969 3.26245842,113.388213 1.95747114,112.62069 C0.652483855,111.853166 0,110.848727 0,109.607341 C0,108.833144 0.26964894,108.209124 0.808954909,107.735261 C1.34826088,107.261399 1.93749375,107.024472 2.57667119,107.024472 C3.21584864,107.024472 3.73850152,107.224692 4.14464552,107.625139 C4.55078953,108.025586 4.92696644,108.67964 5.27318756,109.587319 C5.73925445,110.855401 6.51158227,111.489433 7.59019421,111.489433 C8.85523291,111.489433 9.87723568,111.012241 10.6562332,110.057842 C11.4352307,109.103444 11.8247236,107.371536 11.8247236,104.862069 C11.8247236,103.153495 11.7048796,101.838714 11.4651881,100.917686 C11.2254966,99.9966584 10.6728827,99.5361513 9.80732989,99.5361513 C9.22141723,99.5361513 8.62219737,99.843156 8.00965231,100.457175 C7.51695303,100.951059 7.07752513,101.197998 6.69135542,101.197998 C6.3584505,101.197998 6.08880156,101.051169 5.88240051,100.757508 C5.67599946,100.463847 5.57280049,100.183539 5.57280049,99.916574 C5.57280049,99.5962164 5.67599946,99.3225818 5.88240051,99.0956618 C6.08880156,98.8687419 6.57150646,98.5016711 7.33052967,97.9944383 C10.2068282,96.0722929 11.6449559,93.9766521 11.6449559,91.7074527 C11.6449559,90.5194601 11.3386879,89.615131 10.7261429,88.9944383 C10.1135978,88.3737455 9.37455999,88.0634038 8.5090072,88.0634038 C7.71003539,88.0634038 6.98431355,88.3270274 6.33181991,88.8542825 C5.67932627,89.3815377 5.35308434,90.0122321 5.35308434,90.7463849 C5.35308434,91.3871 5.60608828,91.9810874 6.11210376,92.5283648 C6.28521432,92.7285883 6.3717683,92.8954387 6.3717683,93.028921 C6.3717683,93.1490551 5.80250943,93.4560598 4.6639746,93.9499444 C3.52543978,94.4438289 2.80970494,94.6907675 2.51674861,94.6907675 C2.10394651,94.6907675 1.76771758,94.3570667 1.50805174,93.6896552 C1.24838591,93.0222436 1.11855494,92.4082342 1.11855494,91.8476085 C1.11855494,90.0989901 2.04734573,88.6240327 3.90495518,87.4226919 C5.76256463,86.2213511 7.86982116,85.6206897 10.226788,85.6206897 C12.2907985,85.6206897 14.0784711,86.0678487 15.5898594,86.9621802 C17.1012478,87.8565117 17.8569306,89.0778566 17.8569306,90.6262514 C17.8569306,91.987771 17.2876717,93.2491599 16.1491369,94.4104561 C15.0106021,95.5717522 13.6956474,96.4994404 12.2042333,97.1935484 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/list": {
            "title": "$:/core/images/list",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-list tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M0.719999312,185.568543 C2.21955287,181.862817 3.0452019,177.812144 3.0452019,173.568542 C3.0452019,155.891545 -11.2816707,141.568542 -28.9547636,141.568542 L-60.9548326,141.568542 C-78.6344937,141.568542 -92.9547981,155.895431 -92.9547981,173.568542 C-92.9547981,191.24554 -78.6279255,205.568542 -60.9548326,205.568542 L-28.9547636,205.568542 C-27.593228,205.568542 -26.2516158,205.483573 -24.9349335,205.31865 C-31.5207556,201.78951 -36.8809788,196.272192 -40.2126959,189.568542 L-60.9493786,189.568542 C-69.7889277,189.568542 -76.9547981,182.407041 -76.9547981,173.568542 C-76.9547981,164.731986 -69.7994766,157.568542 -60.9493786,157.568542 L-28.9602176,157.568542 C-20.1206685,157.568542 -12.9547981,164.730044 -12.9547981,173.568542 C-12.9547981,176.946528 -14.0004297,180.080016 -15.7866505,182.6623 C-13.6856165,184.473592 -10.949961,185.568542 -7.9585771,185.568542 L0.720002586,185.568542 Z\" transform=\"translate(-44.954798, 173.568542) rotate(-225.000000) translate(44.954798, -173.568542) \"></path>\n        <path d=\"M87.7480315,128 L23.9992458,128 C19.5813843,128 16,124.409247 16,119.993027 L16,8.00697327 C16,3.58484404 19.5881049,0 23.9992458,0 L104.000754,0 C108.418616,0 112,3.59075293 112,8.00697327 L112,104 L91.2492027,104 C90.2848199,104 89.410573,104.391703 88.7768998,105.025201 C88.1373658,105.661376 87.7480315,106.53563 87.7480315,107.501171 L87.7480315,128 Z M95.7480315,127.879386 L111.627417,112 L95.7480315,112 L95.7480315,127.879386 Z M40,15.5089165 C40,13.5709954 41.5636015,12 43.4998101,12 L98.5001899,12 C100.433082,12 102,13.5614718 102,15.5089165 L102,16.4910835 C102,18.4290046 100.436399,20 98.5001899,20 L43.4998101,20 C41.5669183,20 40,18.4385282 40,16.4910835 L40,15.5089165 Z M32,22 C35.3137085,22 38,19.3137085 38,16 C38,12.6862915 35.3137085,10 32,10 C28.6862915,10 26,12.6862915 26,16 C26,19.3137085 28.6862915,22 32,22 Z M40,31.5089165 C40,29.5709954 41.5636015,28 43.4998101,28 L98.5001899,28 C100.433082,28 102,29.5614718 102,31.5089165 L102,32.4910835 C102,34.4290046 100.436399,36 98.5001899,36 L43.4998101,36 C41.5669183,36 40,34.4385282 40,32.4910835 L40,31.5089165 Z M40,47.5089165 C40,45.5709954 41.5636015,44 43.4998101,44 L98.5001899,44 C100.433082,44 102,45.5614718 102,47.5089165 L102,48.4910835 C102,50.4290046 100.436399,52 98.5001899,52 L43.4998101,52 C41.5669183,52 40,50.4385282 40,48.4910835 L40,47.5089165 Z M40,63.5089165 C40,61.5709954 41.5636015,60 43.4998101,60 L98.5001899,60 C100.433082,60 102,61.5614718 102,63.5089165 L102,64.4910835 C102,66.4290046 100.436399,68 98.5001899,68 L43.4998101,68 C41.5669183,68 40,66.4385282 40,64.4910835 L40,63.5089165 Z M40,79.5089165 C40,77.5709954 41.5636015,76 43.4998101,76 L98.5001899,76 C100.433082,76 102,77.5614718 102,79.5089165 L102,80.4910835 C102,82.4290046 100.436399,84 98.5001899,84 L43.4998101,84 C41.5669183,84 40,82.4385282 40,80.4910835 L40,79.5089165 Z M40,95.5089165 C40,93.5709954 41.5636015,92 43.4998101,92 L98.5001899,92 C100.433082,92 102,93.5614718 102,95.5089165 L102,96.4910835 C102,98.4290046 100.436399,100 98.5001899,100 L43.4998101,100 C41.5669183,100 40,98.4385282 40,96.4910835 L40,95.5089165 Z M40,111.508916 C40,109.570995 41.5680474,108 43.4972017,108 L76.5027983,108 C78.4342495,108 80,109.561472 80,111.508916 L80,112.491084 C80,114.429005 78.4319526,116 76.5027983,116 L43.4972017,116 C41.5657505,116 40,114.438528 40,112.491084 L40,111.508916 Z M32,38 C35.3137085,38 38,35.3137085 38,32 C38,28.6862915 35.3137085,26 32,26 C28.6862915,26 26,28.6862915 26,32 C26,35.3137085 28.6862915,38 32,38 Z M32,54 C35.3137085,54 38,51.3137085 38,48 C38,44.6862915 35.3137085,42 32,42 C28.6862915,42 26,44.6862915 26,48 C26,51.3137085 28.6862915,54 32,54 Z M32,70 C35.3137085,70 38,67.3137085 38,64 C38,60.6862915 35.3137085,58 32,58 C28.6862915,58 26,60.6862915 26,64 C26,67.3137085 28.6862915,70 32,70 Z M32,86 C35.3137085,86 38,83.3137085 38,80 C38,76.6862915 35.3137085,74 32,74 C28.6862915,74 26,76.6862915 26,80 C26,83.3137085 28.6862915,86 32,86 Z M32,102 C35.3137085,102 38,99.3137085 38,96 C38,92.6862915 35.3137085,90 32,90 C28.6862915,90 26,92.6862915 26,96 C26,99.3137085 28.6862915,102 32,102 Z M32,118 C35.3137085,118 38,115.313708 38,112 C38,108.686292 35.3137085,106 32,106 C28.6862915,106 26,108.686292 26,112 C26,115.313708 28.6862915,118 32,118 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/locked-padlock": {
            "title": "$:/core/images/locked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-locked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M96.4723753,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L32.0000269,64 C32.0028554,48.2766389 32.3030338,16.2688026 64.1594984,16.2688041 C95.9543927,16.2688056 96.4648869,48.325931 96.4723753,64 Z M80.5749059,64 L48.4413579,64 C48.4426205,47.71306 48.5829272,31.9999996 64.1595001,31.9999996 C79.8437473,31.9999996 81.1369461,48.1359182 80.5749059,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mail": {
            "title": "$:/core/images/mail",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mail tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M122.826782,104.894066 C121.945525,105.22777 120.990324,105.41043 119.993027,105.41043 L8.00697327,105.41043 C7.19458381,105.41043 6.41045219,105.289614 5.67161357,105.064967 L5.67161357,105.064967 L39.8346483,70.9019325 L60.6765759,91.7438601 C61.6118278,92.679112 62.8865166,93.0560851 64.0946097,92.8783815 C65.2975108,93.0473238 66.5641085,92.6696979 67.4899463,91.7438601 L88.5941459,70.6396605 C88.6693095,70.7292352 88.7490098,70.8162939 88.8332479,70.9005321 L122.826782,104.894066 Z M127.903244,98.6568194 C127.966933,98.2506602 128,97.8343714 128,97.4103789 L128,33.410481 C128,32.7414504 127.917877,32.0916738 127.763157,31.4706493 L94.2292399,65.0045665 C94.3188145,65.0797417 94.4058701,65.1594458 94.4901021,65.2436778 L127.903244,98.6568194 Z M0.205060636,99.2178117 C0.0709009529,98.6370366 0,98.0320192 0,97.4103789 L0,33.410481 C0,32.694007 0.0944223363,31.9995312 0.27147538,31.3387595 L0.27147538,31.3387595 L34.1777941,65.2450783 L0.205060636,99.2178117 L0.205060636,99.2178117 Z M5.92934613,25.6829218 C6.59211333,25.5051988 7.28862283,25.4104299 8.00697327,25.4104299 L119.993027,25.4104299 C120.759109,25.4104299 121.500064,25.5178649 122.201605,25.7184927 L122.201605,25.7184927 L64.0832611,83.8368368 L5.92934613,25.6829218 L5.92934613,25.6829218 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/menu-button": {
            "title": "$:/core/images/menu-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <rect x=\"0\" y=\"16\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"56\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n    <rect x=\"0\" y=\"96\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n</svg>"
        },
        "$:/core/images/mono-block": {
            "title": "$:/core/images/mono-block",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-block tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M23.9653488,32.9670593 L24.3217888,32.9670593 C25.0766067,32.9670593 25.6497006,33.1592554 26.0410876,33.5436534 C26.4324747,33.9280514 26.6281653,34.4906619 26.6281653,35.2315017 C26.6281653,36.0562101 26.4219913,36.6502709 26.009637,37.0137017 C25.5972828,37.3771326 24.9158602,37.5588453 23.9653488,37.5588453 L17.6542639,37.5588453 C16.6897744,37.5588453 16.0048573,37.380627 15.5994921,37.0241852 C15.1941269,36.6677435 14.9914474,36.0701882 14.9914474,35.2315017 C14.9914474,34.4207713 15.1941269,33.8406885 15.5994921,33.4912358 C16.0048573,33.141783 16.6897744,32.9670593 17.6542639,32.9670593 L18.388111,32.9670593 L17.5284616,30.5139133 L8.47069195,30.5139133 L7.5691084,32.9670593 L8.30295547,32.9670593 C9.25346691,32.9670593 9.93488953,33.1452775 10.3472438,33.5017193 C10.759598,33.8581611 10.965772,34.4347494 10.965772,35.2315017 C10.965772,36.0562101 10.759598,36.6502709 10.3472438,37.0137017 C9.93488953,37.3771326 9.25346691,37.5588453 8.30295547,37.5588453 L2.89345418,37.5588453 C1.92896463,37.5588453 1.24404754,37.3771326 0.838682371,37.0137017 C0.433317198,36.6502709 0.230637652,36.0562101 0.230637652,35.2315017 C0.230637652,34.4906619 0.426328248,33.9280514 0.817715312,33.5436534 C1.20910238,33.1592554 1.78219626,32.9670593 2.53701417,32.9670593 L2.89345418,32.9670593 L8.51262607,17.3256331 L6.83526132,17.3256331 C5.88474988,17.3256331 5.20332727,17.1439204 4.79097304,16.7804895 C4.37861882,16.4170587 4.1724448,15.8299869 4.1724448,15.0192565 C4.1724448,14.1945481 4.37861882,13.6004873 4.79097304,13.2370565 C5.20332727,12.8736257 5.88474988,12.691913 6.83526132,12.691913 L14.6979086,12.691913 C15.9419603,12.691913 16.815579,13.3628521 17.318791,14.7047506 L17.318791,14.7676518 L23.9653488,32.9670593 Z M12.9786097,17.3256331 L9.9383861,26.1737321 L16.0188333,26.1737321 L12.9786097,17.3256331 Z M35.3809383,26.6979086 L35.3809383,33.0928616 L38.5259972,33.0928616 C40.7485166,33.0928616 42.3140414,32.8482484 43.2226185,32.3590146 C44.1311956,31.8697807 44.5854773,31.0520736 44.5854773,29.9058686 C44.5854773,28.7456855 44.1521624,27.9209895 43.2855197,27.4317556 C42.4188769,26.9425218 40.9022748,26.6979086 38.7356678,26.6979086 L35.3809383,26.6979086 Z M46.0741385,24.370565 C47.5977525,24.9296893 48.7159844,25.6949794 49.428868,26.666458 C50.1417516,27.6379366 50.498188,28.8784752 50.498188,30.388111 C50.498188,31.6601189 50.1906743,32.8202846 49.5756374,33.8686428 C48.9606006,34.917001 48.0799929,35.7766419 46.933788,36.4475911 C46.2628387,36.8389782 45.5115266,37.1220307 44.6798291,37.296757 C43.8481316,37.4714834 42.6704935,37.5588453 41.1468796,37.5588453 L39.3856466,37.5588453 L30.2020747,37.5588453 C29.2795194,37.5588453 28.6190637,37.3771326 28.2206876,37.0137017 C27.8223114,36.6502709 27.6231264,36.0562101 27.6231264,35.2315017 C27.6231264,34.4906619 27.811828,33.9280514 28.189237,33.5436534 C28.5666459,33.1592554 29.118773,32.9670593 29.8456347,32.9670593 L30.2020747,32.9670593 L30.2020747,17.3256331 L29.8456347,17.3256331 C29.118773,17.3256331 28.5666459,17.1299425 28.189237,16.7385554 C27.811828,16.3471683 27.6231264,15.7740744 27.6231264,15.0192565 C27.6231264,14.2085262 27.8258059,13.6179599 28.2311711,13.24754 C28.6365363,12.8771201 29.2934976,12.691913 30.2020747,12.691913 L39.8469219,12.691913 C42.796303,12.691913 45.0362615,13.2650068 46.5668644,14.4112118 C48.0974674,15.5574168 48.8627574,17.2347648 48.8627574,19.443306 C48.8627574,20.5335986 48.6286276,21.4945792 48.1603609,22.3262767 C47.6920943,23.1579742 46.9966938,23.8393968 46.0741385,24.370565 L46.0741385,24.370565 Z M35.3809383,17.1998307 L35.3809383,22.4835296 L38.2114913,22.4835296 C39.9307988,22.4835296 41.1433816,22.2808501 41.8492761,21.8754849 C42.5551706,21.4701197 42.9081126,20.7852027 42.9081126,19.8207131 C42.9081126,18.912136 42.5901154,18.2481858 41.9541114,17.8288425 C41.3181074,17.4094992 40.2872373,17.1998307 38.8614701,17.1998307 L35.3809383,17.1998307 Z M71.244119,13.3838259 C71.5236812,12.880614 71.8102281,12.5241775 72.1037684,12.3145059 C72.3973087,12.1048342 72.7677231,12 73.2150226,12 C73.8999499,12 74.3856819,12.1817127 74.6722332,12.5451435 C74.9587844,12.9085744 75.1020579,13.5305909 75.1020579,14.4112118 L75.143992,19.8626472 C75.143992,20.8271368 74.9867406,21.4771091 74.6722332,21.8125837 C74.3577257,22.1480584 73.7881263,22.3157932 72.9634178,22.3157932 C72.3763372,22.3157932 71.92555,22.1760142 71.6110425,21.896452 C71.2965351,21.6168898 71.0274605,21.0997075 70.8038107,20.3448896 C70.4403799,19.0169692 69.8602971,18.0629775 69.0635448,17.482886 C68.2667926,16.9027945 67.1625385,16.612753 65.7507494,16.612753 C63.5981206,16.612753 61.9487284,17.3396038 60.8025235,18.7933272 C59.6563185,20.2470506 59.0832246,22.3507245 59.0832246,25.104412 C59.0832246,27.8441215 59.6633074,29.9477954 60.8234905,31.4154969 C61.9836736,32.8831984 63.6400547,33.6170381 65.7926836,33.6170381 C67.2603851,33.6170381 68.878327,33.1278116 70.6465578,32.149344 C72.4147886,31.1708763 73.5295261,30.6816498 73.9908037,30.6816498 C74.53595,30.6816498 74.9937262,30.9122852 75.3641461,31.3735628 C75.734566,31.8348404 75.9197732,32.4079343 75.9197732,33.0928616 C75.9197732,34.3229353 74.836486,35.4831009 72.669879,36.5733935 C70.5032721,37.663686 68.0641285,38.2088241 65.3523753,38.2088241 C61.6901107,38.2088241 58.7267959,36.9997358 56.4623422,34.5815228 C54.1978885,32.1633099 53.0656786,29.0043046 53.0656786,25.104412 C53.0656786,21.3443006 54.2118664,18.22024 56.5042763,15.7321366 C58.7966863,13.2440331 61.7040894,12 65.226573,12 C66.2190187,12 67.1974717,12.1118232 68.1619613,12.3354729 C69.1264508,12.5591227 70.1538264,12.9085702 71.244119,13.3838259 L71.244119,13.3838259 Z M81.4645862,32.9670593 L81.4645862,17.3256331 L81.1081461,17.3256331 C80.3533282,17.3256331 79.7802344,17.1299425 79.3888473,16.7385554 C78.9974602,16.3471683 78.8017696,15.7740744 78.8017696,15.0192565 C78.8017696,14.2085262 79.0114381,13.6179599 79.4307814,13.24754 C79.8501247,12.8771201 80.5280528,12.691913 81.4645862,12.691913 L85.4063933,12.691913 L86.6434498,12.691913 C89.5648747,12.691913 91.7034933,12.8177141 93.0593699,13.06932 C94.4152465,13.320926 95.5684233,13.740263 96.5189347,14.3273436 C98.210286,15.3337675 99.5067362,16.7699967 100.408324,18.6360743 C101.309912,20.5021519 101.7607,22.6582429 101.7607,25.104412 C101.7607,27.6903623 101.247012,29.9512876 100.219621,31.8872557 C99.1922296,33.8232239 97.7350336,35.2874089 95.8479888,36.2798546 C94.9953241,36.7271541 93.9959043,37.0521403 92.8496993,37.2548229 C91.7034944,37.4575055 89.9981906,37.5588453 87.7337369,37.5588453 L85.4063933,37.5588453 L81.4645862,37.5588453 C80.5000966,37.5588453 79.8151795,37.380627 79.4098143,37.0241852 C79.0044492,36.6677435 78.8017696,36.0701882 78.8017696,35.2315017 C78.8017696,34.4906619 78.9974602,33.9280514 79.3888473,33.5436534 C79.7802344,33.1592554 80.3533282,32.9670593 81.1081461,32.9670593 L81.4645862,32.9670593 Z M86.8740874,17.2417648 L86.8740874,32.9670593 L88.0692098,32.9670593 C90.7110725,32.9670593 92.6609895,32.3205814 93.9190194,31.0276063 C95.1770492,29.7346312 95.8060547,27.7462749 95.8060547,25.0624779 C95.8060547,22.4206153 95.1665658,20.4497314 93.8875688,19.1497672 C92.6085718,17.849803 90.6831161,17.1998307 88.1111439,17.1998307 C87.7756693,17.1998307 87.5205727,17.2033252 87.3458463,17.2103142 C87.1711199,17.2173033 87.0138685,17.2277867 86.8740874,17.2417648 L86.8740874,17.2417648 Z M121.94052,17.1159625 L112.190837,17.1159625 L112.190837,22.4835296 L115.88104,22.4835296 L115.88104,22.2319249 C115.88104,21.4351727 116.055763,20.841112 116.405216,20.4497249 C116.754669,20.0583378 117.285829,19.8626472 117.998713,19.8626472 C118.627728,19.8626472 119.141415,20.0408655 119.539792,20.3973072 C119.938168,20.753749 120.137353,21.2045363 120.137353,21.7496826 C120.137353,21.7776388 120.144342,21.8684951 120.15832,22.0222543 C120.172298,22.1760135 120.179287,22.3297704 120.179287,22.4835296 L120.179287,26.8237109 C120.179287,27.7602442 120.011552,28.4311834 119.676077,28.8365486 C119.340603,29.2419138 118.795465,29.4445933 118.040647,29.4445933 C117.327763,29.4445933 116.789614,29.2558917 116.426183,28.8784827 C116.062752,28.5010738 115.88104,27.9419578 115.88104,27.201118 L115.88104,26.8237109 L112.190837,26.8237109 L112.190837,33.0928616 L121.94052,33.0928616 L121.94052,30.5977816 C121.94052,29.6612482 122.118738,28.9903091 122.47518,28.5849439 C122.831622,28.1795787 123.415199,27.9768992 124.225929,27.9768992 C125.022682,27.9768992 125.592281,28.1760842 125.934745,28.5744604 C126.277208,28.9728365 126.448438,29.6472701 126.448438,30.5977816 L126.448438,35.6718099 C126.448438,36.4266278 126.30167,36.9298322 126.008129,37.1814382 C125.714589,37.4330442 125.134506,37.5588453 124.267863,37.5588453 L107.095842,37.5588453 C106.173287,37.5588453 105.512831,37.3771326 105.114455,37.0137017 C104.716079,36.6502709 104.516894,36.0562101 104.516894,35.2315017 C104.516894,34.4906619 104.705595,33.9280514 105.083004,33.5436534 C105.460413,33.1592554 106.01254,32.9670593 106.739402,32.9670593 L107.095842,32.9670593 L107.095842,17.3256331 L106.739402,17.3256331 C106.026518,17.3256331 105.477886,17.126448 105.093488,16.7280719 C104.70909,16.3296957 104.516894,15.7600963 104.516894,15.0192565 C104.516894,14.2085262 104.719573,13.6179599 105.124938,13.24754 C105.530304,12.8771201 106.187265,12.691913 107.095842,12.691913 L124.267863,12.691913 C125.120528,12.691913 125.697116,12.8212085 125.997646,13.0798036 C126.298175,13.3383986 126.448438,13.8520864 126.448438,14.6208824 L126.448438,19.3175037 C126.448438,20.2680151 126.273714,20.9494377 125.924261,21.361792 C125.574808,21.7741462 125.008703,21.9803202 124.225929,21.9803202 C123.415199,21.9803202 122.831622,21.7706517 122.47518,21.3513084 C122.118738,20.9319652 121.94052,20.254037 121.94052,19.3175037 L121.94052,17.1159625 Z M19.7719369,47.6405477 C20.037521,47.1373358 20.3205734,46.7808993 20.6211028,46.5712277 C20.9216322,46.361556 21.295541,46.2567218 21.7428405,46.2567218 C22.4277678,46.2567218 22.9134998,46.4384345 23.2000511,46.8018653 C23.4866023,47.1652962 23.6298758,47.7873127 23.6298758,48.6679336 L23.6718099,54.119369 C23.6718099,55.0838586 23.5145586,55.7338309 23.2000511,56.0693055 C22.8855436,56.4047802 22.3089553,56.572515 21.4702687,56.572515 C20.8831881,56.572515 20.4254119,56.4292415 20.0969263,56.1426902 C19.7684407,55.856139 19.4993662,55.3424512 19.2896945,54.6016114 C18.9122856,53.2597129 18.3322027,52.3022267 17.5494286,51.7291243 C16.7666545,51.1560218 15.6693894,50.8694748 14.2576003,50.8694748 C12.1049715,50.8694748 10.4590738,51.5963256 9.31985785,53.050049 C8.18064193,54.5037724 7.61104252,56.6074463 7.61104252,59.3611338 C7.61104252,62.1148214 8.20859773,64.2429566 9.40372609,65.7456034 C10.5988544,67.2482501 12.2936748,67.9995623 14.488238,67.9995623 C14.9914499,67.9995623 15.5645438,67.9401562 16.2075368,67.8213423 C16.8505299,67.7025283 17.6053364,67.5173212 18.4719792,67.2657152 L18.4719792,63.9529198 L16.1027015,63.9529198 C15.1521901,63.9529198 14.4777564,63.7781961 14.0793803,63.4287433 C13.6810042,63.0792906 13.4818191,62.4992078 13.4818191,61.6884774 C13.4818191,60.8497908 13.6810042,60.2522356 14.0793803,59.8957938 C14.4777564,59.5393521 15.1521901,59.3611338 16.1027015,59.3611338 L23.6718099,59.3611338 C24.6502776,59.3611338 25.3386891,59.5358576 25.7370653,59.8853103 C26.1354414,60.2347631 26.3346265,60.8218348 26.3346265,61.6465433 C26.3346265,62.3873831 26.1354414,62.9569825 25.7370653,63.3553586 C25.3386891,63.7537347 24.7621008,63.9529198 24.0072829,63.9529198 L23.6718099,63.9529198 L23.6718099,68.9430799 L23.6718099,69.1946846 C23.6718099,69.6419841 23.6228873,69.9529924 23.5250405,70.1277188 C23.4271937,70.3024451 23.2315031,70.4806634 22.9379628,70.6623788 C22.1412106,71.1376345 20.8762107,71.5569715 19.1429251,71.9204023 C17.4096396,72.2838332 15.6554131,72.4655459 13.8801932,72.4655459 C10.2179286,72.4655459 7.25461383,71.2564576 4.99016011,68.8382446 C2.72570638,66.4200317 1.59349651,63.2610264 1.59349651,59.3611338 C1.59349651,55.6010224 2.73968428,52.4769618 5.03209423,49.9888583 C7.32450417,47.5007549 10.2319073,46.2567218 13.7543909,46.2567218 C14.7328585,46.2567218 15.7078171,46.368545 16.6792957,46.5921947 C17.6507743,46.8158445 18.6816444,47.165292 19.7719369,47.6405477 L19.7719369,47.6405477 Z M35.611576,51.5823548 L35.611576,56.4047785 L42.4678043,56.4047785 L42.4678043,51.5823548 L42.1323314,51.5823548 C41.3775135,51.5823548 40.8009251,51.3866642 40.402549,50.9952772 C40.0041729,50.6038901 39.8049878,50.0307962 39.8049878,49.2759783 C39.8049878,48.4512699 40.0111618,47.8572091 40.4235161,47.4937783 C40.8358703,47.1303474 41.5172929,46.9486347 42.4678043,46.9486347 L47.8773056,46.9486347 C48.8278171,46.9486347 49.5022507,47.1303474 49.9006269,47.4937783 C50.299003,47.8572091 50.498188,48.4512699 50.498188,49.2759783 C50.498188,50.0307962 50.3059919,50.6038901 49.9215939,50.9952772 C49.5371959,51.3866642 48.9745854,51.5823548 48.2337456,51.5823548 L47.8773056,51.5823548 L47.8773056,67.2237811 L48.2337456,67.2237811 C48.9885636,67.2237811 49.5616574,67.4159772 49.9530445,67.8003752 C50.3444316,68.1847732 50.5401222,68.7473837 50.5401222,69.4882235 C50.5401222,70.3129319 50.3374426,70.9069927 49.9320774,71.2704235 C49.5267123,71.6338543 48.8417952,71.815567 47.8773056,71.815567 L42.4678043,71.815567 C41.5033148,71.815567 40.8183977,71.6373488 40.4130325,71.280907 C40.0076674,70.9244652 39.8049878,70.32691 39.8049878,69.4882235 C39.8049878,68.7473837 40.0041729,68.1847732 40.402549,67.8003752 C40.8009251,67.4159772 41.3775135,67.2237811 42.1323314,67.2237811 L42.4678043,67.2237811 L42.4678043,61.0384986 L35.611576,61.0384986 L35.611576,67.2237811 L35.9470489,67.2237811 C36.7018668,67.2237811 37.2784552,67.4159772 37.6768313,67.8003752 C38.0752074,68.1847732 38.2743925,68.7473837 38.2743925,69.4882235 C38.2743925,70.3129319 38.0682185,70.9069927 37.6558642,71.2704235 C37.24351,71.6338543 36.5620874,71.815567 35.611576,71.815567 L30.2020747,71.815567 C29.2375851,71.815567 28.552668,71.6373488 28.1473029,71.280907 C27.7419377,70.9244652 27.5392581,70.32691 27.5392581,69.4882235 C27.5392581,68.7473837 27.7349487,68.1847732 28.1263358,67.8003752 C28.5177229,67.4159772 29.0908168,67.2237811 29.8456347,67.2237811 L30.2020747,67.2237811 L30.2020747,51.5823548 L29.8456347,51.5823548 C29.1047949,51.5823548 28.5421844,51.3866642 28.1577864,50.9952772 C27.7733884,50.6038901 27.5811923,50.0307962 27.5811923,49.2759783 C27.5811923,48.4512699 27.7803773,47.8572091 28.1787534,47.4937783 C28.5771296,47.1303474 29.2515632,46.9486347 30.2020747,46.9486347 L35.611576,46.9486347 C36.5481093,46.9486347 37.2260374,47.1303474 37.6453807,47.4937783 C38.064724,47.8572091 38.2743925,48.4512699 38.2743925,49.2759783 C38.2743925,50.0307962 38.0752074,50.6038901 37.6768313,50.9952772 C37.2784552,51.3866642 36.7018668,51.5823548 35.9470489,51.5823548 L35.611576,51.5823548 Z M67.365213,51.5823548 L67.365213,67.2237811 L70.887679,67.2237811 C71.8381904,67.2237811 72.519613,67.4019993 72.9319673,67.7584411 C73.3443215,68.1148829 73.5504955,68.6914712 73.5504955,69.4882235 C73.5504955,70.2989538 73.340827,70.8895201 72.9214837,71.25994 C72.5021404,71.6303599 71.8242123,71.815567 70.887679,71.815567 L58.4332458,71.815567 C57.4827343,71.815567 56.8013117,71.6338543 56.3889575,71.2704235 C55.9766033,70.9069927 55.7704292,70.3129319 55.7704292,69.4882235 C55.7704292,68.6774931 55.9731088,68.0974103 56.378474,67.7479575 C56.7838391,67.3985048 57.4687562,67.2237811 58.4332458,67.2237811 L61.9557117,67.2237811 L61.9557117,51.5823548 L58.4332458,51.5823548 C57.4827343,51.5823548 56.8013117,51.4006421 56.3889575,51.0372113 C55.9766033,50.6737805 55.7704292,50.0867087 55.7704292,49.2759783 C55.7704292,48.4512699 55.9731088,47.8641981 56.378474,47.5147453 C56.7838391,47.1652926 57.4687562,46.9905689 58.4332458,46.9905689 L70.887679,46.9905689 C71.8801247,46.9905689 72.5720308,47.1652926 72.9634178,47.5147453 C73.3548049,47.8641981 73.5504955,48.4512699 73.5504955,49.2759783 C73.5504955,50.0867087 73.347816,50.6737805 72.9424508,51.0372113 C72.5370856,51.4006421 71.8521685,51.5823548 70.887679,51.5823548 L67.365213,51.5823548 Z M97.8608265,51.5823548 L97.8608265,63.1771386 L97.8608265,63.5755127 C97.8608265,65.4485794 97.7385199,66.8044357 97.493903,67.6431222 C97.2492861,68.4818088 96.8404325,69.2296264 96.26733,69.8865976 C95.5264902,70.7392623 94.4991146,71.3822457 93.1851723,71.815567 C91.87123,72.2488884 90.2917273,72.4655459 88.4466169,72.4655459 C87.1466527,72.4655459 85.8921362,72.3397448 84.6830298,72.0881388 C83.4739233,71.8365328 82.3102631,71.4591296 81.1920144,70.9559176 C80.5769776,70.6763554 80.175113,70.31293 79.9864085,69.8656305 C79.797704,69.418331 79.7033532,68.6914802 79.7033532,67.6850564 L79.7033532,63.3658422 C79.7033532,62.1637247 79.8780769,61.3250508 80.2275297,60.849795 C80.5769824,60.3745393 81.185021,60.136915 82.0516638,60.136915 C83.2957156,60.136915 83.9806326,61.0524675 84.1064356,62.8835998 C84.1204137,63.2050963 84.1413806,63.4497096 84.1693368,63.6174469 C84.3370741,65.2389076 84.7144774,66.3466561 85.301558,66.9407258 C85.8886386,67.5347954 86.8251579,67.8318258 88.1111439,67.8318258 C89.7046484,67.8318258 90.8263749,67.4089943 91.476357,66.5633187 C92.126339,65.7176431 92.4513252,64.1765796 92.4513252,61.9400821 L92.4513252,51.5823548 L88.9288593,51.5823548 C87.9783478,51.5823548 87.2969252,51.4006421 86.884571,51.0372113 C86.4722168,50.6737805 86.2660427,50.0867087 86.2660427,49.2759783 C86.2660427,48.4512699 86.4652278,47.8641981 86.8636039,47.5147453 C87.26198,47.1652926 87.9503916,46.9905689 88.9288593,46.9905689 L99.6220595,46.9905689 C100.600527,46.9905689 101.288939,47.1652926 101.687315,47.5147453 C102.085691,47.8641981 102.284876,48.4512699 102.284876,49.2759783 C102.284876,50.0867087 102.078702,50.6737805 101.666348,51.0372113 C101.253994,51.4006421 100.572571,51.5823548 99.6220595,51.5823548 L97.8608265,51.5823548 Z M112.505343,51.5823548 L112.505343,57.9353738 L118.984165,51.4565525 C118.257303,51.3726838 117.747109,51.1665098 117.453569,50.8380242 C117.160029,50.5095387 117.013261,49.9888619 117.013261,49.2759783 C117.013261,48.4512699 117.212446,47.8572091 117.610822,47.4937783 C118.009198,47.1303474 118.683632,46.9486347 119.634143,46.9486347 L124.771073,46.9486347 C125.721584,46.9486347 126.396018,47.1303474 126.794394,47.4937783 C127.19277,47.8572091 127.391955,48.4512699 127.391955,49.2759783 C127.391955,50.0447743 127.19277,50.6213627 126.794394,51.0057607 C126.396018,51.3901587 125.812441,51.5823548 125.043645,51.5823548 L124.561402,51.5823548 L118.459988,57.641835 C119.592215,58.4805215 120.626579,59.5812811 121.563113,60.9441468 C122.499646,62.3070125 123.596911,64.400203 124.854941,67.2237811 L125.127513,67.2237811 L125.546854,67.2237811 C126.371563,67.2237811 126.98659,67.4124827 127.391955,67.7898917 C127.79732,68.1673006 128,68.7334056 128,69.4882235 C128,70.3129319 127.793826,70.9069927 127.381472,71.2704235 C126.969118,71.6338543 126.287695,71.815567 125.337183,71.815567 L122.758235,71.815567 C121.626008,71.815567 120.710456,71.0537715 120.01155,69.5301576 C119.885747,69.2505954 119.787902,69.026949 119.718012,68.8592117 C118.795456,66.9022764 117.949793,65.3926632 117.180997,64.3303269 C116.412201,63.2679906 115.510627,62.2965265 114.476247,61.4159056 L112.505343,63.302941 L112.505343,67.2237811 L112.840816,67.2237811 C113.595634,67.2237811 114.172222,67.4159772 114.570599,67.8003752 C114.968975,68.1847732 115.16816,68.7473837 115.16816,69.4882235 C115.16816,70.3129319 114.961986,70.9069927 114.549631,71.2704235 C114.137277,71.6338543 113.455855,71.815567 112.505343,71.815567 L107.095842,71.815567 C106.131352,71.815567 105.446435,71.6373488 105.04107,71.280907 C104.635705,70.9244652 104.433025,70.32691 104.433025,69.4882235 C104.433025,68.7473837 104.628716,68.1847732 105.020103,67.8003752 C105.41149,67.4159772 105.984584,67.2237811 106.739402,67.2237811 L107.095842,67.2237811 L107.095842,51.5823548 L106.739402,51.5823548 C105.998562,51.5823548 105.435952,51.3866642 105.051554,50.9952772 C104.667156,50.6038901 104.474959,50.0307962 104.474959,49.2759783 C104.474959,48.4512699 104.674145,47.8572091 105.072521,47.4937783 C105.470897,47.1303474 106.14533,46.9486347 107.095842,46.9486347 L112.505343,46.9486347 C113.441877,46.9486347 114.119805,47.1303474 114.539148,47.4937783 C114.958491,47.8572091 115.16816,48.4512699 115.16816,49.2759783 C115.16816,50.0307962 114.968975,50.6038901 114.570599,50.9952772 C114.172222,51.3866642 113.595634,51.5823548 112.840816,51.5823548 L112.505343,51.5823548 Z M13.439885,96.325622 L17.4445933,84.4372993 C17.6961993,83.6545252 18.0456468,83.0849258 18.4929463,82.728484 C18.9402458,82.3720422 19.5343065,82.193824 20.2751463,82.193824 L23.5460076,82.193824 C24.496519,82.193824 25.1779416,82.3755367 25.5902958,82.7389675 C26.0026501,83.1023984 26.2088241,83.6964591 26.2088241,84.5211676 C26.2088241,85.2759855 26.009639,85.8490794 25.6112629,86.2404664 C25.2128868,86.6318535 24.6362984,86.8275441 23.8814805,86.8275441 L23.5460076,86.8275441 L24.1330852,102.46897 L24.4895252,102.46897 C25.2443431,102.46897 25.8104481,102.661166 26.187857,103.045564 C26.565266,103.429962 26.7539676,103.992573 26.7539676,104.733413 C26.7539676,105.558121 26.5547826,106.152182 26.1564064,106.515613 C25.7580303,106.879044 25.0835967,107.060756 24.1330852,107.060756 L19.4154969,107.060756 C18.4649855,107.060756 17.7905518,106.882538 17.3921757,106.526096 C16.9937996,106.169654 16.7946145,105.572099 16.7946145,104.733413 C16.7946145,103.992573 16.9868106,103.429962 17.3712086,103.045564 C17.7556066,102.661166 18.325206,102.46897 19.0800239,102.46897 L19.4154969,102.46897 L19.1219581,89.6790642 L16.0607674,99.1981091 C15.8371177,99.9109927 15.5191204,100.42468 15.1067662,100.739188 C14.694412,101.053695 14.1248126,101.210947 13.3979509,101.210947 C12.6710892,101.210947 12.0945008,101.053695 11.6681685,100.739188 C11.2418362,100.42468 10.91685,99.9109927 10.6932002,99.1981091 L7.65297664,89.6790642 L7.35943781,102.46897 L7.69491075,102.46897 C8.44972866,102.46897 9.01932808,102.661166 9.40372609,103.045564 C9.78812409,103.429962 9.98032022,103.992573 9.98032022,104.733413 C9.98032022,105.558121 9.77764067,106.152182 9.3722755,106.515613 C8.96691032,106.879044 8.29597114,107.060756 7.35943781,107.060756 L2.62088241,107.060756 C1.68434908,107.060756 1.01340989,106.879044 0.608044719,106.515613 C0.202679546,106.152182 0,105.558121 0,104.733413 C0,103.992573 0.192196121,103.429962 0.57659413,103.045564 C0.960992139,102.661166 1.53059155,102.46897 2.28540946,102.46897 L2.62088241,102.46897 L3.22892713,86.8275441 L2.89345418,86.8275441 C2.13863627,86.8275441 1.56204791,86.6318535 1.16367179,86.2404664 C0.765295672,85.8490794 0.5661106,85.2759855 0.5661106,84.5211676 C0.5661106,83.6964591 0.772284622,83.1023984 1.18463885,82.7389675 C1.59699308,82.3755367 2.27841569,82.193824 3.22892713,82.193824 L6.49978838,82.193824 C7.22665007,82.193824 7.81022738,82.3685477 8.25053783,82.7180005 C8.69084827,83.0674532 9.05077919,83.6405471 9.33034138,84.4372993 L13.439885,96.325622 Z M43.8935644,98.3803938 L43.8935644,86.8275441 L42.7403761,86.8275441 C41.8178209,86.8275441 41.1573651,86.6458314 40.758989,86.2824006 C40.3606129,85.9189697 40.1614278,85.3318979 40.1614278,84.5211676 C40.1614278,83.7104372 40.3606129,83.119871 40.758989,82.7494511 C41.1573651,82.3790312 41.8178209,82.193824 42.7403761,82.193824 L48.6950209,82.193824 C49.6035981,82.193824 50.2605593,82.3790312 50.6659245,82.7494511 C51.0712897,83.119871 51.2739692,83.7104372 51.2739692,84.5211676 C51.2739692,85.2620074 51.0817731,85.8316068 50.6973751,86.2299829 C50.3129771,86.628359 49.7643445,86.8275441 49.051461,86.8275441 L48.6950209,86.8275441 L48.6950209,105.865634 C48.6950209,106.522605 48.6251315,106.934953 48.4853504,107.10269 C48.3455693,107.270428 48.0310665,107.354295 47.5418327,107.354295 L45.4451268,107.354295 C44.7741775,107.354295 44.3024234,107.284406 44.0298503,107.144625 C43.7572771,107.004843 43.5231473,106.76023 43.3274538,106.410777 L34.6051571,91.0838571 L34.6051571,102.46897 L35.8212466,102.46897 C36.7298237,102.46897 37.379796,102.643694 37.7711831,102.993147 C38.1625701,103.3426 38.3582607,103.922682 38.3582607,104.733413 C38.3582607,105.558121 38.1590757,106.152182 37.7606995,106.515613 C37.3623234,106.879044 36.7158456,107.060756 35.8212466,107.060756 L29.8037005,107.060756 C28.8951234,107.060756 28.2381621,106.879044 27.832797,106.515613 C27.4274318,106.152182 27.2247522,105.558121 27.2247522,104.733413 C27.2247522,103.992573 27.4134539,103.429962 27.7908629,103.045564 C28.1682718,102.661166 28.7273878,102.46897 29.4682276,102.46897 L29.8037005,102.46897 L29.8037005,86.8275441 L29.4682276,86.8275441 C28.755344,86.8275441 28.203217,86.628359 27.8118299,86.2299829 C27.4204428,85.8316068 27.2247522,85.2620074 27.2247522,84.5211676 C27.2247522,83.7104372 27.4309263,83.119871 27.8432805,82.7494511 C28.2556347,82.3790312 28.9091015,82.193824 29.8037005,82.193824 L33.2422983,82.193824 C34.0670067,82.193824 34.6261227,82.3021527 34.919663,82.5188134 C35.2132033,82.7354741 35.5416839,83.1722835 35.9051148,83.8292546 L43.8935644,98.3803938 Z M64.6604624,86.3662688 C62.8572863,86.3662688 61.4420239,87.0931196 60.4146329,88.546843 C59.3872418,90.0005663 58.873554,92.0203728 58.873554,94.6063231 C58.873554,97.1922733 59.3907363,99.2190688 60.4251164,100.68677 C61.4594965,102.154472 62.8712644,102.888312 64.6604624,102.888312 C66.4636385,102.888312 67.8823953,102.157966 68.9167754,100.697254 C69.9511555,99.2365414 70.4683378,97.2062514 70.4683378,94.6063231 C70.4683378,92.0203728 69.95465,90.0005663 68.9272589,88.546843 C67.8998679,87.0931196 66.4776166,86.3662688 64.6604624,86.3662688 L64.6604624,86.3662688 Z M64.6604624,81.501911 C68.0990773,81.501911 70.929602,82.7319662 73.1521214,85.1921135 C75.3746408,87.6522607 76.4858838,90.7902992 76.4858838,94.6063231 C76.4858838,98.4503032 75.3816297,101.595331 73.1730884,104.0415 C70.9645471,106.487669 68.1270335,107.710735 64.6604624,107.710735 C61.2358256,107.710735 58.4053009,106.477185 56.1688034,104.010049 C53.9323059,101.542913 52.8140739,98.4083688 52.8140739,94.6063231 C52.8140739,90.7763211 53.9218224,87.6347881 56.1373528,85.1816299 C58.3528831,82.7284717 61.1938912,81.501911 64.6604624,81.501911 L64.6604624,81.501911 Z M87.4611651,98.1707232 L87.4611651,102.46897 L89.6207722,102.46897 C90.5293493,102.46897 91.1758272,102.643694 91.5602252,102.993147 C91.9446232,103.3426 92.1368193,103.922682 92.1368193,104.733413 C92.1368193,105.558121 91.9411287,106.152182 91.5497417,106.515613 C91.1583546,106.879044 90.5153712,107.060756 89.6207722,107.060756 L82.3661697,107.060756 C81.4436145,107.060756 80.7831587,106.879044 80.3847826,106.515613 C79.9864065,106.152182 79.7872214,105.558121 79.7872214,104.733413 C79.7872214,103.992573 79.9759231,103.429962 80.353332,103.045564 C80.730741,102.661166 81.282868,102.46897 82.0097297,102.46897 L82.3661697,102.46897 L82.3661697,86.8275441 L82.0097297,86.8275441 C81.2968461,86.8275441 80.7482136,86.628359 80.3638155,86.2299829 C79.9794175,85.8316068 79.7872214,85.2620074 79.7872214,84.5211676 C79.7872214,83.7104372 79.989901,83.119871 80.3952661,82.7494511 C80.8006313,82.3790312 81.4575926,82.193824 82.3661697,82.193824 L91.0255652,82.193824 C94.450202,82.193824 97.0396079,82.8507853 98.7938606,84.1647276 C100.548113,85.4786699 101.425227,87.414609 101.425227,89.972603 C101.425227,92.6703781 100.551608,94.7111515 98.8043442,96.0949843 C97.0570805,97.4788171 94.4641801,98.1707232 91.0255652,98.1707232 L87.4611651,98.1707232 Z M87.4611651,86.8275441 L87.4611651,93.4531348 L90.4384875,93.4531348 C92.0879044,93.4531348 93.328443,93.1735768 94.1601405,92.6144525 C94.9918381,92.0553281 95.4076806,91.2166541 95.4076806,90.0984053 C95.4076806,89.0500471 94.9778602,88.2428234 94.1182064,87.67671 C93.2585527,87.1105966 92.031992,86.8275441 90.4384875,86.8275441 L87.4611651,86.8275441 Z M114.727851,107.396229 L113.092421,109.03166 C113.69348,108.835966 114.284046,108.689198 114.864137,108.591352 C115.444229,108.493505 116.013828,108.444582 116.572953,108.444582 C117.677223,108.444582 118.840883,108.608823 120.063968,108.937308 C121.287053,109.265794 122.031376,109.430034 122.29696,109.430034 C122.744259,109.430034 123.327837,109.279772 124.047709,108.979242 C124.767582,108.678713 125.253314,108.52845 125.50492,108.52845 C126.02211,108.52845 126.45193,108.727636 126.794394,109.126012 C127.136858,109.524388 127.308087,110.024098 127.308087,110.625156 C127.308087,111.421909 126.836333,112.099837 125.892811,112.658961 C124.949288,113.218086 123.792617,113.497643 122.422762,113.497643 C121.486229,113.497643 120.28413,113.277492 118.816428,112.837181 C117.348727,112.396871 116.286406,112.176719 115.629435,112.176719 C114.636989,112.176719 113.518757,112.449288 112.274706,112.994434 C111.030654,113.53958 110.261869,113.812149 109.968329,113.812149 C109.36727,113.812149 108.857077,113.612964 108.437734,113.214588 C108.01839,112.816212 107.808722,112.337469 107.808722,111.778345 C107.808722,111.386958 107.941512,110.971115 108.207096,110.530805 C108.47268,110.090494 108.94094,109.520895 109.611889,108.821989 L111.729562,106.683349 C109.395218,105.830685 107.536157,104.29661 106.152324,102.08108 C104.768491,99.8655494 104.076585,97.3180772 104.076585,94.4385866 C104.076585,90.6365409 105.180839,87.5299526 107.389381,85.1187288 C109.597922,82.7075049 112.442425,81.501911 115.922974,81.501911 C119.389545,81.501911 122.227059,82.7109994 124.4356,85.1292123 C126.644141,87.5474252 127.748395,90.650519 127.748395,94.4385866 C127.748395,98.2126762 126.65113,101.322759 124.456567,103.768928 C122.262004,106.215097 119.480402,107.438163 116.111677,107.438163 C115.888028,107.438163 115.660887,107.434669 115.430248,107.42768 C115.199609,107.420691 114.965479,107.410207 114.727851,107.396229 L114.727851,107.396229 Z M115.922974,86.3662688 C114.119798,86.3662688 112.704535,87.0931196 111.677144,88.546843 C110.649753,90.0005663 110.136065,92.0203728 110.136065,94.6063231 C110.136065,97.1922733 110.653248,99.2190688 111.687628,100.68677 C112.722008,102.154472 114.133776,102.888312 115.922974,102.888312 C117.72615,102.888312 119.144907,102.157966 120.179287,100.697254 C121.213667,99.2365414 121.730849,97.2062514 121.730849,94.6063231 C121.730849,92.0203728 121.217161,90.0005663 120.18977,88.546843 C119.162379,87.0931196 117.740128,86.3662688 115.922974,86.3662688 L115.922974,86.3662688 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/mono-line": {
            "title": "$:/core/images/mono-line",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-mono-line tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M60.4374591,84.522627 L61.3450888,84.522627 C63.2671377,84.522627 64.7264493,85.0120303 65.7230673,85.9908515 C66.7196852,86.9696727 67.2179868,88.4022896 67.2179868,90.288745 C67.2179868,92.3887615 66.6929905,93.9014625 65.6429823,94.8268935 C64.5929741,95.7523244 62.857817,96.215033 60.4374591,96.215033 L44.3670747,96.215033 C41.9111232,96.215033 40.1670679,95.7612227 39.1348565,94.8535884 C38.102645,93.9459542 37.586547,92.424355 37.586547,90.288745 C37.586547,88.2243221 38.102645,86.747214 39.1348565,85.8573766 C40.1670679,84.9675391 41.9111232,84.522627 44.3670747,84.522627 L46.235724,84.522627 L44.0467348,78.2759992 L20.9822627,78.2759992 L18.6864935,84.522627 L20.5551429,84.522627 C22.9755008,84.522627 24.7106579,84.9764373 25.7606661,85.8840716 C26.8106743,86.7917058 27.3356705,88.2599156 27.3356705,90.288745 C27.3356705,92.3887615 26.8106743,93.9014625 25.7606661,94.8268935 C24.7106579,95.7523244 22.9755008,96.215033 20.5551429,96.215033 L6.78052766,96.215033 C4.32457622,96.215033 2.58052094,95.7523244 1.54830946,94.8268935 C0.516097994,93.9014625 0,92.3887615 0,90.288745 C0,88.4022896 0.498301511,86.9696727 1.49491948,85.9908515 C2.49153745,85.0120303 3.95084902,84.522627 5.87289797,84.522627 L6.78052766,84.522627 L21.0890427,44.6937008 L16.8178442,44.6937008 C14.3974863,44.6937008 12.6623292,44.2309922 11.612321,43.3055613 C10.5623128,42.3801303 10.0373165,40.8852258 10.0373165,38.8208028 C10.0373165,36.7207864 10.5623128,35.2080854 11.612321,34.2826544 C12.6623292,33.3572234 14.3974863,32.8945149 16.8178442,32.8945149 L36.8390873,32.8945149 C40.0069087,32.8945149 42.231469,34.6029772 43.512835,38.0199531 L43.512835,38.180123 L60.4374591,84.522627 Z M32.4611088,44.6937008 L24.7195615,67.224273 L40.2026561,67.224273 L32.4611088,44.6937008 Z M89.5058233,68.5590225 L89.5058233,84.8429669 L97.5143205,84.8429669 C103.173687,84.8429669 107.160099,84.22009 109.473676,82.9743176 C111.787254,81.7285451 112.944025,79.6463566 112.944025,76.7276897 C112.944025,73.7734293 111.840643,71.6734444 109.633846,70.4276719 C107.427049,69.1818994 103.565213,68.5590225 98.0482204,68.5590225 L89.5058233,68.5590225 Z M116.734714,62.6327346 C120.614405,64.0564746 123.461842,66.0051894 125.277111,68.4789376 C127.092379,70.9526857 128,74.1115614 128,77.9556593 C128,81.1946677 127.216955,84.1488838 125.650841,86.8183962 C124.084727,89.4879087 121.84237,91.676876 118.923703,93.385364 C117.215215,94.3819819 115.302093,95.1027395 113.18428,95.5476582 C111.066467,95.9925769 108.06776,96.215033 104.188068,96.215033 L99.7033098,96.215033 L76.3184979,96.215033 C73.9693269,96.215033 72.2875593,95.7523244 71.2731446,94.8268935 C70.2587299,93.9014625 69.7515301,92.3887615 69.7515301,90.288745 C69.7515301,88.4022896 70.2320352,86.9696727 71.1930596,85.9908515 C72.1540841,85.0120303 73.5600062,84.522627 75.4108682,84.522627 L76.3184979,84.522627 L76.3184979,44.6937008 L75.4108682,44.6937008 C73.5600062,44.6937008 72.1540841,44.1953993 71.1930596,43.1987813 C70.2320352,42.2021633 69.7515301,40.7428518 69.7515301,38.8208028 C69.7515301,36.7563799 70.2676281,35.2525771 71.2998396,34.3093494 C72.3320511,33.3661217 74.0049204,32.8945149 76.3184979,32.8945149 L100.877889,32.8945149 C108.388118,32.8945149 114.09189,34.3538264 117.989378,37.2724934 C121.886867,40.1911603 123.835581,44.4623161 123.835581,50.0860889 C123.835581,52.8623819 123.239399,55.3093982 122.047017,57.4272114 C120.854635,59.5450246 119.083885,61.2801816 116.734714,62.6327346 L116.734714,62.6327346 Z M89.5058233,44.3733609 L89.5058233,57.8276363 L96.7134708,57.8276363 C101.091471,57.8276363 104.179161,57.3115383 105.976633,56.2793268 C107.774104,55.2471153 108.672827,53.50306 108.672827,51.0471086 C108.672827,48.7335312 107.863087,47.0428653 106.243583,45.9750604 C104.624078,44.9072554 101.999097,44.3733609 98.3685602,44.3733609 L89.5058233,44.3733609 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-button": {
            "title": "$:/core/images/new-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-here-button": {
            "title": "$:/core/images/new-here-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-here-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n    \t<g transform=\"translate(52.233611, 64.389922) rotate(75.000000) translate(-52.233611, -64.389922) translate(-7.734417, 3.702450)\">\n\t        <path d=\"M18.9270186,45.959338 L18.9080585,49.6521741 C18.8884833,53.4648378 21.0574548,58.7482162 23.7526408,61.4434022 L78.5671839,116.257945 C81.2617332,118.952495 85.6348701,118.950391 88.3334363,116.251825 L115.863237,88.7220241 C118.555265,86.0299959 118.564544,81.6509578 115.869358,78.9557717 L61.0548144,24.1412286 C58.3602652,21.4466794 53.0787224,19.2788426 49.2595808,19.3006519 L25.9781737,19.4336012 C22.1633003,19.4553862 19.0471195,22.5673232 19.0275223,26.3842526 L18.9871663,34.2443819 C19.0818862,34.255617 19.1779758,34.2665345 19.2754441,34.2771502 C22.6891275,34.6489512 27.0485594,34.2348566 31.513244,33.2285542 C31.7789418,32.8671684 32.075337,32.5211298 32.4024112,32.1940556 C34.8567584,29.7397084 38.3789778,29.0128681 41.4406288,30.0213822 C41.5958829,29.9543375 41.7503946,29.8866669 41.9041198,29.8183808 L42.1110981,30.2733467 C43.1114373,30.6972371 44.0473796,31.3160521 44.8614145,32.1300869 C48.2842088,35.5528813 48.2555691,41.130967 44.7974459,44.5890903 C41.4339531,47.952583 36.0649346,48.0717177 32.6241879,44.9262969 C27.8170558,45.8919233 23.0726921,46.2881596 18.9270186,45.959338 Z\"></path>\n\t        <path d=\"M45.4903462,38.8768094 C36.7300141,42.6833154 26.099618,44.7997354 18.1909048,43.9383587 C7.2512621,42.7468685 1.50150083,35.8404432 4.66865776,24.7010202 C7.51507386,14.6896965 15.4908218,6.92103848 24.3842626,4.38423012 C34.1310219,1.60401701 42.4070208,6.15882777 42.4070209,16.3101169 L34.5379395,16.310117 C34.5379394,11.9285862 31.728784,10.3825286 26.5666962,11.8549876 C20.2597508,13.6540114 14.3453742,19.4148216 12.2444303,26.8041943 C10.4963869,32.9523565 12.6250796,35.5092726 19.0530263,36.2093718 C25.5557042,36.9176104 35.0513021,34.9907189 42.7038419,31.5913902 L42.7421786,31.6756595 C44.3874154,31.5384763 47.8846101,37.3706354 45.9274416,38.6772897 L45.9302799,38.6835285 C45.9166992,38.6895612 45.9031139,38.6955897 45.8895238,38.7016142 C45.8389288,38.7327898 45.7849056,38.7611034 45.7273406,38.7863919 C45.6506459,38.8200841 45.571574,38.8501593 45.4903462,38.8768094 Z\"></path>\n        </g>\n        <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n        <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n    </g>\n    </g>\n</svg>"
        },
        "$:/core/images/new-image-button": {
            "title": "$:/core/images/new-image-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.3619177,73.6270062 L97.1875317,46.2162388 C97.91364,44.9585822 97.4824378,43.3533085 96.2260476,42.6279312 L46.2162388,13.7547547 C44.9585822,13.0286463 43.3533085,13.4598485 42.6279312,14.7162388 L30.0575956,36.4886988 L40.0978909,31.2276186 C43.1404959,29.6333041 46.8692155,31.3421319 47.6479264,34.6877101 L51.2545483,52.3903732 L61.1353556,53.2399953 C63.2899974,53.4346096 65.1046382,54.9309951 65.706105,57.0091178 C65.7395572,57.1246982 65.8069154,57.3539875 65.9047035,57.6813669 C66.0696435,58.2335608 66.2581528,58.852952 66.4667073,59.5238092 C67.0618822,61.4383079 67.6960725,63.3742727 68.3393254,65.2021174 C68.5462918,65.7902259 68.7511789,66.3583016 68.953259,66.9034738 C69.5777086,68.5881157 70.1617856,70.0172008 70.6783305,71.110045 C70.9334784,71.6498566 71.1627732,72.0871602 71.4035746,72.5373068 C71.6178999,72.7492946 71.9508843,72.9623307 72.4151452,73.1586945 C73.5561502,73.6412938 75.1990755,73.899146 77.0720271,73.9171651 C77.9355886,73.9254732 78.7819239,73.8832103 79.5638842,73.8072782 C80.0123946,73.7637257 80.3172916,73.7224469 80.4352582,73.7027375 C80.7503629,73.6500912 81.0598053,73.6256267 81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 Z M37.4707881,2.64867269 C38.9217993,0.135447653 42.1388058,-0.723707984 44.6486727,0.725364314 L108.293614,37.4707881 C110.806839,38.9217993 111.665994,42.1388058 110.216922,44.6486727 L73.4714982,108.293614 C72.0204871,110.806839 68.8034805,111.665994 66.2936136,110.216922 L2.64867269,73.4714982 C0.135447653,72.0204871 -0.723707984,68.8034805 0.725364314,66.2936136 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 Z M80.3080975,53.1397764 C82.8191338,54.5895239 86.0299834,53.7291793 87.4797308,51.218143 C88.9294783,48.7071068 88.0691338,45.4962571 85.5580975,44.0465097 C83.0470612,42.5967622 79.8362116,43.4571068 78.3864641,45.968143 C76.9367166,48.4791793 77.7970612,51.6900289 80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 Z M96,112 L88.0070969,112 C83.5881712,112 80,108.418278 80,104 C80,99.5907123 83.5848994,96 88.0070969,96 L96,96 L96,88.0070969 C96,83.5881712 99.581722,80 104,80 C108.409288,80 112,83.5848994 112,88.0070969 L112,96 L119.992903,96 C124.411829,96 128,99.581722 128,104 C128,108.409288 124.415101,112 119.992903,112 L112,112 L112,119.992903 C112,124.411829 108.418278,128 104,128 C99.5907123,128 96,124.415101 96,119.992903 L96,112 L96,112 Z M33.3471097,51.7910932 C40.7754579,59.7394511 42.3564368,62.4818351 40.7958321,65.1848818 C39.2352273,67.8879286 26.9581062,62.8571718 24.7019652,66.7649227 C22.4458242,70.6726735 23.7947046,70.0228006 22.2648667,72.6725575 L41.9944593,84.0634431 C41.9944593,84.0634431 36.3904568,75.8079231 37.7602356,73.4353966 C40.2754811,69.0788636 46.5298923,72.1787882 48.1248275,69.4162793 C50.538989,65.234829 43.0222016,59.7770885 33.3471097,51.7910932 L33.3471097,51.7910932 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/new-journal-button": {
            "title": "$:/core/images/new-journal-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-new-journal-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z\"></path>\n        <g transform=\"translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)\">\n            <g transform=\"translate(0.000000, 0.000000)\">\n                <path d=\"M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z\"></path>\n                <text font-family=\"Helvetica\" font-size=\"47.1724138\" font-weight=\"bold\" fill=\"#FFFFFF\">\n                    <tspan x=\"42\" y=\"77.4847912\" text-anchor=\"middle\"><<now \"DD\">></tspan>\n                </text>\n            </g>\n        </g>\n    </g>\n</svg>"
        },
        "$:/core/images/opacity": {
            "title": "$:/core/images/opacity",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-opacity tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M102.361773,65 C101.833691,67.051742 101.183534,69.0544767 100.419508,71 L82.5835324,71 C83.7602504,69.1098924 84.7666304,67.1027366 85.581205,65 L102.361773,65 Z M102.834311,63 C103.256674,61.0388326 103.568427,59.0365486 103.762717,57 L87.6555706,57 C87.3692052,59.0609452 86.9083652,61.0660782 86.2884493,63 L102.834311,63 Z M99.5852583,73 C98.6682925,75.0747721 97.6196148,77.0783056 96.4498253,79 L75.8124196,79 C77.8387053,77.2115633 79.6621163,75.1985844 81.2437158,73 L99.5852583,73 Z M95.1689122,81 C93.7449202,83.1155572 92.1695234,85.1207336 90.458251,87 L60.4614747,87 C65.1836162,85.86248 69.5430327,83.794147 73.3347255,81 L95.1689122,81 Z M87.6555706,47 L103.762717,47 C101.246684,20.6269305 79.0321807,0 52,0 C23.281193,0 0,23.281193 0,52 C0,77.2277755 17.9651296,98.2595701 41.8000051,103 L62.1999949,103 C67.8794003,101.870444 73.2255333,99.8158975 78.074754,97 L39,97 L39,95 L81.2493857,95 C83.8589242,93.2215015 86.2981855,91.2116653 88.5376609,89 L39,89 L39,87 L43.5385253,87 C27.7389671,83.1940333 16,68.967908 16,52 C16,32.117749 32.117749,16 52,16 C70.1856127,16 85.2217929,29.4843233 87.6555706,47 Z M87.8767787,49 L103.914907,49 C103.971379,49.9928025 104,50.9930589 104,52 C104,53.0069411 103.971379,54.0071975 103.914907,55 L87.8767787,55 C87.958386,54.0107999 88,53.0102597 88,52 C88,50.9897403 87.958386,49.9892001 87.8767787,49 Z\"></path>\n        <path d=\"M76,128 C104.718807,128 128,104.718807 128,76 C128,47.281193 104.718807,24 76,24 C47.281193,24 24,47.281193 24,76 C24,104.718807 47.281193,128 76,128 L76,128 Z M76,112 C95.882251,112 112,95.882251 112,76 C112,56.117749 95.882251,40 76,40 C56.117749,40 40,56.117749 40,76 C40,95.882251 56.117749,112 76,112 L76,112 Z\"></path>\n        <path d=\"M37,58 L90,58 L90,62 L37,62 L37,58 L37,58 Z M40,50 L93,50 L93,54 L40,54 L40,50 L40,50 Z M40,42 L93,42 L93,46 L40,46 L40,42 L40,42 Z M32,66 L85,66 L85,70 L32,70 L32,66 L32,66 Z M30,74 L83,74 L83,78 L30,78 L30,74 L30,74 Z M27,82 L80,82 L80,86 L27,86 L27,82 L27,82 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/open-window": {
            "title": "$:/core/images/open-window",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-open-window tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M16,112 L104.993898,112 C108.863261,112 112,115.590712 112,120 C112,124.418278 108.858091,128 104.993898,128 L7.00610161,128 C3.13673853,128 0,124.409288 0,120 C0,119.998364 4.30952878e-07,119.996727 1.29273572e-06,119.995091 C4.89579306e-07,119.993456 0,119.99182 0,119.990183 L0,24.0098166 C0,19.586117 3.59071231,16 8,16 C12.418278,16 16,19.5838751 16,24.0098166 L16,112 Z\"></path>\n        <path d=\"M96,43.1959595 L96,56 C96,60.418278 99.581722,64 104,64 C108.418278,64 112,60.418278 112,56 L112,24 C112,19.5907123 108.415101,16 103.992903,16 L72.0070969,16 C67.5881712,16 64,19.581722 64,24 C64,28.4092877 67.5848994,32 72.0070969,32 L84.5685425,32 L48.2698369,68.2987056 C45.1421332,71.4264093 45.1434327,76.4904296 48.267627,79.614624 C51.3854642,82.7324612 56.4581306,82.7378289 59.5835454,79.6124141 L96,43.1959595 Z M32,7.9992458 C32,3.58138434 35.5881049,0 39.9992458,0 L120.000754,0 C124.418616,0 128,3.5881049 128,7.9992458 L128,88.0007542 C128,92.4186157 124.411895,96 120.000754,96 L39.9992458,96 C35.5813843,96 32,92.4118951 32,88.0007542 L32,7.9992458 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/options-button": {
            "title": "$:/core/images/options-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-options-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/paint": {
            "title": "$:/core/images/paint",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-paint tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M83.5265806,76.1907935 C90.430962,69.2864121 91.8921169,59.0000433 87.9100453,50.6642209 L125.812763,12.7615036 C128.732035,9.84223095 128.72611,5.10322984 125.812796,2.18991592 C122.893542,-0.729338085 118.161775,-0.730617045 115.241209,2.18994966 L77.3384914,40.092667 C69.002669,36.1105954 58.7163002,37.5717503 51.8119188,44.4761317 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 Z M80.8836921,78.8336819 L49.1690303,47.1190201 C49.1690303,47.1190201 8.50573364,81.242543 0,80.2820711 C0,80.2820711 3.78222974,85.8744423 6.82737483,88.320684 C20.8514801,82.630792 44.1526049,63.720771 44.1526049,63.720771 L44.8144806,64.3803375 C44.8144806,64.3803375 19.450356,90.2231043 9.18040433,92.0477601 C10.4017154,93.4877138 13.5343883,96.1014812 15.4269991,97.8235871 C20.8439164,96.3356979 50.1595367,69.253789 50.1595367,69.253789 L50.8214124,69.9133555 L18.4136144,100.936036 L23.6993903,106.221812 L56.1060358,75.2002881 L56.7679115,75.8598546 C56.7679115,75.8598546 28.9040131,106.396168 28.0841366,108.291555 C28.0841366,108.291555 34.1159238,115.144621 35.6529617,116.115796 C36.3545333,113.280171 63.5365402,82.6307925 63.5365402,82.6307925 L64.1984159,83.290359 C64.1984159,83.290359 43.6013016,107.04575 39.2343772,120.022559 C42.443736,123.571575 46.7339155,125.159692 50.1595362,126.321151 C47.9699978,114.504469 80.8836921,78.8336819 80.8836921,78.8336819 L80.8836921,78.8336819 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/palette": {
            "title": "$:/core/images/palette",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-palette tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.2470434,39.1821571 C75.0645698,38.2680897 69.6261555,37.7814854 64.0193999,37.7814854 C28.6624616,37.7814854 0,57.1324214 0,81.0030106 C0,90.644534 4.67604329,99.5487133 12.5805659,106.738252 C23.5031767,91.1899067 26.3405471,72.3946229 36.8885698,63.5622337 C52.0716764,50.8486559 63.4268694,55.7343343 63.4268694,55.7343343 L80.2470434,39.1821571 Z M106.781666,48.8370714 C119.830962,56.749628 128.0388,68.229191 128.0388,81.0030106 C128.0388,90.3534932 128.557501,98.4142085 116.165191,106.082518 C105.367708,112.763955 112.341384,99.546808 104.321443,95.1851533 C96.3015017,90.8234987 84.3749007,96.492742 86.1084305,103.091059 C89.3087234,115.272303 105.529892,114.54645 92.4224435,119.748569 C79.3149955,124.950687 74.2201582,124.224536 64.0193999,124.224536 C56.1979176,124.224536 48.7040365,123.277578 41.7755684,121.544216 C51.620343,117.347916 69.6563669,109.006202 75.129737,102.088562 C82.7876655,92.4099199 87.3713218,80.0000002 83.3235694,72.4837191 C83.1303943,72.1250117 94.5392656,60.81569 106.781666,48.8370714 Z M1.13430476,123.866563 C0.914084026,123.867944 0.693884185,123.868637 0.473712455,123.868637 C33.9526848,108.928928 22.6351223,59.642592 59.2924543,59.6425917 C59.6085574,61.0606542 59.9358353,62.5865065 60.3541977,64.1372318 C34.4465025,59.9707319 36.7873124,112.168427 1.13429588,123.866563 L1.13430476,123.866563 Z M1.84669213,123.859694 C40.7185279,123.354338 79.9985412,101.513051 79.9985401,79.0466836 C70.7284906,79.0466835 65.9257264,75.5670082 63.1833375,71.1051511 C46.585768,64.1019718 32.81846,116.819636 1.84665952,123.859695 L1.84669213,123.859694 Z M67.1980193,59.8524981 C62.748213,63.9666823 72.0838429,76.2846822 78.5155805,71.1700593 C89.8331416,59.8524993 112.468264,37.2173758 123.785825,25.8998146 C135.103386,14.5822535 123.785825,3.26469247 112.468264,14.5822535 C101.150703,25.8998144 78.9500931,48.9868127 67.1980193,59.8524981 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permalink-button": {
            "title": "$:/core/images/permalink-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permalink-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M80.4834582,48 L73.0956761,80 L73.0956761,80 L47.5165418,80 L54.9043239,48 L80.4834582,48 Z M84.1773493,32 L89.8007299,7.64246248 C90.7941633,3.33942958 95.0918297,0.64641956 99.3968675,1.64031585 C103.693145,2.63218977 106.385414,6.93288901 105.390651,11.2416793 L100.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L96.9043239,48 L89.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L85.8226507,96 L80.1992701,120.357538 C79.2058367,124.66057 74.9081703,127.35358 70.6031325,126.359684 C66.3068546,125.36781 63.6145865,121.067111 64.6093491,116.758321 L69.401785,96 L43.8226507,96 L38.1992701,120.357538 C37.2058367,124.66057 32.9081703,127.35358 28.6031325,126.359684 C24.3068546,125.36781 21.6145865,121.067111 22.6093491,116.758321 L27.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L31.0956761,80 L38.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L42.1773493,32 L47.8007299,7.64246248 C48.7941633,3.33942958 53.0918297,0.64641956 57.3968675,1.64031585 C61.6931454,2.63218977 64.3854135,6.93288901 63.3906509,11.2416793 L58.598215,32 L84.1773493,32 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/permaview-button": {
            "title": "$:/core/images/permaview-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-permaview-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M81.4834582,48 L79.6365127,56 L79.6365127,56 L74.0573784,56 L75.9043239,48 L81.4834582,48 Z M85.1773493,32 L90.8007299,7.64246248 C91.7941633,3.33942958 96.0918297,0.64641956 100.396867,1.64031585 C104.693145,2.63218977 107.385414,6.93288901 106.390651,11.2416793 L101.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L97.9043239,48 L96.0573784,56 L104.000754,56 C108.411895,56 112,59.581722 112,64 C112,68.4092877 108.418616,72 104.000754,72 L92.3634873,72 L90.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L86.8226507,96 L81.1992701,120.357538 C80.2058367,124.66057 75.9081703,127.35358 71.6031325,126.359684 C67.3068546,125.36781 64.6145865,121.067111 65.6093491,116.758321 L70.401785,96 L64.8226507,96 L59.1992701,120.357538 C58.2058367,124.66057 53.9081703,127.35358 49.6031325,126.359684 C45.3068546,125.36781 42.6145865,121.067111 43.6093491,116.758321 L48.401785,96 L42.8226507,96 L37.1992701,120.357538 C36.2058367,124.66057 31.9081703,127.35358 27.6031325,126.359684 C23.3068546,125.36781 20.6145865,121.067111 21.6093491,116.758321 L26.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L30.0956761,80 L31.9426216,72 L23.9992458,72 C19.5881049,72 16,68.418278 16,64 C16,59.5907123 19.5813843,56 23.9992458,56 L35.6365127,56 L37.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L41.1773493,32 L46.8007299,7.64246248 C47.7941633,3.33942958 52.0918297,0.64641956 56.3968675,1.64031585 C60.6931454,2.63218977 63.3854135,6.93288901 62.3906509,11.2416793 L57.598215,32 L63.1773493,32 L68.8007299,7.64246248 C69.7941633,3.33942958 74.0918297,0.64641956 78.3968675,1.64031585 C82.6931454,2.63218977 85.3854135,6.93288901 84.3906509,11.2416793 L79.598215,32 L85.1773493,32 Z M53.9043239,48 L52.0573784,56 L57.6365127,56 L59.4834582,48 L53.9043239,48 Z M75.9426216,72 L74.0956761,80 L74.0956761,80 L68.5165418,80 L70.3634873,72 L75.9426216,72 L75.9426216,72 Z M48.3634873,72 L46.5165418,80 L52.0956761,80 L53.9426216,72 L48.3634873,72 L48.3634873,72 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/picture": {
            "title": "$:/core/images/picture",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-picture tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112,68.2332211 L112,20.0027785 C112,17.7898769 110.207895,16 107.997221,16 L20.0027785,16 C17.7898769,16 16,17.792105 16,20.0027785 L16,58.312373 L25.2413115,43.7197989 C28.041793,39.297674 34.2643908,38.7118128 37.8410347,42.5335275 L56.0882845,63.1470817 L69.7748997,56.7400579 C72.766567,55.3552503 76.3013751,55.9473836 78.678437,58.2315339 C78.8106437,58.3585731 79.0742301,58.609836 79.4527088,58.9673596 C80.0910923,59.570398 80.8117772,60.2441563 81.598127,60.9705595 C83.8422198,63.043576 86.1541548,65.1151944 88.3956721,67.0372264 C89.1168795,67.6556396 89.8200801,68.2492007 90.5021258,68.8146755 C92.6097224,70.5620551 94.4693308,72.0029474 95.9836366,73.0515697 C96.7316295,73.5695379 97.3674038,73.9719282 98.0281481,74.3824999 C98.4724987,74.4989557 99.0742374,74.5263881 99.8365134,74.4317984 C101.709944,74.1993272 104.074502,73.2878514 106.559886,71.8846196 C107.705822,71.2376318 108.790494,70.5370325 109.764561,69.8410487 C110.323259,69.4418522 110.694168,69.1550757 110.834827,69.0391868 C111.210545,68.7296319 111.600264,68.4615815 112,68.2332211 L112,68.2332211 Z M0,8.00697327 C0,3.58484404 3.59075293,0 8.00697327,0 L119.993027,0 C124.415156,0 128,3.59075293 128,8.00697327 L128,119.993027 C128,124.415156 124.409247,128 119.993027,128 L8.00697327,128 C3.58484404,128 0,124.409247 0,119.993027 L0,8.00697327 L0,8.00697327 Z M95,42 C99.418278,42 103,38.418278 103,34 C103,29.581722 99.418278,26 95,26 C90.581722,26 87,29.581722 87,34 C87,38.418278 90.581722,42 95,42 L95,42 Z M32,76 C47.8587691,80.8294182 52.0345556,83.2438712 52.0345556,88 C52.0345556,92.7561288 32,95.4712486 32,102.347107 C32,109.222965 33.2849191,107.337637 33.2849191,112 L67.999999,112 C67.999999,112 54.3147136,105.375255 54.3147136,101.200691 C54.3147136,93.535181 64.9302432,92.860755 64.9302432,88 C64.9302432,80.6425555 50.8523779,79.167282 32,76 L32,76 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-language": {
            "title": "$:/core/images/plugin-generic-language",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M61.2072232,68.1369825 C56.8829239,70.9319564 54.2082892,74.793177 54.2082892,79.0581634 C54.2082892,86.9638335 63.3980995,93.4821994 75.2498076,94.3940006 C77.412197,98.2964184 83.8475284,101.178858 91.5684735,101.403106 C86.4420125,100.27851 82.4506393,97.6624107 80.9477167,94.3948272 C92.8046245,93.4861461 102,86.9662269 102,79.0581634 C102,70.5281905 91.3014611,63.6132813 78.1041446,63.6132813 C71.5054863,63.6132813 65.5315225,65.3420086 61.2072232,68.1369825 Z M74.001066,53.9793443 C69.6767667,56.7743182 63.7028029,58.5030456 57.1041446,58.5030456 C54.4851745,58.5030456 51.9646095,58.2307276 49.6065315,57.7275105 C46.2945155,59.9778212 41.2235699,61.4171743 35.5395922,61.4171743 C35.4545771,61.4171743 35.3696991,61.4168523 35.2849622,61.4162104 C39.404008,60.5235193 42.7961717,58.6691298 44.7630507,56.286533 C37.8379411,53.5817651 33.2082892,48.669413 33.2082892,43.0581634 C33.2082892,34.5281905 43.9068281,27.6132812 57.1041446,27.6132812 C70.3014611,27.6132812 81,34.5281905 81,43.0581634 C81,47.3231498 78.3253653,51.1843704 74.001066,53.9793443 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-plugin": {
            "title": "$:/core/images/plugin-generic-plugin",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M40.3972881,76.4456988 L40.3972881,95.3404069 L54.5170166,95.3404069 L54.5170166,95.3404069 C54.5165526,95.3385183 54.516089,95.3366295 54.515626,95.3347404 C54.6093153,95.3385061 54.7034848,95.3404069 54.7980982,95.3404069 C58.6157051,95.3404069 61.710487,92.245625 61.710487,88.4280181 C61.710487,86.6197822 61.01617,84.9737128 59.8795929,83.7418666 L59.8795929,83.7418666 C59.8949905,83.7341665 59.9104102,83.7265043 59.925852,83.7188798 C58.8840576,82.5086663 58.2542926,80.9336277 58.2542926,79.2114996 C58.2542926,75.3938927 61.3490745,72.2991108 65.1666814,72.2991108 C68.9842884,72.2991108 72.0790703,75.3938927 72.0790703,79.2114996 C72.0790703,81.1954221 71.2432806,82.9841354 69.9045961,84.2447446 L69.9045961,84.2447446 C69.9333407,84.2629251 69.9619885,84.281245 69.9905383,84.2997032 L69.9905383,84.2997032 C69.1314315,85.4516923 68.6228758,86.8804654 68.6228758,88.4280181 C68.6228758,91.8584969 71.1218232,94.7053153 74.3986526,95.2474079 C74.3913315,95.2784624 74.3838688,95.3094624 74.3762652,95.3404069 L95.6963988,95.3404069 L95.6963988,75.5678578 L95.6963988,75.5678578 C95.6466539,75.5808558 95.5967614,75.5934886 95.5467242,75.6057531 C95.5504899,75.5120637 95.5523907,75.4178943 95.5523907,75.3232809 C95.5523907,71.505674 92.4576088,68.4108921 88.6400019,68.4108921 C86.831766,68.4108921 85.1856966,69.105209 83.9538504,70.2417862 L83.9538504,70.2417862 C83.9461503,70.2263886 83.938488,70.2109688 83.9308636,70.1955271 C82.7206501,71.2373215 81.1456115,71.8670865 79.4234834,71.8670865 C75.6058765,71.8670865 72.5110946,68.7723046 72.5110946,64.9546976 C72.5110946,61.1370907 75.6058765,58.0423088 79.4234834,58.0423088 C81.4074059,58.0423088 83.1961192,58.8780985 84.4567284,60.2167829 L84.4567284,60.2167829 C84.4749089,60.1880383 84.4932288,60.1593906 84.511687,60.1308407 L84.511687,60.1308407 C85.6636761,60.9899475 87.0924492,61.4985032 88.6400019,61.4985032 C92.0704807,61.4985032 94.9172991,58.9995558 95.4593917,55.7227265 C95.538755,55.7414363 95.6177614,55.761071 95.6963988,55.7816184 L95.6963988,40.0412962 L74.3762652,40.0412962 L74.3762652,40.0412962 C74.3838688,40.0103516 74.3913315,39.9793517 74.3986526,39.9482971 L74.3986526,39.9482971 C71.1218232,39.4062046 68.6228758,36.5593862 68.6228758,33.1289073 C68.6228758,31.5813547 69.1314315,30.1525815 69.9905383,29.0005925 C69.9619885,28.9821342 69.9333407,28.9638143 69.9045961,28.9456339 C71.2432806,27.6850247 72.0790703,25.8963113 72.0790703,23.9123888 C72.0790703,20.0947819 68.9842884,17 65.1666814,17 C61.3490745,17 58.2542926,20.0947819 58.2542926,23.9123888 C58.2542926,25.6345169 58.8840576,27.2095556 59.925852,28.419769 L59.925852,28.419769 C59.9104102,28.4273935 59.8949905,28.4350558 59.8795929,28.4427558 C61.01617,29.674602 61.710487,31.3206715 61.710487,33.1289073 C61.710487,36.9465143 58.6157051,40.0412962 54.7980982,40.0412962 C54.7034848,40.0412962 54.6093153,40.0393953 54.515626,40.0356296 L54.515626,40.0356296 C54.516089,40.0375187 54.5165526,40.0394075 54.5170166,40.0412962 L40.3972881,40.0412962 L40.3972881,52.887664 L40.3972881,52.887664 C40.4916889,53.3430132 40.5412962,53.8147625 40.5412962,54.2980982 C40.5412962,58.1157051 37.4465143,61.210487 33.6289073,61.210487 C32.0813547,61.210487 30.6525815,60.7019313 29.5005925,59.8428245 C29.4821342,59.8713744 29.4638143,59.9000221 29.4456339,59.9287667 C28.1850247,58.5900823 26.3963113,57.7542926 24.4123888,57.7542926 C20.5947819,57.7542926 17.5,60.8490745 17.5,64.6666814 C17.5,68.4842884 20.5947819,71.5790703 24.4123888,71.5790703 C26.134517,71.5790703 27.7095556,70.9493053 28.919769,69.9075109 L28.919769,69.9075109 C28.9273935,69.9229526 28.9350558,69.9383724 28.9427558,69.95377 C30.174602,68.8171928 31.8206715,68.1228758 33.6289073,68.1228758 C37.4465143,68.1228758 40.5412962,71.2176578 40.5412962,75.0352647 C40.5412962,75.5186004 40.4916889,75.9903496 40.3972881,76.4456988 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/plugin-generic-theme": {
            "title": "$:/core/images/plugin-generic-theme",
            "tags": "$:/tags/Image",
            "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M29.4078519,91.4716406 L51.4693474,69.4101451 L51.4646675,69.4054652 C50.5969502,68.5377479 50.5929779,67.1348725 51.4693474,66.2585029 C52.3396494,65.3882009 53.7499654,65.3874786 54.6163097,66.2538229 L64.0805963,75.7181095 C64.9483136,76.5858268 64.9522859,77.9887022 64.0759163,78.8650718 C63.2056143,79.7353737 61.7952984,79.736096 60.9289541,78.8697517 L60.9242741,78.8650718 L60.9242741,78.8650718 L38.8627786,100.926567 C36.2518727,103.537473 32.0187578,103.537473 29.4078519,100.926567 C26.796946,98.3156614 26.796946,94.0825465 29.4078519,91.4716406 Z M60.8017407,66.3810363 C58.3659178,63.6765806 56.3370667,61.2899536 54.9851735,59.5123615 C48.1295381,50.4979488 44.671561,55.2444054 40.7586738,59.5123614 C36.8457866,63.7803174 41.789473,67.2384487 38.0759896,70.2532832 C34.3625062,73.2681177 34.5917646,74.3131575 28.3243876,68.7977024 C22.0570105,63.2822473 21.6235306,61.7636888 24.5005999,58.6166112 C27.3776691,55.4695337 29.7823103,60.4247912 35.6595047,54.8320442 C41.5366991,49.2392972 36.5996215,44.2825646 36.5996215,44.2825646 C36.5996215,44.2825646 48.8365511,19.267683 65.1880231,21.1152173 C81.5394952,22.9627517 59.0022276,18.7228947 53.3962199,38.3410355 C50.9960082,46.7405407 53.8429162,44.7613399 58.3941742,48.3090467 C59.7875202,49.3951602 64.4244828,52.7100463 70.1884353,56.9943417 L90.8648751,36.3179019 L92.4795866,31.5515482 L100.319802,26.8629752 L103.471444,30.0146174 L98.782871,37.8548326 L94.0165173,39.4695441 L73.7934912,59.6925702 C86.4558549,69.2403631 102.104532,81.8392557 102.104532,86.4016913 C102.104533,93.6189834 99.0337832,97.9277545 92.5695848,95.5655717 C87.8765989,93.8506351 73.8015497,80.3744087 63.8173444,69.668717 L60.9242741,72.5617873 L57.7726319,69.4101451 L60.8017407,66.3810363 L60.8017407,66.3810363 Z M63.9533761,1.42108547e-13 L118.512977,32 L118.512977,96 L63.9533761,128 L9.39377563,96 L9.39377563,32 L63.9533761,1.42108547e-13 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-closed": {
            "title": "$:/core/images/preview-closed",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-closed tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M0.0881363238,64 C-0.210292223,65.8846266 0.249135869,67.8634737 1.4664206,69.4579969 C16.2465319,88.8184886 39.1692554,100.414336 64,100.414336 C88.8307446,100.414336 111.753468,88.8184886 126.533579,69.4579969 C127.750864,67.8634737 128.210292,65.8846266 127.911864,64 C110.582357,78.4158332 88.3036732,87.0858436 64,87.0858436 C39.6963268,87.0858436 17.4176431,78.4158332 0.0881363238,64 Z\"></path>\n        <rect x=\"62\" y=\"96\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(80.000000, 101.000000) rotate(-5.000000) translate(-80.000000, -101.000000) \" x=\"78\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(48.000000, 101.000000) rotate(-355.000000) translate(-48.000000, -101.000000) \" x=\"46\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(32.000000, 96.000000) rotate(-350.000000) translate(-32.000000, -96.000000) \" x=\"30\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(96.000000, 96.000000) rotate(-10.000000) translate(-96.000000, -96.000000) \" x=\"94\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(112.000000, 88.000000) rotate(-20.000000) translate(-112.000000, -88.000000) \" x=\"110\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n        <rect transform=\"translate(16.000000, 88.000000) rotate(-340.000000) translate(-16.000000, -88.000000) \" x=\"14\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/preview-open": {
            "title": "$:/core/images/preview-open",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-preview-open tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64.1099282,99.5876785 C39.2791836,99.5876785 16.3564602,87.9918313 1.57634884,68.6313396 C-0.378878622,66.070184 -0.378878622,62.5174945 1.57634884,59.9563389 C16.3564602,40.5958472 39.2791836,29 64.1099282,29 C88.9406729,29 111.863396,40.5958472 126.643508,59.9563389 C128.598735,62.5174945 128.598735,66.070184 126.643508,68.6313396 C111.863396,87.9918313 88.9406729,99.5876785 64.1099282,99.5876785 Z M110.213805,67.5808331 C111.654168,66.0569335 111.654168,63.9430665 110.213805,62.4191669 C99.3257042,50.8995835 82.4391647,44 64.1470385,44 C45.8549124,44 28.9683729,50.8995835 18.0802717,62.4191669 C16.6399094,63.9430665 16.6399094,66.0569335 18.0802717,67.5808331 C28.9683729,79.1004165 45.8549124,86 64.1470385,86 C82.4391647,86 99.3257042,79.1004165 110.213805,67.5808331 Z\"></path>\n        <path d=\"M63.5,88 C76.4786916,88 87,77.4786916 87,64.5 C87,51.5213084 76.4786916,41 63.5,41 C50.5213084,41 40,51.5213084 40,64.5 C40,77.4786916 50.5213084,88 63.5,88 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/print-button": {
            "title": "$:/core/images/print-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M112,71 L112,30.5 L111.96811,30.5 L111.96811,30.5 C111.932942,28.4998414 111.151676,26.510538 109.625176,24.9840387 L86.9982489,2.35711116 C85.3482153,0.707077645 83.1589869,-0.071534047 81,0.0201838424 L81,0 L23.9992458,0 C19.5808867,0 16,3.58213437 16,8.00092105 L16,71 L24,71 L24,8 L81,8 L81,22.4996539 C81,26.9216269 84.5818769,30.5 89.0003461,30.5 L104,30.5 L104,71 L112,71 Z\"></path>\n        <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n        <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n        <path d=\"M0,80.0054195 C0,71.1658704 7.15611005,64 16.0008841,64 L111.999116,64 C120.83616,64 128,71.1553215 128,80.0054195 L128,111.99458 C128,120.83413 120.84389,128 111.999116,128 L16.0008841,128 C7.16383982,128 0,120.844679 0,111.99458 L0,80.0054195 Z M104,96 C108.418278,96 112,92.418278 112,88 C112,83.581722 108.418278,80 104,80 C99.581722,80 96,83.581722 96,88 C96,92.418278 99.581722,96 104,96 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/quote": {
            "title": "$:/core/images/quote",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-quote tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M51.2188077,117.712501 L51.2188077,62.1993386 L27.4274524,62.1993386 C27.4274524,53.3075754 29.1096526,45.797753 32.4741035,39.669646 C35.8385544,33.541539 42.0867267,28.9154883 51.2188077,25.7913554 L51.2188077,2 C43.7689521,2.96127169 36.8599155,5.18417913 30.4914905,8.668789 C24.1230656,12.1533989 18.6559149,16.5391352 14.0898743,21.8261295 C9.52383382,27.1131238 5.97919764,33.2411389 3.45585945,40.2103586 C0.932521268,47.1795784 -0.208971741,54.6293222 0.0313461819,62.5598136 L0.0313461819,117.712501 L51.2188077,117.712501 Z M128,117.712501 L128,62.1993386 L104.208645,62.1993386 C104.208645,53.3075754 105.890845,45.797753 109.255296,39.669646 C112.619747,33.541539 118.867919,28.9154883 128,25.7913554 L128,2 C120.550144,2.96127169 113.641108,5.18417913 107.272683,8.668789 C100.904258,12.1533989 95.4371072,16.5391352 90.8710666,21.8261295 C86.3050261,27.1131238 82.7603899,33.2411389 80.2370517,40.2103586 C77.7137136,47.1795784 76.5722206,54.6293222 76.8125385,62.5598136 L76.8125385,117.712501 L128,117.712501 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/refresh-button": {
            "title": "$:/core/images/refresh-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-refresh-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M106.369002,39.4325143 C116.529932,60.3119371 112.939592,86.1974934 95.5979797,103.539105 C73.7286194,125.408466 38.2713806,125.408466 16.4020203,103.539105 C-5.46734008,81.6697449 -5.46734008,46.2125061 16.4020203,24.3431458 C19.5262146,21.2189514 24.5915344,21.2189514 27.7157288,24.3431458 C30.8399231,27.4673401 30.8399231,32.5326599 27.7157288,35.6568542 C12.0947571,51.2778259 12.0947571,76.6044251 27.7157288,92.2253967 C43.3367004,107.846368 68.6632996,107.846368 84.2842712,92.2253967 C97.71993,78.7897379 99.5995262,58.1740623 89.9230597,42.729491 L83.4844861,54.9932839 C81.4307001,58.9052072 76.5945372,60.4115251 72.682614,58.3577391 C68.7706907,56.3039532 67.2643728,51.4677903 69.3181587,47.555867 L84.4354914,18.7613158 C86.4966389,14.8353707 91.3577499,13.3347805 95.273202,15.415792 L124.145886,30.7612457 C128.047354,32.8348248 129.52915,37.6785572 127.455571,41.5800249 C125.381992,45.4814927 120.53826,46.9632892 116.636792,44.8897102 L106.369002,39.4325143 Z M98.1470904,27.0648707 C97.9798954,26.8741582 97.811187,26.6843098 97.6409651,26.4953413 L98.6018187,26.1987327 L98.1470904,27.0648707 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/right-arrow": {
            "title": "$:/core/images/right-arrow",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-right-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M80.3563798,109.353315 C78.9238993,110.786918 76.9450203,111.675144 74.7592239,111.675144 L-4.40893546,111.675144 C-8.77412698,111.675144 -12.3248558,108.130732 -12.3248558,103.758478 C-12.3248558,99.3951199 -8.78077754,95.8418109 -4.40893546,95.8418109 L66.8418109,95.8418109 L66.8418109,24.5910645 C66.8418109,20.225873 70.3862233,16.6751442 74.7584775,16.6751442 C79.1218352,16.6751442 82.6751442,20.2192225 82.6751442,24.5910645 L82.6751442,103.759224 C82.6751442,105.941695 81.7891419,107.920575 80.3566508,109.353886 Z\" transform=\"translate(35.175144, 64.175144) rotate(-45.000000) translate(-35.175144, -64.175144) \"></path>\n</svg>"
        },
        "$:/core/images/save-button": {
            "title": "$:/core/images/save-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M120.78304,34.329058 C125.424287,43.1924006 128.049406,53.2778608 128.049406,63.9764502 C128.049406,99.3226742 99.3956295,127.97645 64.0494055,127.97645 C28.7031816,127.97645 0.0494055385,99.3226742 0.0494055385,63.9764502 C0.0494055385,28.6302262 28.7031816,-0.0235498012 64.0494055,-0.0235498012 C82.8568763,-0.0235498012 99.769563,8.08898558 111.479045,21.0056358 L114.159581,18.3250998 C117.289194,15.1954866 122.356036,15.1939641 125.480231,18.3181584 C128.598068,21.4359957 128.601317,26.5107804 125.473289,29.6388083 L120.78304,34.329058 Z M108.72451,46.3875877 C110.870571,51.8341374 112.049406,57.767628 112.049406,63.9764502 C112.049406,90.4861182 90.5590735,111.97645 64.0494055,111.97645 C37.5397375,111.97645 16.0494055,90.4861182 16.0494055,63.9764502 C16.0494055,37.4667822 37.5397375,15.9764502 64.0494055,15.9764502 C78.438886,15.9764502 91.3495036,22.308215 100.147097,32.3375836 L58.9411255,73.5435552 L41.975581,56.5780107 C38.8486152,53.4510448 33.7746915,53.4551552 30.6568542,56.5729924 C27.5326599,59.6971868 27.5372202,64.7670668 30.6618725,67.8917192 L53.279253,90.5090997 C54.8435723,92.073419 56.8951519,92.8541315 58.9380216,92.8558261 C60.987971,92.8559239 63.0389578,92.0731398 64.6049211,90.5071765 L108.72451,46.3875877 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/size": {
            "title": "$:/core/images/size",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-size tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <path d=\"M92.3431458,26 L83.1715729,35.1715729 C81.6094757,36.73367 81.6094757,39.26633 83.1715729,40.8284271 C84.73367,42.3905243 87.26633,42.3905243 88.8284271,40.8284271 L104.828427,24.8284271 C106.390524,23.26633 106.390524,20.73367 104.828427,19.1715729 L88.8284271,3.17157288 C87.26633,1.60947571 84.73367,1.60947571 83.1715729,3.17157288 C81.6094757,4.73367004 81.6094757,7.26632996 83.1715729,8.82842712 L92.3431457,18 L22,18 C19.790861,18 18,19.790861 18,22 L18,92.3431458 L8.82842712,83.1715729 C7.26632996,81.6094757 4.73367004,81.6094757 3.17157288,83.1715729 C1.60947571,84.73367 1.60947571,87.26633 3.17157288,88.8284271 L19.1715729,104.828427 C20.73367,106.390524 23.26633,106.390524 24.8284271,104.828427 L40.8284271,88.8284271 C42.3905243,87.26633 42.3905243,84.73367 40.8284271,83.1715729 C39.26633,81.6094757 36.73367,81.6094757 35.1715729,83.1715729 L26,92.3431458 L26,22 L22,26 L92.3431458,26 L92.3431458,26 Z M112,52 L112,116 L116,112 L52,112 C49.790861,112 48,113.790861 48,116 C48,118.209139 49.790861,120 52,120 L116,120 C118.209139,120 120,118.209139 120,116 L120,52 C120,49.790861 118.209139,48 116,48 C113.790861,48 112,49.790861 112,52 L112,52 Z\"></path>\n</svg>"
        },
        "$:/core/images/spiral": {
            "title": "$:/core/images/spiral",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-spiral tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074.14-2.64-1.89-4.89-4.52-5.03-2.64-.14-4.89 1.88-5.03 4.52-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01-.02-.015-.054-.045-.094-.088-.06-.064-.12-.145-.17-.244-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/stamp": {
            "title": "$:/core/images/stamp",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-stamp tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M49.7334301,64 L16.0098166,64 C11.5838751,64 8,67.5829053 8,72.002643 L8,74.4986785 L8,97 L120,97 L120,74.4986785 L120,72.002643 C120,67.5737547 116.413883,64 111.990183,64 L78.2665699,64 C76.502049,60.7519149 75.5,57.0311962 75.5,53.0769231 C75.5,46.6017951 78.1869052,40.7529228 82.5087769,36.5800577 C85.3313113,32.7688808 87,28.0549983 87,22.952183 C87,10.2760423 76.7025492,0 64,0 C51.2974508,0 41,10.2760423 41,22.952183 C41,28.0549983 42.6686887,32.7688808 45.4912231,36.5800577 C49.8130948,40.7529228 52.5,46.6017951 52.5,53.0769231 C52.5,57.0311962 51.497951,60.7519149 49.7334301,64 Z M8,104 L120,104 L120,112 L8,112 L8,104 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/star-filled": {
            "title": "$:/core/images/star-filled",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-star-filled tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"nonzero\">\n        <path d=\"M61.8361286,96.8228569 L99.1627704,124.110219 C101.883827,126.099427 105.541968,123.420868 104.505636,120.198072 L90.2895569,75.9887263 L89.0292911,79.8977279 L126.314504,52.5528988 C129.032541,50.5595011 127.635256,46.2255025 124.273711,46.2229134 L78.1610486,46.1873965 L81.4604673,48.6032923 L67.1773543,4.41589688 C66.1361365,1.19470104 61.6144265,1.19470104 60.5732087,4.41589688 L46.2900957,48.6032923 L49.5895144,46.1873965 L3.47685231,46.2229134 C0.115307373,46.2255025 -1.28197785,50.5595011 1.43605908,52.5528988 L38.7212719,79.8977279 L37.4610061,75.9887263 L23.2449266,120.198072 C22.2085954,123.420868 25.8667356,126.099427 28.5877926,124.110219 L65.9144344,96.8228569 L61.8361286,96.8228569 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-classic": {
            "title": "$:/core/images/storyview-classic",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-classic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-pop": {
            "title": "$:/core/images/storyview-pop",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-pop tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M16.0098166,56 C11.586117,56 8,59.5776607 8,63.9924054 L8,80.0075946 C8,84.4216782 11.5838751,88 16.0098166,88 L111.990183,88 C116.413883,88 120,84.4223393 120,80.0075946 L120,63.9924054 C120,59.5783218 116.416125,56 111.990183,56 L16.0098166,56 L16.0098166,56 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/storyview-zoomin": {
            "title": "$:/core/images/storyview-zoomin",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-storyview-zoomin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.578055 16,24.0085154 L16,71.9914846 C16,76.4144655 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.421945 112,71.9914846 L112,24.0085154 C112,19.5855345 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/strikethrough": {
            "title": "$:/core/images/strikethrough",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M92.793842,38.7255689 L108.215529,38.7255689 C107.987058,31.985687 106.70193,26.1883331 104.360107,21.3333333 C102.018284,16.4783336 98.8197436,12.4516001 94.7643909,9.25301205 C90.7090382,6.05442399 85.9969032,3.71263572 80.6278447,2.22757697 C75.2587862,0.742518233 69.4328739,0 63.1499331,0 C57.552404,0 52.0977508,0.713959839 46.7858099,2.14190094 C41.473869,3.56984203 36.7331757,5.74027995 32.5635877,8.65327979 C28.3939997,11.5662796 25.0526676,15.2788708 22.5394913,19.7911647 C20.026315,24.3034585 18.7697456,29.6438781 18.7697456,35.8125837 C18.7697456,41.4101128 19.883523,46.0651309 22.1111111,49.7777778 C24.3386992,53.4904246 27.3087722,56.5176144 31.021419,58.8594378 C34.7340659,61.2012612 38.9321497,63.0861151 43.6157965,64.5140562 C48.2994433,65.9419973 53.068695,67.1985666 57.9236948,68.2838019 C62.7786945,69.3690371 67.5479462,70.4256977 72.231593,71.4538153 C76.9152398,72.4819329 81.1133237,73.8241773 84.8259705,75.480589 C88.5386174,77.1370007 91.5086903,79.2788802 93.7362784,81.9062918 C95.9638666,84.5337035 97.0776439,87.9607107 97.0776439,92.1874163 C97.0776439,96.6425926 96.1637753,100.298067 94.3360107,103.153949 C92.5082461,106.009831 90.109341,108.265944 87.1392236,109.922356 C84.1691061,111.578768 80.827774,112.749662 77.1151272,113.435074 C73.4024803,114.120485 69.7184476,114.463186 66.0629183,114.463186 C61.4935068,114.463186 57.0383974,113.892018 52.6974565,112.749665 C48.3565156,111.607312 44.5582492,109.836692 41.3025435,107.437751 C38.0468378,105.03881 35.4194656,101.983062 33.4203481,98.270415 C31.4212305,94.5577681 30.4216867,90.1312171 30.4216867,84.9906292 L15,84.9906292 C15,92.4159229 16.3422445,98.8415614 19.0267738,104.267738 C21.711303,109.693914 25.3667774,114.149023 29.9933066,117.633199 C34.6198357,121.117376 39.9888137,123.71619 46.1004016,125.429719 C52.2119895,127.143248 58.6947448,128 65.5488621,128 C71.1463912,128 76.7723948,127.343157 82.4270415,126.029451 C88.0816882,124.715745 93.1936407,122.602424 97.7630522,119.689424 C102.332464,116.776425 106.073613,113.006717 108.986613,108.380187 C111.899613,103.753658 113.356091,98.1847715 113.356091,91.6733601 C113.356091,85.6188899 112.242314,80.5926126 110.014726,76.5943775 C107.787137,72.5961424 104.817065,69.2833688 101.104418,66.6559572 C97.3917708,64.0285455 93.193687,61.9437828 88.5100402,60.4016064 C83.8263934,58.85943 79.0571416,57.5171855 74.2021419,56.3748327 C69.3471422,55.2324798 64.5778904,54.1758192 59.8942436,53.2048193 C55.2105968,52.2338193 51.012513,51.0058084 47.2998661,49.5207497 C43.5872193,48.0356909 40.6171463,46.1222786 38.3895582,43.7804552 C36.1619701,41.4386318 35.0481928,38.3828836 35.0481928,34.6131191 C35.0481928,30.6148841 35.8192694,27.273552 37.3614458,24.5890228 C38.9036222,21.9044935 40.9598265,19.762614 43.5301205,18.1633199 C46.1004145,16.5640259 49.041929,15.4216902 52.3547523,14.7362784 C55.6675757,14.0508667 59.0374661,13.708166 62.4645248,13.708166 C70.9179361,13.708166 77.8576257,15.6786952 83.2838019,19.6198126 C88.709978,23.56093 91.8799597,29.9294518 92.793842,38.7255689 L92.793842,38.7255689 Z\"></path>\n        <rect x=\"5\" y=\"54\" width=\"118\" height=\"16\"></rect>\n    </g>\n</svg>"
        },
        "$:/core/images/subscript": {
            "title": "$:/core/images/subscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-subscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,128.411516 L85.3276227,128.411516 C85.3870139,123.24448 86.6342108,118.730815 89.0692508,114.870386 C91.5042907,111.009956 94.8301491,107.654403 99.0469256,104.803624 C101.066227,103.318844 103.174584,101.878629 105.372059,100.482935 C107.569534,99.0872413 109.588805,97.5876355 111.429933,95.9840726 C113.271061,94.3805097 114.785514,92.6433426 115.973338,90.7725192 C117.161163,88.9016958 117.784761,86.7487964 117.844152,84.3137564 C117.844152,83.1853233 117.710524,81.9826691 117.443264,80.7057579 C117.176003,79.4288467 116.656338,78.2410402 115.884252,77.1423026 C115.112166,76.0435651 114.04314,75.123015 112.677142,74.3806248 C111.311144,73.6382345 109.529434,73.267045 107.331959,73.267045 C105.312658,73.267045 103.634881,73.6679297 102.298579,74.4697112 C100.962276,75.2714926 99.8932503,76.3702137 99.0914688,77.7659073 C98.2896874,79.161601 97.6957841,80.8096826 97.3097412,82.7102016 C96.9236982,84.6107206 96.7009845,86.6596869 96.6415933,88.857162 L86.4857457,88.857162 C86.4857457,85.4124713 86.9460207,82.2202411 87.8665846,79.2803758 C88.7871485,76.3405105 90.1679736,73.801574 92.0091014,71.6634901 C93.8502292,69.5254062 96.092214,67.8476295 98.7351233,66.6301095 C101.378033,65.4125895 104.451482,64.8038386 107.955564,64.8038386 C111.756602,64.8038386 114.933984,65.4274371 117.487807,66.6746527 C120.041629,67.9218683 122.105443,69.4957119 123.67931,71.3962309 C125.253178,73.2967499 126.366746,75.3605638 127.02005,77.5877345 C127.673353,79.8149053 128,81.9381095 128,83.9574109 C128,86.4518421 127.613963,88.7086746 126.841877,90.727976 C126.069791,92.7472774 125.03046,94.6032252 123.723854,96.2958749 C122.417247,97.9885247 120.932489,99.5475208 119.269534,100.97291 C117.60658,102.398299 115.884261,103.734582 114.102524,104.981797 C112.320788,106.229013 110.539078,107.416819 108.757341,108.545253 C106.975605,109.673686 105.327523,110.802102 103.813047,111.930535 C102.298571,113.058968 100.977136,114.231927 99.8487031,115.449447 C98.7202699,116.666967 97.9481956,117.958707 97.5324571,119.324705 L127.910914,119.324705 L127.910914,128.411516 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/superscript": {
            "title": "$:/core/images/superscript",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-superscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,63.4115159 L85.3276227,63.4115159 C85.3870139,58.2444799 86.6342108,53.7308149 89.0692508,49.8703857 C91.5042907,46.0099565 94.8301491,42.654403 99.0469256,39.8036245 C101.066227,38.318844 103.174584,36.8786285 105.372059,35.4829349 C107.569534,34.0872413 109.588805,32.5876355 111.429933,30.9840726 C113.271061,29.3805097 114.785514,27.6433426 115.973338,25.7725192 C117.161163,23.9016958 117.784761,21.7487964 117.844152,19.3137564 C117.844152,18.1853233 117.710524,16.9826691 117.443264,15.7057579 C117.176003,14.4288467 116.656338,13.2410402 115.884252,12.1423026 C115.112166,11.0435651 114.04314,10.123015 112.677142,9.38062477 C111.311144,8.63823453 109.529434,8.26704499 107.331959,8.26704499 C105.312658,8.26704499 103.634881,8.6679297 102.298579,9.46971115 C100.962276,10.2714926 99.8932503,11.3702137 99.0914688,12.7659073 C98.2896874,14.161601 97.6957841,15.8096826 97.3097412,17.7102016 C96.9236982,19.6107206 96.7009845,21.6596869 96.6415933,23.857162 L86.4857457,23.857162 C86.4857457,20.4124713 86.9460207,17.2202411 87.8665846,14.2803758 C88.7871485,11.3405105 90.1679736,8.80157397 92.0091014,6.6634901 C93.8502292,4.52540622 96.092214,2.84762946 98.7351233,1.63010947 C101.378033,0.412589489 104.451482,-0.196161372 107.955564,-0.196161372 C111.756602,-0.196161372 114.933984,0.427437071 117.487807,1.67465266 C120.041629,2.92186826 122.105443,4.49571195 123.67931,6.39623095 C125.253178,8.29674995 126.366746,10.3605638 127.02005,12.5877345 C127.673353,14.8149053 128,16.9381095 128,18.9574109 C128,21.4518421 127.613963,23.7086746 126.841877,25.727976 C126.069791,27.7472774 125.03046,29.6032252 123.723854,31.2958749 C122.417247,32.9885247 120.932489,34.5475208 119.269534,35.97291 C117.60658,37.3982993 115.884261,38.7345816 114.102524,39.9817972 C112.320788,41.2290128 110.539078,42.4168194 108.757341,43.5452525 C106.975605,44.6736857 105.327523,45.8021019 103.813047,46.9305351 C102.298571,48.0589682 100.977136,49.2319272 99.8487031,50.4494472 C98.7202699,51.6669672 97.9481956,52.9587068 97.5324571,54.3247048 L127.910914,54.3247048 L127.910914,63.4115159 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/tag-button": {
            "title": "$:/core/images/tag-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tag-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M18.1643182,47.6600756 L18.1677196,51.7651887 C18.1708869,55.5878829 20.3581578,60.8623899 23.0531352,63.5573673 L84.9021823,125.406414 C87.5996731,128.103905 91.971139,128.096834 94.6717387,125.396234 L125.766905,94.3010679 C128.473612,91.5943612 128.472063,87.2264889 125.777085,84.5315115 L63.9280381,22.6824644 C61.2305472,19.9849735 55.9517395,17.801995 52.1318769,17.8010313 L25.0560441,17.7942007 C21.2311475,17.7932358 18.1421354,20.8872832 18.1452985,24.7049463 L18.1535504,34.6641936 C18.2481119,34.6754562 18.3439134,34.6864294 18.4409623,34.6971263 C22.1702157,35.1081705 26.9295004,34.6530132 31.806204,33.5444844 C32.1342781,33.0700515 32.5094815,32.6184036 32.9318197,32.1960654 C35.6385117,29.4893734 39.5490441,28.718649 42.94592,29.8824694 C43.0432142,29.8394357 43.1402334,29.7961748 43.2369683,29.7526887 L43.3646982,30.0368244 C44.566601,30.5115916 45.6933052,31.2351533 46.6655958,32.2074439 C50.4612154,36.0030635 50.4663097,42.1518845 46.6769742,45.94122 C43.0594074,49.5587868 37.2914155,49.7181264 33.4734256,46.422636 C28.1082519,47.5454734 22.7987486,48.0186448 18.1643182,47.6600756 Z\"></path>\n        <path d=\"M47.6333528,39.5324628 L47.6562932,39.5834939 C37.9670934,43.9391617 26.0718874,46.3819521 17.260095,45.4107025 C5.27267473,44.0894301 -1.02778744,36.4307276 2.44271359,24.0779512 C5.56175386,12.9761516 14.3014034,4.36129832 24.0466405,1.54817001 C34.7269254,-1.53487574 43.7955833,3.51606438 43.7955834,14.7730751 L35.1728168,14.7730752 C35.1728167,9.91428944 32.0946059,8.19982862 26.4381034,9.83267419 C19.5270911,11.8276553 13.046247,18.2159574 10.7440788,26.4102121 C8.82861123,33.2280582 11.161186,36.0634845 18.2047888,36.8398415 C25.3302805,37.6252244 35.7353482,35.4884477 44.1208333,31.7188498 L44.1475077,31.7781871 C44.159701,31.7725635 44.1718402,31.7671479 44.1839238,31.7619434 C45.9448098,31.0035157 50.4503245,38.3109156 47.7081571,39.5012767 C47.6834429,39.512005 47.6585061,39.5223987 47.6333528,39.5324628 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/theme-button": {
            "title": "$:/core/images/theme-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-theme-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M55.854113,66.9453198 C54.3299482,65.1432292 53.0133883,63.518995 51.9542746,62.1263761 C40.8899947,47.578055 35.3091807,55.2383404 28.9941893,62.1263758 C22.6791979,69.0144112 30.6577916,74.5954741 24.6646171,79.4611023 C18.6714426,84.3267304 19.0414417,86.0133155 8.92654943,77.1119468 C-1.18834284,68.2105781 -1.88793412,65.7597832 2.7553553,60.6807286 C7.39864472,55.601674 11.2794845,63.5989423 20.7646627,54.5728325 C30.2498409,45.5467226 22.2819131,37.5470737 22.2819131,37.5470737 C22.2819131,37.5470737 42.0310399,-2.82433362 68.4206088,0.157393922 C94.8101776,3.13912147 58.4373806,-3.70356506 49.3898693,27.958066 C45.5161782,41.5139906 50.1107906,38.3197672 57.4560458,44.0453955 C59.1625767,45.3756367 63.8839488,48.777453 70.127165,53.3625321 C63.9980513,59.2416709 58.9704753,64.0315459 55.854113,66.9453198 Z M67.4952439,79.8919946 C83.5082212,96.9282402 105.237121,117.617674 112.611591,120.312493 C123.044132,124.12481 128.000001,117.170903 128,105.522947 C127.999999,98.3705516 104.170675,78.980486 84.0760493,63.7529565 C76.6683337,70.9090328 70.7000957,76.7055226 67.4952439,79.8919946 Z\"></path>\n        <path d=\"M58.2852966,138.232794 L58.2852966,88.3943645 C56.318874,88.3923153 54.7254089,86.7952906 54.7254089,84.8344788 C54.7254089,82.8684071 56.3175932,81.2745911 58.2890859,81.2745911 L79.6408336,81.2745911 C81.608998,81.2745911 83.2045105,82.8724076 83.2045105,84.8344788 C83.2045105,86.7992907 81.614366,88.3923238 79.6446228,88.3943645 L79.6446228,88.3943646 L79.6446228,138.232794 C79.6446228,144.131009 74.8631748,148.912457 68.9649597,148.912457 C63.0667446,148.912457 58.2852966,144.131009 58.2852966,138.232794 Z M65.405072,-14.8423767 L72.5248474,-14.8423767 L76.0847351,-0.690681892 L72.5248474,6.51694947 L72.5248474,81.2745911 L65.405072,81.2745911 L65.405072,6.51694947 L61.8451843,-0.690681892 L65.405072,-14.8423767 Z\" transform=\"translate(68.964960, 67.035040) rotate(45.000000) translate(-68.964960, -67.035040) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/timestamp-off": {
            "title": "$:/core/images/timestamp-off",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-timestamp-off tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/>\n    </g>\n</svg>\n"
        },
        "$:/core/images/timestamp-on": {
            "title": "$:/core/images/timestamp-on",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-timestamp-on tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178c-2.116 1.775-5.27 1.498-7.045-.613-1.772-2.11-1.498-5.27.616-7.047l9.95-8.348c2.115-1.774 5.27-1.5 7.045.618 1.775 2.108 1.498 5.27-.616 7.043l-9.95 8.348zM102.983 27.178c2.116 1.775 5.27 1.498 7.045-.613 1.772-2.11 1.498-5.27-.616-7.047l-9.95-8.348c-2.114-1.774-5.27-1.5-7.044.618-1.775 2.108-1.498 5.27.616 7.043l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/>\n    </g>\n</svg>\n"
        },
        "$:/core/images/tip": {
            "title": "$:/core/images/tip",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-tip tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,128.241818 C99.346224,128.241818 128,99.5880417 128,64.2418177 C128,28.8955937 99.346224,0.241817675 64,0.241817675 C28.653776,0.241817675 0,28.8955937 0,64.2418177 C0,99.5880417 28.653776,128.241818 64,128.241818 Z M75.9358659,91.4531941 C75.3115438,95.581915 70.2059206,98.8016748 64,98.8016748 C57.7940794,98.8016748 52.6884562,95.581915 52.0641341,91.4531941 C54.3299053,94.0502127 58.8248941,95.8192805 64,95.8192805 C69.1751059,95.8192805 73.6700947,94.0502127 75.9358659,91.4531941 L75.9358659,91.4531941 Z M75.9358659,95.9453413 C75.3115438,100.074062 70.2059206,103.293822 64,103.293822 C57.7940794,103.293822 52.6884562,100.074062 52.0641341,95.9453413 C54.3299053,98.5423599 58.8248941,100.311428 64,100.311428 C69.1751059,100.311428 73.6700947,98.5423599 75.9358659,95.9453413 L75.9358659,95.9453413 Z M75.9358659,100.40119 C75.3115438,104.529911 70.2059206,107.74967 64,107.74967 C57.7940794,107.74967 52.6884562,104.529911 52.0641341,100.40119 C54.3299053,102.998208 58.8248941,104.767276 64,104.767276 C69.1751059,104.767276 73.6700947,102.998208 75.9358659,100.40119 L75.9358659,100.40119 Z M75.9358659,104.893337 C75.3115438,109.022058 70.2059206,112.241818 64,112.241818 C57.7940794,112.241818 52.6884562,109.022058 52.0641341,104.893337 C54.3299053,107.490356 58.8248941,109.259423 64,109.259423 C69.1751059,109.259423 73.6700947,107.490356 75.9358659,104.893337 L75.9358659,104.893337 Z M64.3010456,24.2418177 C75.9193117,24.2418188 88.0000013,32.0619847 88,48.4419659 C87.9999987,64.8219472 75.9193018,71.7540963 75.9193021,83.5755932 C75.9193022,89.4486648 70.0521957,92.8368862 63.9999994,92.8368862 C57.947803,92.8368862 51.9731007,89.8295115 51.9731007,83.5755932 C51.9731007,71.1469799 39.9999998,65.4700602 40,48.4419647 C40.0000002,31.4138691 52.6827796,24.2418166 64.3010456,24.2418177 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/twitter": {
            "title": "$:/core/images/twitter",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-twitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M41.6263422,115.803477 C27.0279663,115.803477 13.4398394,111.540813 1.99987456,104.234833 C4.02221627,104.472643 6.08004574,104.594302 8.16644978,104.594302 C20.277456,104.594302 31.4238403,100.47763 40.270894,93.5715185 C28.9590538,93.3635501 19.4123842,85.9189246 16.1230832,75.6885328 C17.7011365,75.9892376 19.320669,76.1503787 20.9862896,76.1503787 C23.344152,76.1503787 25.6278127,75.8359011 27.7971751,75.247346 C15.9709927,72.8821073 7.06079851,62.4745062 7.06079851,49.9982394 C7.06079851,49.8898938 7.06079851,49.7820074 7.06264203,49.67458 C10.5482779,51.6032228 14.5339687,52.7615103 18.7717609,52.8951059 C11.8355159,48.277565 7.2714207,40.3958845 7.2714207,31.4624258 C7.2714207,26.7434257 8.54621495,22.3200804 10.7713439,18.5169676 C23.5211299,34.0957738 42.568842,44.3472839 64.0532269,45.4210985 C63.6126256,43.5365285 63.3835682,41.5711584 63.3835682,39.5529928 C63.3835682,25.3326379 74.95811,13.8034766 89.2347917,13.8034766 C96.6697089,13.8034766 103.387958,16.930807 108.103682,21.9353619 C113.991886,20.780288 119.52429,18.6372496 124.518847,15.6866694 C122.588682,21.6993889 118.490075,26.7457211 113.152623,29.9327334 C118.381769,29.3102055 123.363882,27.926045 127.999875,25.8780385 C124.534056,31.0418981 120.151087,35.5772616 115.100763,39.2077561 C115.150538,40.3118708 115.175426,41.4224128 115.175426,42.538923 C115.175426,76.5663154 89.1744164,115.803477 41.6263422,115.803477\"></path>\n    </g>\n</svg>\n"
        },
        "$:/core/images/underline": {
            "title": "$:/core/images/underline",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-underline tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M7,117.421488 L121.247934,117.421488 L121.247934,128 L7,128 L7,117.421488 Z M104.871212,98.8958333 L104.871212,0 L88.6117424,0 L88.6117424,55.8560606 C88.6117424,60.3194668 88.0060035,64.432115 86.7945076,68.1941288 C85.5830116,71.9561425 83.7657949,75.239885 81.342803,78.0454545 C78.9198111,80.8510241 75.8911167,83.0189317 72.2566288,84.5492424 C68.6221409,86.0795531 64.3182067,86.844697 59.344697,86.844697 C53.0959284,86.844697 48.1862552,85.0593613 44.6155303,81.4886364 C41.0448054,77.9179114 39.2594697,73.0720003 39.2594697,66.9507576 L39.2594697,0 L23,0 L23,65.0378788 C23,70.3939662 23.5419769,75.2717583 24.625947,79.6714015 C25.709917,84.0710447 27.5908957,87.864883 30.2689394,91.0530303 C32.9469831,94.2411776 36.4538925,96.6960141 40.7897727,98.4176136 C45.125653,100.139213 50.545422,101 57.0492424,101 C64.3182182,101 70.630655,99.5653553 75.9867424,96.6960227 C81.3428298,93.8266902 85.742407,89.33147 89.1856061,83.2102273 L89.5681818,83.2102273 L89.5681818,98.8958333 L104.871212,98.8958333 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-all-button": {
            "title": "$:/core/images/unfold-all-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,8.34884273 C84.1490432,6.89863875 82.1463102,6 79.9340286,6 L47.9482224,6 C43.5292967,6 39.9411255,9.581722 39.9411255,14 C39.9411255,18.4092877 43.5260249,22 47.9482224,22 L71.9411255,22 L71.9411255,45.9929031 C71.9411255,50.4118288 75.5228475,54 79.9411255,54 C84.3504132,54 87.9411255,50.4151006 87.9411255,45.9929031 L87.9411255,14.0070969 C87.9411255,11.7964515 87.0447363,9.79371715 85.5956548,8.34412458 Z\" transform=\"translate(63.941125, 30.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -30.000000) \"></path>\n        <path d=\"M85.6571005,72.2899682 C84.2079177,70.8397642 82.2051847,69.9411255 79.9929031,69.9411255 L48.0070969,69.9411255 C43.5881712,69.9411255 40,73.5228475 40,77.9411255 C40,82.3504132 43.5848994,85.9411255 48.0070969,85.9411255 L72,85.9411255 L72,109.934029 C72,114.352954 75.581722,117.941125 80,117.941125 C84.4092877,117.941125 88,114.356226 88,109.934029 L88,77.9482224 C88,75.737577 87.1036108,73.7348426 85.6545293,72.2852501 Z\" transform=\"translate(64.000000, 93.941125) scale(1, -1) rotate(-45.000000) translate(-64.000000, -93.941125) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unfold-button": {
            "title": "$:/core/images/unfold-button",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unfold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n        <path d=\"M85.598226,11.3488427 C84.1490432,9.89863875 82.1463102,9 79.9340286,9 L47.9482224,9 C43.5292967,9 39.9411255,12.581722 39.9411255,17 C39.9411255,21.4092877 43.5260249,25 47.9482224,25 L71.9411255,25 L71.9411255,48.9929031 C71.9411255,53.4118288 75.5228475,57 79.9411255,57 C84.3504132,57 87.9411255,53.4151006 87.9411255,48.9929031 L87.9411255,17.0070969 C87.9411255,14.7964515 87.0447363,12.7937171 85.5956548,11.3441246 Z\" transform=\"translate(63.941125, 33.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -33.000000) \"></path>\n        <path d=\"M85.6571005,53.4077172 C84.2079177,51.9575133 82.2051847,51.0588745 79.9929031,51.0588745 L48.0070969,51.0588745 C43.5881712,51.0588745 40,54.6405965 40,59.0588745 C40,63.4681622 43.5848994,67.0588745 48.0070969,67.0588745 L72,67.0588745 L72,91.0517776 C72,95.4707033 75.581722,99.0588745 80,99.0588745 C84.4092877,99.0588745 88,95.4739751 88,91.0517776 L88,59.0659714 C88,56.855326 87.1036108,54.8525917 85.6545293,53.4029991 Z\" transform=\"translate(64.000000, 75.058875) scale(1, -1) rotate(-45.000000) translate(-64.000000, -75.058875) \"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/unlocked-padlock": {
            "title": "$:/core/images/unlocked-padlock",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-unlocked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M48.6266053,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L30.136303,64 C19.6806213,51.3490406 2.77158986,28.2115132 25.8366966,8.85759246 C50.4723026,-11.8141335 71.6711028,13.2108337 81.613302,25.0594855 C91.5555012,36.9081373 78.9368488,47.4964439 69.1559674,34.9513593 C59.375086,22.4062748 47.9893192,10.8049522 35.9485154,20.9083862 C23.9077117,31.0118202 34.192312,43.2685325 44.7624679,55.8655518 C47.229397,58.805523 48.403443,61.5979188 48.6266053,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/up-arrow": {
            "created": "20150316000544368",
            "modified": "20150316000831867",
            "tags": "$:/tags/Image",
            "title": "$:/core/images/up-arrow",
            "text": "<svg class=\"tc-image-up-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n<path transform=\"rotate(-135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25074c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056l0.00001,-0.00001z\" />\n</svg>\n \n"
        },
        "$:/core/images/video": {
            "title": "$:/core/images/video",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-video tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M64,12 C29.0909091,12 8.72727273,14.9166667 5.81818182,17.8333333 C2.90909091,20.75 1.93784382e-15,41.1666667 0,64.5 C1.93784382e-15,87.8333333 2.90909091,108.25 5.81818182,111.166667 C8.72727273,114.083333 29.0909091,117 64,117 C98.9090909,117 119.272727,114.083333 122.181818,111.166667 C125.090909,108.25 128,87.8333333 128,64.5 C128,41.1666667 125.090909,20.75 122.181818,17.8333333 C119.272727,14.9166667 98.9090909,12 64,12 Z M54.9161194,44.6182253 C51.102648,42.0759111 48.0112186,43.7391738 48.0112186,48.3159447 L48.0112186,79.6840553 C48.0112186,84.2685636 51.109784,85.9193316 54.9161194,83.3817747 L77.0838806,68.6032672 C80.897352,66.0609529 80.890216,61.9342897 77.0838806,59.3967328 L54.9161194,44.6182253 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/core/images/warning": {
            "title": "$:/core/images/warning",
            "tags": "$:/tags/Image",
            "text": "<svg class=\"tc-image-warning tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n    <g fill-rule=\"evenodd\">\n        <path d=\"M57.0717968,11 C60.1509982,5.66666667 67.8490018,5.66666667 70.9282032,11 L126.353829,107 C129.433031,112.333333 125.584029,119 119.425626,119 L8.57437416,119 C2.41597129,119 -1.43303051,112.333333 1.64617093,107 L57.0717968,11 Z M64,37 C59.581722,37 56,40.5820489 56,44.9935776 L56,73.0064224 C56,77.4211534 59.5907123,81 64,81 C68.418278,81 72,77.4179511 72,73.0064224 L72,44.9935776 C72,40.5788466 68.4092877,37 64,37 Z M64,104 C68.418278,104 72,100.418278 72,96 C72,91.581722 68.418278,88 64,88 C59.581722,88 56,91.581722 56,96 C56,100.418278 59.581722,104 64,104 Z\"></path>\n    </g>\n</svg>"
        },
        "$:/language/Buttons/AdvancedSearch/Caption": {
            "title": "$:/language/Buttons/AdvancedSearch/Caption",
            "text": "advanced search"
        },
        "$:/language/Buttons/AdvancedSearch/Hint": {
            "title": "$:/language/Buttons/AdvancedSearch/Hint",
            "text": "Advanced search"
        },
        "$:/language/Buttons/Cancel/Caption": {
            "title": "$:/language/Buttons/Cancel/Caption",
            "text": "cancel"
        },
        "$:/language/Buttons/Cancel/Hint": {
            "title": "$:/language/Buttons/Cancel/Hint",
            "text": "Discard changes to this tiddler"
        },
        "$:/language/Buttons/Clone/Caption": {
            "title": "$:/language/Buttons/Clone/Caption",
            "text": "clone"
        },
        "$:/language/Buttons/Clone/Hint": {
            "title": "$:/language/Buttons/Clone/Hint",
            "text": "Clone this tiddler"
        },
        "$:/language/Buttons/Close/Caption": {
            "title": "$:/language/Buttons/Close/Caption",
            "text": "close"
        },
        "$:/language/Buttons/Close/Hint": {
            "title": "$:/language/Buttons/Close/Hint",
            "text": "Close this tiddler"
        },
        "$:/language/Buttons/CloseAll/Caption": {
            "title": "$:/language/Buttons/CloseAll/Caption",
            "text": "close all"
        },
        "$:/language/Buttons/CloseAll/Hint": {
            "title": "$:/language/Buttons/CloseAll/Hint",
            "text": "Close all tiddlers"
        },
        "$:/language/Buttons/CloseOthers/Caption": {
            "title": "$:/language/Buttons/CloseOthers/Caption",
            "text": "close others"
        },
        "$:/language/Buttons/CloseOthers/Hint": {
            "title": "$:/language/Buttons/CloseOthers/Hint",
            "text": "Close other tiddlers"
        },
        "$:/language/Buttons/ControlPanel/Caption": {
            "title": "$:/language/Buttons/ControlPanel/Caption",
            "text": "control panel"
        },
        "$:/language/Buttons/ControlPanel/Hint": {
            "title": "$:/language/Buttons/ControlPanel/Hint",
            "text": "Open control panel"
        },
        "$:/language/Buttons/Delete/Caption": {
            "title": "$:/language/Buttons/Delete/Caption",
            "text": "delete"
        },
        "$:/language/Buttons/Delete/Hint": {
            "title": "$:/language/Buttons/Delete/Hint",
            "text": "Delete this tiddler"
        },
        "$:/language/Buttons/Edit/Caption": {
            "title": "$:/language/Buttons/Edit/Caption",
            "text": "edit"
        },
        "$:/language/Buttons/Edit/Hint": {
            "title": "$:/language/Buttons/Edit/Hint",
            "text": "Edit this tiddler"
        },
        "$:/language/Buttons/Encryption/Caption": {
            "title": "$:/language/Buttons/Encryption/Caption",
            "text": "encryption"
        },
        "$:/language/Buttons/Encryption/Hint": {
            "title": "$:/language/Buttons/Encryption/Hint",
            "text": "Set or clear a password for saving this wiki"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
            "text": "clear password"
        },
        "$:/language/Buttons/Encryption/ClearPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
            "text": "Clear the password and save this wiki without encryption"
        },
        "$:/language/Buttons/Encryption/SetPassword/Caption": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Caption",
            "text": "set password"
        },
        "$:/language/Buttons/Encryption/SetPassword/Hint": {
            "title": "$:/language/Buttons/Encryption/SetPassword/Hint",
            "text": "Set a password for saving this wiki with encryption"
        },
        "$:/language/Buttons/ExportPage/Caption": {
            "title": "$:/language/Buttons/ExportPage/Caption",
            "text": "export all"
        },
        "$:/language/Buttons/ExportPage/Hint": {
            "title": "$:/language/Buttons/ExportPage/Hint",
            "text": "Export all tiddlers"
        },
        "$:/language/Buttons/ExportTiddler/Caption": {
            "title": "$:/language/Buttons/ExportTiddler/Caption",
            "text": "export tiddler"
        },
        "$:/language/Buttons/ExportTiddler/Hint": {
            "title": "$:/language/Buttons/ExportTiddler/Hint",
            "text": "Export tiddler"
        },
        "$:/language/Buttons/ExportTiddlers/Caption": {
            "title": "$:/language/Buttons/ExportTiddlers/Caption",
            "text": "export tiddlers"
        },
        "$:/language/Buttons/ExportTiddlers/Hint": {
            "title": "$:/language/Buttons/ExportTiddlers/Hint",
            "text": "Export tiddlers"
        },
        "$:/language/Buttons/Fold/Caption": {
            "title": "$:/language/Buttons/Fold/Caption",
            "text": "fold tiddler"
        },
        "$:/language/Buttons/Fold/Hint": {
            "title": "$:/language/Buttons/Fold/Hint",
            "text": "Fold the body of this tiddler"
        },
        "$:/language/Buttons/Fold/FoldBar/Caption": {
            "title": "$:/language/Buttons/Fold/FoldBar/Caption",
            "text": "fold-bar"
        },
        "$:/language/Buttons/Fold/FoldBar/Hint": {
            "title": "$:/language/Buttons/Fold/FoldBar/Hint",
            "text": "Optional bars to fold and unfold tiddlers"
        },
        "$:/language/Buttons/Unfold/Caption": {
            "title": "$:/language/Buttons/Unfold/Caption",
            "text": "unfold tiddler"
        },
        "$:/language/Buttons/Unfold/Hint": {
            "title": "$:/language/Buttons/Unfold/Hint",
            "text": "Unfold the body of this tiddler"
        },
        "$:/language/Buttons/FoldOthers/Caption": {
            "title": "$:/language/Buttons/FoldOthers/Caption",
            "text": "fold other tiddlers"
        },
        "$:/language/Buttons/FoldOthers/Hint": {
            "title": "$:/language/Buttons/FoldOthers/Hint",
            "text": "Fold the bodies of other opened tiddlers"
        },
        "$:/language/Buttons/FoldAll/Caption": {
            "title": "$:/language/Buttons/FoldAll/Caption",
            "text": "fold all tiddlers"
        },
        "$:/language/Buttons/FoldAll/Hint": {
            "title": "$:/language/Buttons/FoldAll/Hint",
            "text": "Fold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Caption": {
            "title": "$:/language/Buttons/UnfoldAll/Caption",
            "text": "unfold all tiddlers"
        },
        "$:/language/Buttons/UnfoldAll/Hint": {
            "title": "$:/language/Buttons/UnfoldAll/Hint",
            "text": "Unfold the bodies of all opened tiddlers"
        },
        "$:/language/Buttons/FullScreen/Caption": {
            "title": "$:/language/Buttons/FullScreen/Caption",
            "text": "full-screen"
        },
        "$:/language/Buttons/FullScreen/Hint": {
            "title": "$:/language/Buttons/FullScreen/Hint",
            "text": "Enter or leave full-screen mode"
        },
        "$:/language/Buttons/Help/Caption": {
            "title": "$:/language/Buttons/Help/Caption",
            "text": "help"
        },
        "$:/language/Buttons/Help/Hint": {
            "title": "$:/language/Buttons/Help/Hint",
            "text": "Show help panel"
        },
        "$:/language/Buttons/Import/Caption": {
            "title": "$:/language/Buttons/Import/Caption",
            "text": "import"
        },
        "$:/language/Buttons/Import/Hint": {
            "title": "$:/language/Buttons/Import/Hint",
            "text": "Import many types of file including text, image, TiddlyWiki or JSON"
        },
        "$:/language/Buttons/Info/Caption": {
            "title": "$:/language/Buttons/Info/Caption",
            "text": "info"
        },
        "$:/language/Buttons/Info/Hint": {
            "title": "$:/language/Buttons/Info/Hint",
            "text": "Show information for this tiddler"
        },
        "$:/language/Buttons/Home/Caption": {
            "title": "$:/language/Buttons/Home/Caption",
            "text": "home"
        },
        "$:/language/Buttons/Home/Hint": {
            "title": "$:/language/Buttons/Home/Hint",
            "text": "Open the default tiddlers"
        },
        "$:/language/Buttons/Language/Caption": {
            "title": "$:/language/Buttons/Language/Caption",
            "text": "language"
        },
        "$:/language/Buttons/Language/Hint": {
            "title": "$:/language/Buttons/Language/Hint",
            "text": "Choose the user interface language"
        },
        "$:/language/Buttons/Manager/Caption": {
            "title": "$:/language/Buttons/Manager/Caption",
            "text": "tiddler manager"
        },
        "$:/language/Buttons/Manager/Hint": {
            "title": "$:/language/Buttons/Manager/Hint",
            "text": "Open tiddler manager"
        },
        "$:/language/Buttons/More/Caption": {
            "title": "$:/language/Buttons/More/Caption",
            "text": "more"
        },
        "$:/language/Buttons/More/Hint": {
            "title": "$:/language/Buttons/More/Hint",
            "text": "More actions"
        },
        "$:/language/Buttons/NewHere/Caption": {
            "title": "$:/language/Buttons/NewHere/Caption",
            "text": "new here"
        },
        "$:/language/Buttons/NewHere/Hint": {
            "title": "$:/language/Buttons/NewHere/Hint",
            "text": "Create a new tiddler tagged with this one"
        },
        "$:/language/Buttons/NewJournal/Caption": {
            "title": "$:/language/Buttons/NewJournal/Caption",
            "text": "new journal"
        },
        "$:/language/Buttons/NewJournal/Hint": {
            "title": "$:/language/Buttons/NewJournal/Hint",
            "text": "Create a new journal tiddler"
        },
        "$:/language/Buttons/NewJournalHere/Caption": {
            "title": "$:/language/Buttons/NewJournalHere/Caption",
            "text": "new journal here"
        },
        "$:/language/Buttons/NewJournalHere/Hint": {
            "title": "$:/language/Buttons/NewJournalHere/Hint",
            "text": "Create a new journal tiddler tagged with this one"
        },
        "$:/language/Buttons/NewImage/Caption": {
            "title": "$:/language/Buttons/NewImage/Caption",
            "text": "new image"
        },
        "$:/language/Buttons/NewImage/Hint": {
            "title": "$:/language/Buttons/NewImage/Hint",
            "text": "Create a new image tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Caption": {
            "title": "$:/language/Buttons/NewMarkdown/Caption",
            "text": "new Markdown tiddler"
        },
        "$:/language/Buttons/NewMarkdown/Hint": {
            "title": "$:/language/Buttons/NewMarkdown/Hint",
            "text": "Create a new Markdown tiddler"
        },
        "$:/language/Buttons/NewTiddler/Caption": {
            "title": "$:/language/Buttons/NewTiddler/Caption",
            "text": "new tiddler"
        },
        "$:/language/Buttons/NewTiddler/Hint": {
            "title": "$:/language/Buttons/NewTiddler/Hint",
            "text": "Create a new tiddler"
        },
        "$:/language/Buttons/OpenWindow/Caption": {
            "title": "$:/language/Buttons/OpenWindow/Caption",
            "text": "open in new window"
        },
        "$:/language/Buttons/OpenWindow/Hint": {
            "title": "$:/language/Buttons/OpenWindow/Hint",
            "text": "Open tiddler in new window"
        },
        "$:/language/Buttons/Palette/Caption": {
            "title": "$:/language/Buttons/Palette/Caption",
            "text": "palette"
        },
        "$:/language/Buttons/Palette/Hint": {
            "title": "$:/language/Buttons/Palette/Hint",
            "text": "Choose the colour palette"
        },
        "$:/language/Buttons/Permalink/Caption": {
            "title": "$:/language/Buttons/Permalink/Caption",
            "text": "permalink"
        },
        "$:/language/Buttons/Permalink/Hint": {
            "title": "$:/language/Buttons/Permalink/Hint",
            "text": "Set browser address bar to a direct link to this tiddler"
        },
        "$:/language/Buttons/Permaview/Caption": {
            "title": "$:/language/Buttons/Permaview/Caption",
            "text": "permaview"
        },
        "$:/language/Buttons/Permaview/Hint": {
            "title": "$:/language/Buttons/Permaview/Hint",
            "text": "Set browser address bar to a direct link to all the tiddlers in this story"
        },
        "$:/language/Buttons/Print/Caption": {
            "title": "$:/language/Buttons/Print/Caption",
            "text": "print page"
        },
        "$:/language/Buttons/Print/Hint": {
            "title": "$:/language/Buttons/Print/Hint",
            "text": "Print the current page"
        },
        "$:/language/Buttons/Refresh/Caption": {
            "title": "$:/language/Buttons/Refresh/Caption",
            "text": "refresh"
        },
        "$:/language/Buttons/Refresh/Hint": {
            "title": "$:/language/Buttons/Refresh/Hint",
            "text": "Perform a full refresh of the wiki"
        },
        "$:/language/Buttons/Save/Caption": {
            "title": "$:/language/Buttons/Save/Caption",
            "text": "ok"
        },
        "$:/language/Buttons/Save/Hint": {
            "title": "$:/language/Buttons/Save/Hint",
            "text": "Confirm changes to this tiddler"
        },
        "$:/language/Buttons/SaveWiki/Caption": {
            "title": "$:/language/Buttons/SaveWiki/Caption",
            "text": "save changes"
        },
        "$:/language/Buttons/SaveWiki/Hint": {
            "title": "$:/language/Buttons/SaveWiki/Hint",
            "text": "Save changes"
        },
        "$:/language/Buttons/StoryView/Caption": {
            "title": "$:/language/Buttons/StoryView/Caption",
            "text": "storyview"
        },
        "$:/language/Buttons/StoryView/Hint": {
            "title": "$:/language/Buttons/StoryView/Hint",
            "text": "Choose the story visualisation"
        },
        "$:/language/Buttons/HideSideBar/Caption": {
            "title": "$:/language/Buttons/HideSideBar/Caption",
            "text": "hide sidebar"
        },
        "$:/language/Buttons/HideSideBar/Hint": {
            "title": "$:/language/Buttons/HideSideBar/Hint",
            "text": "Hide sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Caption": {
            "title": "$:/language/Buttons/ShowSideBar/Caption",
            "text": "show sidebar"
        },
        "$:/language/Buttons/ShowSideBar/Hint": {
            "title": "$:/language/Buttons/ShowSideBar/Hint",
            "text": "Show sidebar"
        },
        "$:/language/Buttons/TagManager/Caption": {
            "title": "$:/language/Buttons/TagManager/Caption",
            "text": "tag manager"
        },
        "$:/language/Buttons/TagManager/Hint": {
            "title": "$:/language/Buttons/TagManager/Hint",
            "text": "Open tag manager"
        },
        "$:/language/Buttons/Timestamp/Caption": {
            "title": "$:/language/Buttons/Timestamp/Caption",
            "text": "timestamps"
        },
        "$:/language/Buttons/Timestamp/Hint": {
            "title": "$:/language/Buttons/Timestamp/Hint",
            "text": "Choose whether modifications update timestamps"
        },
        "$:/language/Buttons/Timestamp/On/Caption": {
            "title": "$:/language/Buttons/Timestamp/On/Caption",
            "text": "timestamps are on"
        },
        "$:/language/Buttons/Timestamp/On/Hint": {
            "title": "$:/language/Buttons/Timestamp/On/Hint",
            "text": "Update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Timestamp/Off/Caption": {
            "title": "$:/language/Buttons/Timestamp/Off/Caption",
            "text": "timestamps are off"
        },
        "$:/language/Buttons/Timestamp/Off/Hint": {
            "title": "$:/language/Buttons/Timestamp/Off/Hint",
            "text": "Don't update timestamps when tiddlers are modified"
        },
        "$:/language/Buttons/Theme/Caption": {
            "title": "$:/language/Buttons/Theme/Caption",
            "text": "theme"
        },
        "$:/language/Buttons/Theme/Hint": {
            "title": "$:/language/Buttons/Theme/Hint",
            "text": "Choose the display theme"
        },
        "$:/language/Buttons/Bold/Caption": {
            "title": "$:/language/Buttons/Bold/Caption",
            "text": "bold"
        },
        "$:/language/Buttons/Bold/Hint": {
            "title": "$:/language/Buttons/Bold/Hint",
            "text": "Apply bold formatting to selection"
        },
        "$:/language/Buttons/Clear/Caption": {
            "title": "$:/language/Buttons/Clear/Caption",
            "text": "clear"
        },
        "$:/language/Buttons/Clear/Hint": {
            "title": "$:/language/Buttons/Clear/Hint",
            "text": "Clear image to solid colour"
        },
        "$:/language/Buttons/EditorHeight/Caption": {
            "title": "$:/language/Buttons/EditorHeight/Caption",
            "text": "editor height"
        },
        "$:/language/Buttons/EditorHeight/Caption/Auto": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Auto",
            "text": "Automatically adjust height to fit content"
        },
        "$:/language/Buttons/EditorHeight/Caption/Fixed": {
            "title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
            "text": "Fixed height:"
        },
        "$:/language/Buttons/EditorHeight/Hint": {
            "title": "$:/language/Buttons/EditorHeight/Hint",
            "text": "Choose the height of the text editor"
        },
        "$:/language/Buttons/Excise/Caption": {
            "title": "$:/language/Buttons/Excise/Caption",
            "text": "excise"
        },
        "$:/language/Buttons/Excise/Caption/Excise": {
            "title": "$:/language/Buttons/Excise/Caption/Excise",
            "text": "Perform excision"
        },
        "$:/language/Buttons/Excise/Caption/MacroName": {
            "title": "$:/language/Buttons/Excise/Caption/MacroName",
            "text": "Macro name:"
        },
        "$:/language/Buttons/Excise/Caption/NewTitle": {
            "title": "$:/language/Buttons/Excise/Caption/NewTitle",
            "text": "Title of new tiddler:"
        },
        "$:/language/Buttons/Excise/Caption/Replace": {
            "title": "$:/language/Buttons/Excise/Caption/Replace",
            "text": "Replace excised text with:"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Macro": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
            "text": "macro"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Link": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Link",
            "text": "link"
        },
        "$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
            "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
            "text": "transclusion"
        },
        "$:/language/Buttons/Excise/Caption/Tag": {
            "title": "$:/language/Buttons/Excise/Caption/Tag",
            "text": "Tag new tiddler with the title of this tiddler"
        },
        "$:/language/Buttons/Excise/Caption/TiddlerExists": {
            "title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
            "text": "Warning: tiddler already exists"
        },
        "$:/language/Buttons/Excise/Hint": {
            "title": "$:/language/Buttons/Excise/Hint",
            "text": "Excise the selected text into a new tiddler"
        },
        "$:/language/Buttons/Heading1/Caption": {
            "title": "$:/language/Buttons/Heading1/Caption",
            "text": "heading 1"
        },
        "$:/language/Buttons/Heading1/Hint": {
            "title": "$:/language/Buttons/Heading1/Hint",
            "text": "Apply heading level 1 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading2/Caption": {
            "title": "$:/language/Buttons/Heading2/Caption",
            "text": "heading 2"
        },
        "$:/language/Buttons/Heading2/Hint": {
            "title": "$:/language/Buttons/Heading2/Hint",
            "text": "Apply heading level 2 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading3/Caption": {
            "title": "$:/language/Buttons/Heading3/Caption",
            "text": "heading 3"
        },
        "$:/language/Buttons/Heading3/Hint": {
            "title": "$:/language/Buttons/Heading3/Hint",
            "text": "Apply heading level 3 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading4/Caption": {
            "title": "$:/language/Buttons/Heading4/Caption",
            "text": "heading 4"
        },
        "$:/language/Buttons/Heading4/Hint": {
            "title": "$:/language/Buttons/Heading4/Hint",
            "text": "Apply heading level 4 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading5/Caption": {
            "title": "$:/language/Buttons/Heading5/Caption",
            "text": "heading 5"
        },
        "$:/language/Buttons/Heading5/Hint": {
            "title": "$:/language/Buttons/Heading5/Hint",
            "text": "Apply heading level 5 formatting to lines containing selection"
        },
        "$:/language/Buttons/Heading6/Caption": {
            "title": "$:/language/Buttons/Heading6/Caption",
            "text": "heading 6"
        },
        "$:/language/Buttons/Heading6/Hint": {
            "title": "$:/language/Buttons/Heading6/Hint",
            "text": "Apply heading level 6 formatting to lines containing selection"
        },
        "$:/language/Buttons/Italic/Caption": {
            "title": "$:/language/Buttons/Italic/Caption",
            "text": "italic"
        },
        "$:/language/Buttons/Italic/Hint": {
            "title": "$:/language/Buttons/Italic/Hint",
            "text": "Apply italic formatting to selection"
        },
        "$:/language/Buttons/LineWidth/Caption": {
            "title": "$:/language/Buttons/LineWidth/Caption",
            "text": "line width"
        },
        "$:/language/Buttons/LineWidth/Hint": {
            "title": "$:/language/Buttons/LineWidth/Hint",
            "text": "Set line width for painting"
        },
        "$:/language/Buttons/Link/Caption": {
            "title": "$:/language/Buttons/Link/Caption",
            "text": "link"
        },
        "$:/language/Buttons/Link/Hint": {
            "title": "$:/language/Buttons/Link/Hint",
            "text": "Create wikitext link"
        },
        "$:/language/Buttons/ListBullet/Caption": {
            "title": "$:/language/Buttons/ListBullet/Caption",
            "text": "bulleted list"
        },
        "$:/language/Buttons/ListBullet/Hint": {
            "title": "$:/language/Buttons/ListBullet/Hint",
            "text": "Apply bulleted list formatting to lines containing selection"
        },
        "$:/language/Buttons/ListNumber/Caption": {
            "title": "$:/language/Buttons/ListNumber/Caption",
            "text": "numbered list"
        },
        "$:/language/Buttons/ListNumber/Hint": {
            "title": "$:/language/Buttons/ListNumber/Hint",
            "text": "Apply numbered list formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoBlock/Caption": {
            "title": "$:/language/Buttons/MonoBlock/Caption",
            "text": "monospaced block"
        },
        "$:/language/Buttons/MonoBlock/Hint": {
            "title": "$:/language/Buttons/MonoBlock/Hint",
            "text": "Apply monospaced block formatting to lines containing selection"
        },
        "$:/language/Buttons/MonoLine/Caption": {
            "title": "$:/language/Buttons/MonoLine/Caption",
            "text": "monospaced"
        },
        "$:/language/Buttons/MonoLine/Hint": {
            "title": "$:/language/Buttons/MonoLine/Hint",
            "text": "Apply monospaced character formatting to selection"
        },
        "$:/language/Buttons/Opacity/Caption": {
            "title": "$:/language/Buttons/Opacity/Caption",
            "text": "opacity"
        },
        "$:/language/Buttons/Opacity/Hint": {
            "title": "$:/language/Buttons/Opacity/Hint",
            "text": "Set painting opacity"
        },
        "$:/language/Buttons/Paint/Caption": {
            "title": "$:/language/Buttons/Paint/Caption",
            "text": "paint colour"
        },
        "$:/language/Buttons/Paint/Hint": {
            "title": "$:/language/Buttons/Paint/Hint",
            "text": "Set painting colour"
        },
        "$:/language/Buttons/Picture/Caption": {
            "title": "$:/language/Buttons/Picture/Caption",
            "text": "picture"
        },
        "$:/language/Buttons/Picture/Hint": {
            "title": "$:/language/Buttons/Picture/Hint",
            "text": "Insert picture"
        },
        "$:/language/Buttons/Preview/Caption": {
            "title": "$:/language/Buttons/Preview/Caption",
            "text": "preview"
        },
        "$:/language/Buttons/Preview/Hint": {
            "title": "$:/language/Buttons/Preview/Hint",
            "text": "Show preview pane"
        },
        "$:/language/Buttons/PreviewType/Caption": {
            "title": "$:/language/Buttons/PreviewType/Caption",
            "text": "preview type"
        },
        "$:/language/Buttons/PreviewType/Hint": {
            "title": "$:/language/Buttons/PreviewType/Hint",
            "text": "Choose preview type"
        },
        "$:/language/Buttons/Quote/Caption": {
            "title": "$:/language/Buttons/Quote/Caption",
            "text": "quote"
        },
        "$:/language/Buttons/Quote/Hint": {
            "title": "$:/language/Buttons/Quote/Hint",
            "text": "Apply quoted text formatting to lines containing selection"
        },
        "$:/language/Buttons/Size/Caption": {
            "title": "$:/language/Buttons/Size/Caption",
            "text": "image size"
        },
        "$:/language/Buttons/Size/Caption/Height": {
            "title": "$:/language/Buttons/Size/Caption/Height",
            "text": "Height:"
        },
        "$:/language/Buttons/Size/Caption/Resize": {
            "title": "$:/language/Buttons/Size/Caption/Resize",
            "text": "Resize image"
        },
        "$:/language/Buttons/Size/Caption/Width": {
            "title": "$:/language/Buttons/Size/Caption/Width",
            "text": "Width:"
        },
        "$:/language/Buttons/Size/Hint": {
            "title": "$:/language/Buttons/Size/Hint",
            "text": "Set image size"
        },
        "$:/language/Buttons/Stamp/Caption": {
            "title": "$:/language/Buttons/Stamp/Caption",
            "text": "stamp"
        },
        "$:/language/Buttons/Stamp/Caption/New": {
            "title": "$:/language/Buttons/Stamp/Caption/New",
            "text": "Add your own"
        },
        "$:/language/Buttons/Stamp/Hint": {
            "title": "$:/language/Buttons/Stamp/Hint",
            "text": "Insert a preconfigured snippet of text"
        },
        "$:/language/Buttons/Stamp/New/Title": {
            "title": "$:/language/Buttons/Stamp/New/Title",
            "text": "Name as shown in menu"
        },
        "$:/language/Buttons/Stamp/New/Text": {
            "title": "$:/language/Buttons/Stamp/New/Text",
            "text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
        },
        "$:/language/Buttons/Strikethrough/Caption": {
            "title": "$:/language/Buttons/Strikethrough/Caption",
            "text": "strikethrough"
        },
        "$:/language/Buttons/Strikethrough/Hint": {
            "title": "$:/language/Buttons/Strikethrough/Hint",
            "text": "Apply strikethrough formatting to selection"
        },
        "$:/language/Buttons/Subscript/Caption": {
            "title": "$:/language/Buttons/Subscript/Caption",
            "text": "subscript"
        },
        "$:/language/Buttons/Subscript/Hint": {
            "title": "$:/language/Buttons/Subscript/Hint",
            "text": "Apply subscript formatting to selection"
        },
        "$:/language/Buttons/Superscript/Caption": {
            "title": "$:/language/Buttons/Superscript/Caption",
            "text": "superscript"
        },
        "$:/language/Buttons/Superscript/Hint": {
            "title": "$:/language/Buttons/Superscript/Hint",
            "text": "Apply superscript formatting to selection"
        },
        "$:/language/Buttons/Underline/Caption": {
            "title": "$:/language/Buttons/Underline/Caption",
            "text": "underline"
        },
        "$:/language/Buttons/Underline/Hint": {
            "title": "$:/language/Buttons/Underline/Hint",
            "text": "Apply underline formatting to selection"
        },
        "$:/language/ControlPanel/Advanced/Caption": {
            "title": "$:/language/ControlPanel/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/ControlPanel/Advanced/Hint": {
            "title": "$:/language/ControlPanel/Advanced/Hint",
            "text": "Internal information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/Appearance/Caption": {
            "title": "$:/language/ControlPanel/Appearance/Caption",
            "text": "Appearance"
        },
        "$:/language/ControlPanel/Appearance/Hint": {
            "title": "$:/language/ControlPanel/Appearance/Hint",
            "text": "Ways to customise the appearance of your TiddlyWiki."
        },
        "$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
            "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
            "text": "Animation duration:"
        },
        "$:/language/ControlPanel/Basics/Caption": {
            "title": "$:/language/ControlPanel/Basics/Caption",
            "text": "Basics"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
            "text": "Use &#91;&#91;double square brackets&#93;&#93; for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
            "text": "Default tiddlers:"
        },
        "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
            "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
            "text": "Choose which tiddlers are displayed at startup:"
        },
        "$:/language/ControlPanel/Basics/Language/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Language/Prompt",
            "text": "Hello! Current language:"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
            "text": "Title of new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
            "text": "Text for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
            "text": "Tags for new journal tiddlers"
        },
        "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
            "text": "Number of overridden shadow tiddlers:"
        },
        "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
            "text": "Number of shadow tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Subtitle/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
            "text": "Subtitle:"
        },
        "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
            "text": "Number of system tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Tags/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tags/Prompt",
            "text": "Number of tags:"
        },
        "$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
            "text": "Number of tiddlers:"
        },
        "$:/language/ControlPanel/Basics/Title/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Title/Prompt",
            "text": "Title of this ~TiddlyWiki:"
        },
        "$:/language/ControlPanel/Basics/Username/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Username/Prompt",
            "text": "Username for signing edits:"
        },
        "$:/language/ControlPanel/Basics/Version/Prompt": {
            "title": "$:/language/ControlPanel/Basics/Version/Prompt",
            "text": "~TiddlyWiki version:"
        },
        "$:/language/ControlPanel/EditorTypes/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Caption",
            "text": "Editor Types"
        },
        "$:/language/ControlPanel/EditorTypes/Editor/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
            "text": "Editor"
        },
        "$:/language/ControlPanel/EditorTypes/Hint": {
            "title": "$:/language/ControlPanel/EditorTypes/Hint",
            "text": "These tiddlers determine which editor is used to edit specific tiddler types."
        },
        "$:/language/ControlPanel/EditorTypes/Type/Caption": {
            "title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
            "text": "Type"
        },
        "$:/language/ControlPanel/Info/Caption": {
            "title": "$:/language/ControlPanel/Info/Caption",
            "text": "Info"
        },
        "$:/language/ControlPanel/Info/Hint": {
            "title": "$:/language/ControlPanel/Info/Hint",
            "text": "Information about this TiddlyWiki"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
            "text": "Type shortcut here"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
            "text": "add shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
            "text": "Keyboard Shortcuts"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
            "text": "Manage keyboard shortcut assignments"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
            "text": "No keyboard shortcuts assigned"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
            "text": "remove keyboard shortcut"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
            "text": "All platforms"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
            "text": "Macintosh platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
            "text": "Non-Macintosh platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
            "text": "Linux platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
            "text": "Non-Linux platforms only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
            "text": "Windows platform only"
        },
        "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
            "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
            "text": "Non-Windows platforms only"
        },
        "$:/language/ControlPanel/LoadedModules/Caption": {
            "title": "$:/language/ControlPanel/LoadedModules/Caption",
            "text": "Loaded Modules"
        },
        "$:/language/ControlPanel/LoadedModules/Hint": {
            "title": "$:/language/ControlPanel/LoadedModules/Hint",
            "text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
        },
        "$:/language/ControlPanel/Palette/Caption": {
            "title": "$:/language/ControlPanel/Palette/Caption",
            "text": "Palette"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
            "text": "clone"
        },
        "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
            "text": "It is recommended that you clone this shadow palette before editing it"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
            "text": "This shadow palette has been modified"
        },
        "$:/language/ControlPanel/Palette/Editor/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Editor/Prompt",
            "text": "Editing"
        },
        "$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
            "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
            "text": "reset"
        },
        "$:/language/ControlPanel/Palette/HideEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
            "text": "hide editor"
        },
        "$:/language/ControlPanel/Palette/Prompt": {
            "title": "$:/language/ControlPanel/Palette/Prompt",
            "text": "Current palette:"
        },
        "$:/language/ControlPanel/Palette/ShowEditor/Caption": {
            "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
            "text": "show editor"
        },
        "$:/language/ControlPanel/Parsing/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Caption",
            "text": "Parsing"
        },
        "$:/language/ControlPanel/Parsing/Hint": {
            "title": "$:/language/ControlPanel/Parsing/Hint",
            "text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|http://tiddlywiki.com/#SafeMode]] to restore normal operation."
        },
        "$:/language/ControlPanel/Parsing/Block/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Block/Caption",
            "text": "Block Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Inline/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Inline/Caption",
            "text": "Inline Parse Rules"
        },
        "$:/language/ControlPanel/Parsing/Pragma/Caption": {
            "title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
            "text": "Pragma Parse Rules"
        },
        "$:/language/ControlPanel/Plugins/Add/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Add/Caption",
            "text": "Get more plugins"
        },
        "$:/language/ControlPanel/Plugins/Add/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Add/Hint",
            "text": "Install plugins from the official library"
        },
        "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
            "text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
        },
        "$:/language/ControlPanel/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Disable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Caption",
            "text": "disable"
        },
        "$:/language/ControlPanel/Plugins/Disable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Disable/Hint",
            "text": "Disable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Disabled/Status": {
            "title": "$:/language/ControlPanel/Plugins/Disabled/Status",
            "text": "(disabled)"
        },
        "$:/language/ControlPanel/Plugins/Empty/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Empty/Hint",
            "text": "None"
        },
        "$:/language/ControlPanel/Plugins/Enable/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Caption",
            "text": "enable"
        },
        "$:/language/ControlPanel/Plugins/Enable/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Enable/Hint",
            "text": "Enable this plugin when reloading page"
        },
        "$:/language/ControlPanel/Plugins/Install/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Install/Caption",
            "text": "install"
        },
        "$:/language/ControlPanel/Plugins/Installed/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Installed/Hint",
            "text": "Currently installed plugins:"
        },
        "$:/language/ControlPanel/Plugins/Languages/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Caption",
            "text": "Languages"
        },
        "$:/language/ControlPanel/Plugins/Languages/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Languages/Hint",
            "text": "Language pack plugins"
        },
        "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
            "text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
        },
        "$:/language/ControlPanel/Plugins/NoInformation/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint",
            "text": "No information provided"
        },
        "$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
            "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
            "text": "This plugin is not currently installed"
        },
        "$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
            "text": "open plugin library"
        },
        "$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
            "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
            "text": "close plugin library"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Plugins/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
            "text": "Plugins"
        },
        "$:/language/ControlPanel/Plugins/Reinstall/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
            "text": "reinstall"
        },
        "$:/language/ControlPanel/Plugins/Themes/Caption": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Caption",
            "text": "Themes"
        },
        "$:/language/ControlPanel/Plugins/Themes/Hint": {
            "title": "$:/language/ControlPanel/Plugins/Themes/Hint",
            "text": "Theme plugins"
        },
        "$:/language/ControlPanel/Saving/Caption": {
            "title": "$:/language/ControlPanel/Saving/Caption",
            "text": "Saving"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
            "text": "Permit automatic saving for the download saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
            "text": "Enable Autosave for Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
            "text": "Download Saver"
        },
        "$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
            "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
            "text": "These settings apply to the HTML5-compatible download saver"
        },
        "$:/language/ControlPanel/Saving/General/Caption": {
            "title": "$:/language/ControlPanel/Saving/General/Caption",
            "text": "General"
        },
        "$:/language/ControlPanel/Saving/General/Hint": {
            "title": "$:/language/ControlPanel/Saving/General/Hint",
            "text": "These settings apply to all the loaded savers"
        },
        "$:/language/ControlPanel/Saving/Hint": {
            "title": "$:/language/ControlPanel/Saving/Hint",
            "text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
            "text": "Advanced Settings"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
            "text": "Backup Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
            "text": "Backups"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
            "text": "~TiddlySpot Saver"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Description": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
            "text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
            "text": "Upload Filename"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
            "text": "~TiddlySpot"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
            "text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/Password": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
            "text": "Password"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
            "text": "Server URL"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
            "text": "Upload Directory"
        },
        "$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
            "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
            "text": "Wiki Name"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Caption": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
            "text": "Autosave"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
            "text": "Do not save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
            "text": "Save changes automatically"
        },
        "$:/language/ControlPanel/Settings/AutoSave/Hint": {
            "title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
            "text": "Attempt to automatically save changes during editing when using a supporting saver"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Caption": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
            "text": "Camel Case Wiki Links"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Hint": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
            "text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/CamelCase/Description": {
            "title": "$:/language/ControlPanel/Settings/CamelCase/Description",
            "text": "Enable automatic ~CamelCase linking"
        },
        "$:/language/ControlPanel/Settings/Caption": {
            "title": "$:/language/ControlPanel/Settings/Caption",
            "text": "Settings"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
            "text": "Enable or disable the editor toolbar:"
        },
        "$:/language/ControlPanel/Settings/EditorToolbar/Description": {
            "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
            "text": "Show editor toolbar"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
            "text": "Tiddler Info Panel Mode"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
            "text": "Control when the tiddler info panel closes:"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
            "text": "Tiddler info panel closes automatically"
        },
        "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
            "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
            "text": "Tiddler info panel stays open until explicitly closed"
        },
        "$:/language/ControlPanel/Settings/Hint": {
            "title": "$:/language/ControlPanel/Settings/Hint",
            "text": "These settings let you customise the behaviour of TiddlyWiki."
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
            "text": "Navigation Address Bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
            "text": "Behaviour of the browser address bar when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
            "text": "Do not update the address bar"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
            "text": "Include the target tiddler"
        },
        "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
            "text": "Include the target tiddler and the current story sequence"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
            "text": "Navigation History"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
            "text": "Update browser history when navigating to a tiddler:"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
            "text": "Do not update history"
        },
        "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
            "text": "Update history"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
            "text": "Performance Instrumentation"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
            "text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
        },
        "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
            "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
            "text": "Enable performance instrumentation"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
            "text": "Toolbar Button Style"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
            "text": "Choose the style for toolbar buttons:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
            "text": "Borderless"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
            "text": "Boxed"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
            "text": "Rounded"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
            "text": "Toolbar Buttons"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
            "text": "Default toolbar button appearance:"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
            "text": "Include icon"
        },
        "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
            "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
            "text": "Include text"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
            "text": "Default Sidebar Tab"
        },
        "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
            "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
            "text": "Specify which sidebar tab is displayed by default"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
            "text": "Tiddler Opening Behaviour"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
            "text": "Navigation from //within// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
            "text": "Navigation from //outside// the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
            "text": "Open above the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
            "text": "Open below the current tiddler"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
            "text": "Open at the top of the story river"
        },
        "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
            "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
            "text": "Open at the bottom of the story river"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
            "text": "Tiddler Titles"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
            "text": "Optionally display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
            "text": "Do not display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
            "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
            "text": "Display tiddler titles as links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Caption": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
            "text": "Wiki Links"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Hint": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
            "text": "Choose whether to link to tiddlers that do not exist yet"
        },
        "$:/language/ControlPanel/Settings/MissingLinks/Description": {
            "title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
            "text": "Enable links to missing tiddlers"
        },
        "$:/language/ControlPanel/StoryView/Caption": {
            "title": "$:/language/ControlPanel/StoryView/Caption",
            "text": "Story View"
        },
        "$:/language/ControlPanel/StoryView/Prompt": {
            "title": "$:/language/ControlPanel/StoryView/Prompt",
            "text": "Current view:"
        },
        "$:/language/ControlPanel/Theme/Caption": {
            "title": "$:/language/ControlPanel/Theme/Caption",
            "text": "Theme"
        },
        "$:/language/ControlPanel/Theme/Prompt": {
            "title": "$:/language/ControlPanel/Theme/Prompt",
            "text": "Current theme:"
        },
        "$:/language/ControlPanel/TiddlerFields/Caption": {
            "title": "$:/language/ControlPanel/TiddlerFields/Caption",
            "text": "Tiddler Fields"
        },
        "$:/language/ControlPanel/TiddlerFields/Hint": {
            "title": "$:/language/ControlPanel/TiddlerFields/Hint",
            "text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
        },
        "$:/language/ControlPanel/Toolbars/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/Caption",
            "text": "Toolbars"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
            "text": "Edit Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/Hint",
            "text": "Select which toolbar buttons are displayed"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
            "text": "Page Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/PageControls/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
            "text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
            "text": "Editor Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
            "text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
            "text": "View Toolbar"
        },
        "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
            "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
            "text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
        },
        "$:/language/ControlPanel/Tools/Download/Full/Caption": {
            "title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
            "text": "Download full wiki"
        },
        "$:/language/Date/DaySuffix/1": {
            "title": "$:/language/Date/DaySuffix/1",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/2": {
            "title": "$:/language/Date/DaySuffix/2",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/3": {
            "title": "$:/language/Date/DaySuffix/3",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/4": {
            "title": "$:/language/Date/DaySuffix/4",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/5": {
            "title": "$:/language/Date/DaySuffix/5",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/6": {
            "title": "$:/language/Date/DaySuffix/6",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/7": {
            "title": "$:/language/Date/DaySuffix/7",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/8": {
            "title": "$:/language/Date/DaySuffix/8",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/9": {
            "title": "$:/language/Date/DaySuffix/9",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/10": {
            "title": "$:/language/Date/DaySuffix/10",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/11": {
            "title": "$:/language/Date/DaySuffix/11",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/12": {
            "title": "$:/language/Date/DaySuffix/12",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/13": {
            "title": "$:/language/Date/DaySuffix/13",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/14": {
            "title": "$:/language/Date/DaySuffix/14",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/15": {
            "title": "$:/language/Date/DaySuffix/15",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/16": {
            "title": "$:/language/Date/DaySuffix/16",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/17": {
            "title": "$:/language/Date/DaySuffix/17",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/18": {
            "title": "$:/language/Date/DaySuffix/18",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/19": {
            "title": "$:/language/Date/DaySuffix/19",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/20": {
            "title": "$:/language/Date/DaySuffix/20",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/21": {
            "title": "$:/language/Date/DaySuffix/21",
            "text": "st"
        },
        "$:/language/Date/DaySuffix/22": {
            "title": "$:/language/Date/DaySuffix/22",
            "text": "nd"
        },
        "$:/language/Date/DaySuffix/23": {
            "title": "$:/language/Date/DaySuffix/23",
            "text": "rd"
        },
        "$:/language/Date/DaySuffix/24": {
            "title": "$:/language/Date/DaySuffix/24",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/25": {
            "title": "$:/language/Date/DaySuffix/25",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/26": {
            "title": "$:/language/Date/DaySuffix/26",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/27": {
            "title": "$:/language/Date/DaySuffix/27",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/28": {
            "title": "$:/language/Date/DaySuffix/28",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/29": {
            "title": "$:/language/Date/DaySuffix/29",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/30": {
            "title": "$:/language/Date/DaySuffix/30",
            "text": "th"
        },
        "$:/language/Date/DaySuffix/31": {
            "title": "$:/language/Date/DaySuffix/31",
            "text": "st"
        },
        "$:/language/Date/Long/Day/0": {
            "title": "$:/language/Date/Long/Day/0",
            "text": "Sunday"
        },
        "$:/language/Date/Long/Day/1": {
            "title": "$:/language/Date/Long/Day/1",
            "text": "Monday"
        },
        "$:/language/Date/Long/Day/2": {
            "title": "$:/language/Date/Long/Day/2",
            "text": "Tuesday"
        },
        "$:/language/Date/Long/Day/3": {
            "title": "$:/language/Date/Long/Day/3",
            "text": "Wednesday"
        },
        "$:/language/Date/Long/Day/4": {
            "title": "$:/language/Date/Long/Day/4",
            "text": "Thursday"
        },
        "$:/language/Date/Long/Day/5": {
            "title": "$:/language/Date/Long/Day/5",
            "text": "Friday"
        },
        "$:/language/Date/Long/Day/6": {
            "title": "$:/language/Date/Long/Day/6",
            "text": "Saturday"
        },
        "$:/language/Date/Long/Month/1": {
            "title": "$:/language/Date/Long/Month/1",
            "text": "January"
        },
        "$:/language/Date/Long/Month/2": {
            "title": "$:/language/Date/Long/Month/2",
            "text": "February"
        },
        "$:/language/Date/Long/Month/3": {
            "title": "$:/language/Date/Long/Month/3",
            "text": "March"
        },
        "$:/language/Date/Long/Month/4": {
            "title": "$:/language/Date/Long/Month/4",
            "text": "April"
        },
        "$:/language/Date/Long/Month/5": {
            "title": "$:/language/Date/Long/Month/5",
            "text": "May"
        },
        "$:/language/Date/Long/Month/6": {
            "title": "$:/language/Date/Long/Month/6",
            "text": "June"
        },
        "$:/language/Date/Long/Month/7": {
            "title": "$:/language/Date/Long/Month/7",
            "text": "July"
        },
        "$:/language/Date/Long/Month/8": {
            "title": "$:/language/Date/Long/Month/8",
            "text": "August"
        },
        "$:/language/Date/Long/Month/9": {
            "title": "$:/language/Date/Long/Month/9",
            "text": "September"
        },
        "$:/language/Date/Long/Month/10": {
            "title": "$:/language/Date/Long/Month/10",
            "text": "October"
        },
        "$:/language/Date/Long/Month/11": {
            "title": "$:/language/Date/Long/Month/11",
            "text": "November"
        },
        "$:/language/Date/Long/Month/12": {
            "title": "$:/language/Date/Long/Month/12",
            "text": "December"
        },
        "$:/language/Date/Period/am": {
            "title": "$:/language/Date/Period/am",
            "text": "am"
        },
        "$:/language/Date/Period/pm": {
            "title": "$:/language/Date/Period/pm",
            "text": "pm"
        },
        "$:/language/Date/Short/Day/0": {
            "title": "$:/language/Date/Short/Day/0",
            "text": "Sun"
        },
        "$:/language/Date/Short/Day/1": {
            "title": "$:/language/Date/Short/Day/1",
            "text": "Mon"
        },
        "$:/language/Date/Short/Day/2": {
            "title": "$:/language/Date/Short/Day/2",
            "text": "Tue"
        },
        "$:/language/Date/Short/Day/3": {
            "title": "$:/language/Date/Short/Day/3",
            "text": "Wed"
        },
        "$:/language/Date/Short/Day/4": {
            "title": "$:/language/Date/Short/Day/4",
            "text": "Thu"
        },
        "$:/language/Date/Short/Day/5": {
            "title": "$:/language/Date/Short/Day/5",
            "text": "Fri"
        },
        "$:/language/Date/Short/Day/6": {
            "title": "$:/language/Date/Short/Day/6",
            "text": "Sat"
        },
        "$:/language/Date/Short/Month/1": {
            "title": "$:/language/Date/Short/Month/1",
            "text": "Jan"
        },
        "$:/language/Date/Short/Month/2": {
            "title": "$:/language/Date/Short/Month/2",
            "text": "Feb"
        },
        "$:/language/Date/Short/Month/3": {
            "title": "$:/language/Date/Short/Month/3",
            "text": "Mar"
        },
        "$:/language/Date/Short/Month/4": {
            "title": "$:/language/Date/Short/Month/4",
            "text": "Apr"
        },
        "$:/language/Date/Short/Month/5": {
            "title": "$:/language/Date/Short/Month/5",
            "text": "May"
        },
        "$:/language/Date/Short/Month/6": {
            "title": "$:/language/Date/Short/Month/6",
            "text": "Jun"
        },
        "$:/language/Date/Short/Month/7": {
            "title": "$:/language/Date/Short/Month/7",
            "text": "Jul"
        },
        "$:/language/Date/Short/Month/8": {
            "title": "$:/language/Date/Short/Month/8",
            "text": "Aug"
        },
        "$:/language/Date/Short/Month/9": {
            "title": "$:/language/Date/Short/Month/9",
            "text": "Sep"
        },
        "$:/language/Date/Short/Month/10": {
            "title": "$:/language/Date/Short/Month/10",
            "text": "Oct"
        },
        "$:/language/Date/Short/Month/11": {
            "title": "$:/language/Date/Short/Month/11",
            "text": "Nov"
        },
        "$:/language/Date/Short/Month/12": {
            "title": "$:/language/Date/Short/Month/12",
            "text": "Dec"
        },
        "$:/language/RelativeDate/Future/Days": {
            "title": "$:/language/RelativeDate/Future/Days",
            "text": "<<period>> days from now"
        },
        "$:/language/RelativeDate/Future/Hours": {
            "title": "$:/language/RelativeDate/Future/Hours",
            "text": "<<period>> hours from now"
        },
        "$:/language/RelativeDate/Future/Minutes": {
            "title": "$:/language/RelativeDate/Future/Minutes",
            "text": "<<period>> minutes from now"
        },
        "$:/language/RelativeDate/Future/Months": {
            "title": "$:/language/RelativeDate/Future/Months",
            "text": "<<period>> months from now"
        },
        "$:/language/RelativeDate/Future/Second": {
            "title": "$:/language/RelativeDate/Future/Second",
            "text": "1 second from now"
        },
        "$:/language/RelativeDate/Future/Seconds": {
            "title": "$:/language/RelativeDate/Future/Seconds",
            "text": "<<period>> seconds from now"
        },
        "$:/language/RelativeDate/Future/Years": {
            "title": "$:/language/RelativeDate/Future/Years",
            "text": "<<period>> years from now"
        },
        "$:/language/RelativeDate/Past/Days": {
            "title": "$:/language/RelativeDate/Past/Days",
            "text": "<<period>> days ago"
        },
        "$:/language/RelativeDate/Past/Hours": {
            "title": "$:/language/RelativeDate/Past/Hours",
            "text": "<<period>> hours ago"
        },
        "$:/language/RelativeDate/Past/Minutes": {
            "title": "$:/language/RelativeDate/Past/Minutes",
            "text": "<<period>> minutes ago"
        },
        "$:/language/RelativeDate/Past/Months": {
            "title": "$:/language/RelativeDate/Past/Months",
            "text": "<<period>> months ago"
        },
        "$:/language/RelativeDate/Past/Second": {
            "title": "$:/language/RelativeDate/Past/Second",
            "text": "1 second ago"
        },
        "$:/language/RelativeDate/Past/Seconds": {
            "title": "$:/language/RelativeDate/Past/Seconds",
            "text": "<<period>> seconds ago"
        },
        "$:/language/RelativeDate/Past/Years": {
            "title": "$:/language/RelativeDate/Past/Years",
            "text": "<<period>> years ago"
        },
        "$:/language/Docs/ModuleTypes/allfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/allfilteroperator",
            "text": "A sub-operator for the ''all'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/animation": {
            "title": "$:/language/Docs/ModuleTypes/animation",
            "text": "Animations that may be used with the RevealWidget."
        },
        "$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
            "text": "A bitmap editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/command": {
            "title": "$:/language/Docs/ModuleTypes/command",
            "text": "Commands that can be executed under Node.js."
        },
        "$:/language/Docs/ModuleTypes/config": {
            "title": "$:/language/Docs/ModuleTypes/config",
            "text": "Data to be inserted into `$tw.config`."
        },
        "$:/language/Docs/ModuleTypes/filteroperator": {
            "title": "$:/language/Docs/ModuleTypes/filteroperator",
            "text": "Individual filter operator methods."
        },
        "$:/language/Docs/ModuleTypes/global": {
            "title": "$:/language/Docs/ModuleTypes/global",
            "text": "Global data to be inserted into `$tw`."
        },
        "$:/language/Docs/ModuleTypes/info": {
            "title": "$:/language/Docs/ModuleTypes/info",
            "text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
        },
        "$:/language/Docs/ModuleTypes/isfilteroperator": {
            "title": "$:/language/Docs/ModuleTypes/isfilteroperator",
            "text": "Operands for the ''is'' filter operator."
        },
        "$:/language/Docs/ModuleTypes/library": {
            "title": "$:/language/Docs/ModuleTypes/library",
            "text": "Generic module type for general purpose JavaScript modules."
        },
        "$:/language/Docs/ModuleTypes/macro": {
            "title": "$:/language/Docs/ModuleTypes/macro",
            "text": "JavaScript macro definitions."
        },
        "$:/language/Docs/ModuleTypes/parser": {
            "title": "$:/language/Docs/ModuleTypes/parser",
            "text": "Parsers for different content types."
        },
        "$:/language/Docs/ModuleTypes/saver": {
            "title": "$:/language/Docs/ModuleTypes/saver",
            "text": "Savers handle different methods for saving files from the browser."
        },
        "$:/language/Docs/ModuleTypes/startup": {
            "title": "$:/language/Docs/ModuleTypes/startup",
            "text": "Startup functions."
        },
        "$:/language/Docs/ModuleTypes/storyview": {
            "title": "$:/language/Docs/ModuleTypes/storyview",
            "text": "Story views customise the animation and behaviour of list widgets."
        },
        "$:/language/Docs/ModuleTypes/texteditoroperation": {
            "title": "$:/language/Docs/ModuleTypes/texteditoroperation",
            "text": "A text editor toolbar operation."
        },
        "$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
            "text": "Converts different content types into tiddlers."
        },
        "$:/language/Docs/ModuleTypes/tiddlerfield": {
            "title": "$:/language/Docs/ModuleTypes/tiddlerfield",
            "text": "Defines the behaviour of an individual tiddler field."
        },
        "$:/language/Docs/ModuleTypes/tiddlermethod": {
            "title": "$:/language/Docs/ModuleTypes/tiddlermethod",
            "text": "Adds methods to the `$tw.Tiddler` prototype."
        },
        "$:/language/Docs/ModuleTypes/upgrader": {
            "title": "$:/language/Docs/ModuleTypes/upgrader",
            "text": "Applies upgrade processing to tiddlers during an upgrade/import."
        },
        "$:/language/Docs/ModuleTypes/utils": {
            "title": "$:/language/Docs/ModuleTypes/utils",
            "text": "Adds methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/utils-node": {
            "title": "$:/language/Docs/ModuleTypes/utils-node",
            "text": "Adds Node.js-specific methods to `$tw.utils`."
        },
        "$:/language/Docs/ModuleTypes/widget": {
            "title": "$:/language/Docs/ModuleTypes/widget",
            "text": "Widgets encapsulate DOM rendering and refreshing."
        },
        "$:/language/Docs/ModuleTypes/wikimethod": {
            "title": "$:/language/Docs/ModuleTypes/wikimethod",
            "text": "Adds methods to `$tw.Wiki`."
        },
        "$:/language/Docs/ModuleTypes/wikirule": {
            "title": "$:/language/Docs/ModuleTypes/wikirule",
            "text": "Individual parser rules for the main WikiText parser."
        },
        "$:/language/Docs/PaletteColours/alert-background": {
            "title": "$:/language/Docs/PaletteColours/alert-background",
            "text": "Alert background"
        },
        "$:/language/Docs/PaletteColours/alert-border": {
            "title": "$:/language/Docs/PaletteColours/alert-border",
            "text": "Alert border"
        },
        "$:/language/Docs/PaletteColours/alert-highlight": {
            "title": "$:/language/Docs/PaletteColours/alert-highlight",
            "text": "Alert highlight"
        },
        "$:/language/Docs/PaletteColours/alert-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
            "text": "Alert muted foreground"
        },
        "$:/language/Docs/PaletteColours/background": {
            "title": "$:/language/Docs/PaletteColours/background",
            "text": "General background"
        },
        "$:/language/Docs/PaletteColours/blockquote-bar": {
            "title": "$:/language/Docs/PaletteColours/blockquote-bar",
            "text": "Blockquote bar"
        },
        "$:/language/Docs/PaletteColours/button-background": {
            "title": "$:/language/Docs/PaletteColours/button-background",
            "text": "Default button background"
        },
        "$:/language/Docs/PaletteColours/button-border": {
            "title": "$:/language/Docs/PaletteColours/button-border",
            "text": "Default button border"
        },
        "$:/language/Docs/PaletteColours/button-foreground": {
            "title": "$:/language/Docs/PaletteColours/button-foreground",
            "text": "Default button foreground"
        },
        "$:/language/Docs/PaletteColours/dirty-indicator": {
            "title": "$:/language/Docs/PaletteColours/dirty-indicator",
            "text": "Unsaved changes indicator"
        },
        "$:/language/Docs/PaletteColours/code-background": {
            "title": "$:/language/Docs/PaletteColours/code-background",
            "text": "Code background"
        },
        "$:/language/Docs/PaletteColours/code-border": {
            "title": "$:/language/Docs/PaletteColours/code-border",
            "text": "Code border"
        },
        "$:/language/Docs/PaletteColours/code-foreground": {
            "title": "$:/language/Docs/PaletteColours/code-foreground",
            "text": "Code foreground"
        },
        "$:/language/Docs/PaletteColours/download-background": {
            "title": "$:/language/Docs/PaletteColours/download-background",
            "text": "Download button background"
        },
        "$:/language/Docs/PaletteColours/download-foreground": {
            "title": "$:/language/Docs/PaletteColours/download-foreground",
            "text": "Download button foreground"
        },
        "$:/language/Docs/PaletteColours/dragger-background": {
            "title": "$:/language/Docs/PaletteColours/dragger-background",
            "text": "Dragger background"
        },
        "$:/language/Docs/PaletteColours/dragger-foreground": {
            "title": "$:/language/Docs/PaletteColours/dragger-foreground",
            "text": "Dragger foreground"
        },
        "$:/language/Docs/PaletteColours/dropdown-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-background",
            "text": "Dropdown background"
        },
        "$:/language/Docs/PaletteColours/dropdown-border": {
            "title": "$:/language/Docs/PaletteColours/dropdown-border",
            "text": "Dropdown border"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
            "text": "Dropdown tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/dropdown-tab-background": {
            "title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
            "text": "Dropdown tab background"
        },
        "$:/language/Docs/PaletteColours/dropzone-background": {
            "title": "$:/language/Docs/PaletteColours/dropzone-background",
            "text": "Dropzone background"
        },
        "$:/language/Docs/PaletteColours/external-link-background-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-hover",
            "text": "External link background hover"
        },
        "$:/language/Docs/PaletteColours/external-link-background-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-background-visited",
            "text": "External link background visited"
        },
        "$:/language/Docs/PaletteColours/external-link-background": {
            "title": "$:/language/Docs/PaletteColours/external-link-background",
            "text": "External link background"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
            "text": "External link foreground hover"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground-visited": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
            "text": "External link foreground visited"
        },
        "$:/language/Docs/PaletteColours/external-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/external-link-foreground",
            "text": "External link foreground"
        },
        "$:/language/Docs/PaletteColours/foreground": {
            "title": "$:/language/Docs/PaletteColours/foreground",
            "text": "General foreground"
        },
        "$:/language/Docs/PaletteColours/message-background": {
            "title": "$:/language/Docs/PaletteColours/message-background",
            "text": "Message box background"
        },
        "$:/language/Docs/PaletteColours/message-border": {
            "title": "$:/language/Docs/PaletteColours/message-border",
            "text": "Message box border"
        },
        "$:/language/Docs/PaletteColours/message-foreground": {
            "title": "$:/language/Docs/PaletteColours/message-foreground",
            "text": "Message box foreground"
        },
        "$:/language/Docs/PaletteColours/modal-backdrop": {
            "title": "$:/language/Docs/PaletteColours/modal-backdrop",
            "text": "Modal backdrop"
        },
        "$:/language/Docs/PaletteColours/modal-background": {
            "title": "$:/language/Docs/PaletteColours/modal-background",
            "text": "Modal background"
        },
        "$:/language/Docs/PaletteColours/modal-border": {
            "title": "$:/language/Docs/PaletteColours/modal-border",
            "text": "Modal border"
        },
        "$:/language/Docs/PaletteColours/modal-footer-background": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-background",
            "text": "Modal footer background"
        },
        "$:/language/Docs/PaletteColours/modal-footer-border": {
            "title": "$:/language/Docs/PaletteColours/modal-footer-border",
            "text": "Modal footer border"
        },
        "$:/language/Docs/PaletteColours/modal-header-border": {
            "title": "$:/language/Docs/PaletteColours/modal-header-border",
            "text": "Modal header border"
        },
        "$:/language/Docs/PaletteColours/muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/muted-foreground",
            "text": "General muted foreground"
        },
        "$:/language/Docs/PaletteColours/notification-background": {
            "title": "$:/language/Docs/PaletteColours/notification-background",
            "text": "Notification background"
        },
        "$:/language/Docs/PaletteColours/notification-border": {
            "title": "$:/language/Docs/PaletteColours/notification-border",
            "text": "Notification border"
        },
        "$:/language/Docs/PaletteColours/page-background": {
            "title": "$:/language/Docs/PaletteColours/page-background",
            "text": "Page background"
        },
        "$:/language/Docs/PaletteColours/pre-background": {
            "title": "$:/language/Docs/PaletteColours/pre-background",
            "text": "Preformatted code background"
        },
        "$:/language/Docs/PaletteColours/pre-border": {
            "title": "$:/language/Docs/PaletteColours/pre-border",
            "text": "Preformatted code border"
        },
        "$:/language/Docs/PaletteColours/primary": {
            "title": "$:/language/Docs/PaletteColours/primary",
            "text": "General primary"
        },
        "$:/language/Docs/PaletteColours/sidebar-button-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
            "text": "Sidebar button foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
            "text": "Sidebar controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
            "text": "Sidebar controls foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
            "text": "Sidebar foreground shadow"
        },
        "$:/language/Docs/PaletteColours/sidebar-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-foreground",
            "text": "Sidebar foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
            "text": "Sidebar muted foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
            "text": "Sidebar muted foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
            "text": "Sidebar tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-background": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
            "text": "Sidebar tab background"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
            "text": "Sidebar tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-border": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
            "text": "Sidebar tab border"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-divider": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
            "text": "Sidebar tab divider"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
            "text": "Sidebar tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
            "text": "Sidebar tab foreground"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
            "text": "Sidebar tiddler link foreground hover"
        },
        "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
            "text": "Sidebar tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/site-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/site-title-foreground",
            "text": "Site title foreground"
        },
        "$:/language/Docs/PaletteColours/static-alert-foreground": {
            "title": "$:/language/Docs/PaletteColours/static-alert-foreground",
            "text": "Static alert foreground"
        },
        "$:/language/Docs/PaletteColours/tab-background-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-background-selected",
            "text": "Tab background for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-background": {
            "title": "$:/language/Docs/PaletteColours/tab-background",
            "text": "Tab background"
        },
        "$:/language/Docs/PaletteColours/tab-border-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-border-selected",
            "text": "Tab border for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-border": {
            "title": "$:/language/Docs/PaletteColours/tab-border",
            "text": "Tab border"
        },
        "$:/language/Docs/PaletteColours/tab-divider": {
            "title": "$:/language/Docs/PaletteColours/tab-divider",
            "text": "Tab divider"
        },
        "$:/language/Docs/PaletteColours/tab-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
            "text": "Tab foreground for selected tabs"
        },
        "$:/language/Docs/PaletteColours/tab-foreground": {
            "title": "$:/language/Docs/PaletteColours/tab-foreground",
            "text": "Tab foreground"
        },
        "$:/language/Docs/PaletteColours/table-border": {
            "title": "$:/language/Docs/PaletteColours/table-border",
            "text": "Table border"
        },
        "$:/language/Docs/PaletteColours/table-footer-background": {
            "title": "$:/language/Docs/PaletteColours/table-footer-background",
            "text": "Table footer background"
        },
        "$:/language/Docs/PaletteColours/table-header-background": {
            "title": "$:/language/Docs/PaletteColours/table-header-background",
            "text": "Table header background"
        },
        "$:/language/Docs/PaletteColours/tag-background": {
            "title": "$:/language/Docs/PaletteColours/tag-background",
            "text": "Tag background"
        },
        "$:/language/Docs/PaletteColours/tag-foreground": {
            "title": "$:/language/Docs/PaletteColours/tag-foreground",
            "text": "Tag foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-background",
            "text": "Tiddler background"
        },
        "$:/language/Docs/PaletteColours/tiddler-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-border",
            "text": "Tiddler border"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
            "text": "Tiddler controls foreground hover"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
            "text": "Tiddler controls foreground for selected controls"
        },
        "$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
            "text": "Tiddler controls foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
            "text": "Tiddler editor background"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
            "text": "Tiddler editor border image"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
            "text": "Tiddler editor border"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
            "text": "Tiddler editor background for even fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
            "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
            "text": "Tiddler editor background for odd fields"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-background",
            "text": "Tiddler info panel background"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-border": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-border",
            "text": "Tiddler info panel border"
        },
        "$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
            "text": "Tiddler info panel tab background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-background": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-background",
            "text": "Tiddler link background"
        },
        "$:/language/Docs/PaletteColours/tiddler-link-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
            "text": "Tiddler link foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
            "text": "Tiddler subtitle foreground"
        },
        "$:/language/Docs/PaletteColours/tiddler-title-foreground": {
            "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
            "text": "Tiddler title foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-new-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-new-button",
            "text": "Toolbar 'new tiddler' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-options-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-options-button",
            "text": "Toolbar 'options' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-save-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-save-button",
            "text": "Toolbar 'save' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-info-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-info-button",
            "text": "Toolbar 'info' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-edit-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
            "text": "Toolbar 'edit' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-close-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-close-button",
            "text": "Toolbar 'close' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-delete-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
            "text": "Toolbar 'delete' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-cancel-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
            "text": "Toolbar 'cancel' button foreground"
        },
        "$:/language/Docs/PaletteColours/toolbar-done-button": {
            "title": "$:/language/Docs/PaletteColours/toolbar-done-button",
            "text": "Toolbar 'done' button foreground"
        },
        "$:/language/Docs/PaletteColours/untagged-background": {
            "title": "$:/language/Docs/PaletteColours/untagged-background",
            "text": "Untagged pill background"
        },
        "$:/language/Docs/PaletteColours/very-muted-foreground": {
            "title": "$:/language/Docs/PaletteColours/very-muted-foreground",
            "text": "Very muted foreground"
        },
        "$:/language/EditTemplate/Body/External/Hint": {
            "title": "$:/language/EditTemplate/Body/External/Hint",
            "text": "This is an external tiddler stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
        },
        "$:/language/EditTemplate/Body/Placeholder": {
            "title": "$:/language/EditTemplate/Body/Placeholder",
            "text": "Type the text for this tiddler"
        },
        "$:/language/EditTemplate/Body/Preview/Type/Output": {
            "title": "$:/language/EditTemplate/Body/Preview/Type/Output",
            "text": "output"
        },
        "$:/language/EditTemplate/Field/Remove/Caption": {
            "title": "$:/language/EditTemplate/Field/Remove/Caption",
            "text": "remove field"
        },
        "$:/language/EditTemplate/Field/Remove/Hint": {
            "title": "$:/language/EditTemplate/Field/Remove/Hint",
            "text": "Remove field"
        },
        "$:/language/EditTemplate/Fields/Add/Button": {
            "title": "$:/language/EditTemplate/Fields/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
            "text": "field name"
        },
        "$:/language/EditTemplate/Fields/Add/Prompt": {
            "title": "$:/language/EditTemplate/Fields/Add/Prompt",
            "text": "Add a new field:"
        },
        "$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
            "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
            "text": "field value"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/System": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
            "text": "System fields"
        },
        "$:/language/EditTemplate/Fields/Add/Dropdown/User": {
            "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
            "text": "User fields"
        },
        "$:/language/EditTemplate/Shadow/Warning": {
            "title": "$:/language/EditTemplate/Shadow/Warning",
            "text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
        },
        "$:/language/EditTemplate/Shadow/OverriddenWarning": {
            "title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
            "text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
        },
        "$:/language/EditTemplate/Tags/Add/Button": {
            "title": "$:/language/EditTemplate/Tags/Add/Button",
            "text": "add"
        },
        "$:/language/EditTemplate/Tags/Add/Placeholder": {
            "title": "$:/language/EditTemplate/Tags/Add/Placeholder",
            "text": "tag name"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
            "text": "tag list"
        },
        "$:/language/EditTemplate/Tags/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
            "text": "Show tag list"
        },
        "$:/language/EditTemplate/Title/BadCharacterWarning": {
            "title": "$:/language/EditTemplate/Title/BadCharacterWarning",
            "text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
        },
        "$:/language/EditTemplate/Title/Exists/Prompt": {
            "title": "$:/language/EditTemplate/Title/Exists/Prompt",
            "text": "Target tiddler already exists"
        },
        "$:/language/EditTemplate/Title/Relink/Prompt": {
            "title": "$:/language/EditTemplate/Title/Relink/Prompt",
            "text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
        },
        "$:/language/EditTemplate/Type/Dropdown/Caption": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Caption",
            "text": "content type list"
        },
        "$:/language/EditTemplate/Type/Dropdown/Hint": {
            "title": "$:/language/EditTemplate/Type/Dropdown/Hint",
            "text": "Show content type list"
        },
        "$:/language/EditTemplate/Type/Delete/Caption": {
            "title": "$:/language/EditTemplate/Type/Delete/Caption",
            "text": "delete content type"
        },
        "$:/language/EditTemplate/Type/Delete/Hint": {
            "title": "$:/language/EditTemplate/Type/Delete/Hint",
            "text": "Delete content type"
        },
        "$:/language/EditTemplate/Type/Placeholder": {
            "title": "$:/language/EditTemplate/Type/Placeholder",
            "text": "content type"
        },
        "$:/language/EditTemplate/Type/Prompt": {
            "title": "$:/language/EditTemplate/Type/Prompt",
            "text": "Type:"
        },
        "$:/language/Exporters/StaticRiver": {
            "title": "$:/language/Exporters/StaticRiver",
            "text": "Static HTML"
        },
        "$:/language/Exporters/JsonFile": {
            "title": "$:/language/Exporters/JsonFile",
            "text": "JSON file"
        },
        "$:/language/Exporters/CsvFile": {
            "title": "$:/language/Exporters/CsvFile",
            "text": "CSV file"
        },
        "$:/language/Exporters/TidFile": {
            "title": "$:/language/Exporters/TidFile",
            "text": "\".tid\" file"
        },
        "$:/language/Docs/Fields/_canonical_uri": {
            "title": "$:/language/Docs/Fields/_canonical_uri",
            "text": "The full URI of an external image tiddler"
        },
        "$:/language/Docs/Fields/bag": {
            "title": "$:/language/Docs/Fields/bag",
            "text": "The name of the bag from which a tiddler came"
        },
        "$:/language/Docs/Fields/caption": {
            "title": "$:/language/Docs/Fields/caption",
            "text": "The text to be displayed on a tab or button"
        },
        "$:/language/Docs/Fields/color": {
            "title": "$:/language/Docs/Fields/color",
            "text": "The CSS color value associated with a tiddler"
        },
        "$:/language/Docs/Fields/component": {
            "title": "$:/language/Docs/Fields/component",
            "text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
        },
        "$:/language/Docs/Fields/current-tiddler": {
            "title": "$:/language/Docs/Fields/current-tiddler",
            "text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
        },
        "$:/language/Docs/Fields/created": {
            "title": "$:/language/Docs/Fields/created",
            "text": "The date a tiddler was created"
        },
        "$:/language/Docs/Fields/creator": {
            "title": "$:/language/Docs/Fields/creator",
            "text": "The name of the person who created a tiddler"
        },
        "$:/language/Docs/Fields/dependents": {
            "title": "$:/language/Docs/Fields/dependents",
            "text": "For a plugin, lists the dependent plugin titles"
        },
        "$:/language/Docs/Fields/description": {
            "title": "$:/language/Docs/Fields/description",
            "text": "The descriptive text for a plugin, or a modal dialogue"
        },
        "$:/language/Docs/Fields/draft.of": {
            "title": "$:/language/Docs/Fields/draft.of",
            "text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
        },
        "$:/language/Docs/Fields/draft.title": {
            "title": "$:/language/Docs/Fields/draft.title",
            "text": "For draft tiddlers, contains the proposed new title of the tiddler"
        },
        "$:/language/Docs/Fields/footer": {
            "title": "$:/language/Docs/Fields/footer",
            "text": "The footer text for a wizard"
        },
        "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": {
            "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against",
            "text": "A temporary storage field used in [[$:/core/templates/static.content]]"
        },
        "$:/language/Docs/Fields/icon": {
            "title": "$:/language/Docs/Fields/icon",
            "text": "The title of the tiddler containing the icon associated with a tiddler"
        },
        "$:/language/Docs/Fields/library": {
            "title": "$:/language/Docs/Fields/library",
            "text": "If set to \"yes\" indicates that a tiddler should be saved as a JavaScript library"
        },
        "$:/language/Docs/Fields/list": {
            "title": "$:/language/Docs/Fields/list",
            "text": "An ordered list of tiddler titles associated with a tiddler"
        },
        "$:/language/Docs/Fields/list-before": {
            "title": "$:/language/Docs/Fields/list-before",
            "text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
        },
        "$:/language/Docs/Fields/list-after": {
            "title": "$:/language/Docs/Fields/list-after",
            "text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles"
        },
        "$:/language/Docs/Fields/modified": {
            "title": "$:/language/Docs/Fields/modified",
            "text": "The date and time at which a tiddler was last modified"
        },
        "$:/language/Docs/Fields/modifier": {
            "title": "$:/language/Docs/Fields/modifier",
            "text": "The tiddler title associated with the person who last modified a tiddler"
        },
        "$:/language/Docs/Fields/name": {
            "title": "$:/language/Docs/Fields/name",
            "text": "The human readable name associated with a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-priority": {
            "title": "$:/language/Docs/Fields/plugin-priority",
            "text": "A numerical value indicating the priority of a plugin tiddler"
        },
        "$:/language/Docs/Fields/plugin-type": {
            "title": "$:/language/Docs/Fields/plugin-type",
            "text": "The type of plugin in a plugin tiddler"
        },
        "$:/language/Docs/Fields/revision": {
            "title": "$:/language/Docs/Fields/revision",
            "text": "The revision of the tiddler held at the server"
        },
        "$:/language/Docs/Fields/released": {
            "title": "$:/language/Docs/Fields/released",
            "text": "Date of a TiddlyWiki release"
        },
        "$:/language/Docs/Fields/source": {
            "title": "$:/language/Docs/Fields/source",
            "text": "The source URL associated with a tiddler"
        },
        "$:/language/Docs/Fields/subtitle": {
            "title": "$:/language/Docs/Fields/subtitle",
            "text": "The subtitle text for a wizard"
        },
        "$:/language/Docs/Fields/tags": {
            "title": "$:/language/Docs/Fields/tags",
            "text": "A list of tags associated with a tiddler"
        },
        "$:/language/Docs/Fields/text": {
            "title": "$:/language/Docs/Fields/text",
            "text": "The body text of a tiddler"
        },
        "$:/language/Docs/Fields/title": {
            "title": "$:/language/Docs/Fields/title",
            "text": "The unique name of a tiddler"
        },
        "$:/language/Docs/Fields/type": {
            "title": "$:/language/Docs/Fields/type",
            "text": "The content type of a tiddler"
        },
        "$:/language/Docs/Fields/version": {
            "title": "$:/language/Docs/Fields/version",
            "text": "Version information for a plugin"
        },
        "$:/language/Filters/AllTiddlers": {
            "title": "$:/language/Filters/AllTiddlers",
            "text": "All tiddlers except system tiddlers"
        },
        "$:/language/Filters/RecentSystemTiddlers": {
            "title": "$:/language/Filters/RecentSystemTiddlers",
            "text": "Recently modified tiddlers, including system tiddlers"
        },
        "$:/language/Filters/RecentTiddlers": {
            "title": "$:/language/Filters/RecentTiddlers",
            "text": "Recently modified tiddlers"
        },
        "$:/language/Filters/AllTags": {
            "title": "$:/language/Filters/AllTags",
            "text": "All tags except system tags"
        },
        "$:/language/Filters/Missing": {
            "title": "$:/language/Filters/Missing",
            "text": "Missing tiddlers"
        },
        "$:/language/Filters/Drafts": {
            "title": "$:/language/Filters/Drafts",
            "text": "Draft tiddlers"
        },
        "$:/language/Filters/Orphans": {
            "title": "$:/language/Filters/Orphans",
            "text": "Orphan tiddlers"
        },
        "$:/language/Filters/SystemTiddlers": {
            "title": "$:/language/Filters/SystemTiddlers",
            "text": "System tiddlers"
        },
        "$:/language/Filters/ShadowTiddlers": {
            "title": "$:/language/Filters/ShadowTiddlers",
            "text": "Shadow tiddlers"
        },
        "$:/language/Filters/OverriddenShadowTiddlers": {
            "title": "$:/language/Filters/OverriddenShadowTiddlers",
            "text": "Overridden shadow tiddlers"
        },
        "$:/language/Filters/SystemTags": {
            "title": "$:/language/Filters/SystemTags",
            "text": "System tags"
        },
        "$:/language/Filters/StoryList": {
            "title": "$:/language/Filters/StoryList",
            "text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
        },
        "$:/language/Filters/TypedTiddlers": {
            "title": "$:/language/Filters/TypedTiddlers",
            "text": "Non wiki-text tiddlers"
        },
        "GettingStarted": {
            "title": "GettingStarted",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is important to make sure that you can reliably save changes. See http://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
        },
        "$:/language/Help/build": {
            "title": "$:/language/Help/build",
            "description": "Automatically run configured commands",
            "text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
        },
        "$:/language/Help/clearpassword": {
            "title": "$:/language/Help/clearpassword",
            "description": "Clear a password for subsequent crypto operations",
            "text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
        },
        "$:/language/Help/default": {
            "title": "$:/language/Help/default",
            "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
        },
        "$:/language/Help/editions": {
            "title": "$:/language/Help/editions",
            "description": "Lists the available editions of TiddlyWiki",
            "text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
        },
        "$:/language/Help/fetch": {
            "title": "$:/language/Help/fetch",
            "description": "Fetch tiddlers from wiki by URL",
            "text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n```\n\nWith the \"file\" variant only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" variant, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nThe `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nThe `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from http://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"http://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n"
        },
        "$:/language/Help/help": {
            "title": "$:/language/Help/help",
            "description": "Display help for TiddlyWiki commands",
            "text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
        },
        "$:/language/Help/init": {
            "title": "$:/language/Help/init",
            "description": "Initialise a new wiki folder",
            "text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
        },
        "$:/language/Help/load": {
            "title": "$:/language/Help/load",
            "description": "Load tiddlers from a file",
            "text": "Load tiddlers from 2.x.x TiddlyWiki files (`.html`), `.tiddler`, `.tid`, `.json` or other files\n\n```\n--load <filepath>\n```\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
        },
        "$:/language/Help/makelibrary": {
            "title": "$:/language/Help/makelibrary",
            "description": "Construct library plugin required by upgrade process",
            "text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
        },
        "$:/language/Help/notfound": {
            "title": "$:/language/Help/notfound",
            "text": "No such help item"
        },
        "$:/language/Help/output": {
            "title": "$:/language/Help/output",
            "description": "Set the base output directory for subsequent commands",
            "text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
        },
        "$:/language/Help/password": {
            "title": "$:/language/Help/password",
            "description": "Set a password for subsequent crypto operations",
            "text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
        },
        "$:/language/Help/rendertiddler": {
            "title": "$:/language/Help/rendertiddler",
            "description": "Render an individual tiddler as a specified ContentType",
            "text": "Render an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
        },
        "$:/language/Help/rendertiddlers": {
            "title": "$:/language/Help/rendertiddlers",
            "description": "Render tiddlers matching a filter to a specified ContentType",
            "text": "Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
        },
        "$:/language/Help/savetiddler": {
            "title": "$:/language/Help/savetiddler",
            "description": "Saves a raw tiddler to a file",
            "text": "Saves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
        },
        "$:/language/Help/savetiddlers": {
            "title": "$:/language/Help/savetiddlers",
            "description": "Saves a group of raw tiddlers to a directory",
            "text": "Saves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
        },
        "$:/language/Help/server": {
            "title": "$:/language/Help/server",
            "description": "Provides an HTTP server interface to TiddlyWiki",
            "text": "The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.\n\nAt the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\nThe parameters are:\n\n* ''port'' - port number to serve from (defaults to \"8080\")\n* ''roottiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''servetype'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''pathprefix'' - optional prefix for paths\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation isn't suitable for general use.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port.\n"
        },
        "$:/language/Help/setfield": {
            "title": "$:/language/Help/setfield",
            "description": "Prepares external tiddlers for use",
            "text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
        },
        "$:/language/Help/unpackplugin": {
            "title": "$:/language/Help/unpackplugin",
            "description": "Unpack the payload tiddlers from a plugin",
            "text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
        },
        "$:/language/Help/verbose": {
            "title": "$:/language/Help/verbose",
            "description": "Triggers verbose output mode",
            "text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
        },
        "$:/language/Help/version": {
            "title": "$:/language/Help/version",
            "description": "Displays the version number of TiddlyWiki",
            "text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
        },
        "$:/language/Import/Imported/Hint": {
            "title": "$:/language/Import/Imported/Hint",
            "text": "The following tiddlers were imported:"
        },
        "$:/language/Import/Listing/Cancel/Caption": {
            "title": "$:/language/Import/Listing/Cancel/Caption",
            "text": "Cancel"
        },
        "$:/language/Import/Listing/Hint": {
            "title": "$:/language/Import/Listing/Hint",
            "text": "These tiddlers are ready to import:"
        },
        "$:/language/Import/Listing/Import/Caption": {
            "title": "$:/language/Import/Listing/Import/Caption",
            "text": "Import"
        },
        "$:/language/Import/Listing/Select/Caption": {
            "title": "$:/language/Import/Listing/Select/Caption",
            "text": "Select"
        },
        "$:/language/Import/Listing/Status/Caption": {
            "title": "$:/language/Import/Listing/Status/Caption",
            "text": "Status"
        },
        "$:/language/Import/Listing/Title/Caption": {
            "title": "$:/language/Import/Listing/Title/Caption",
            "text": "Title"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
            "text": "Blocked incompatible or obsolete plugin"
        },
        "$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
            "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
            "text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
        },
        "$:/language/Import/Upgrader/Plugins/Upgraded": {
            "title": "$:/language/Import/Upgrader/Plugins/Upgraded",
            "text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
        },
        "$:/language/Import/Upgrader/State/Suppressed": {
            "title": "$:/language/Import/Upgrader/State/Suppressed",
            "text": "Blocked temporary state tiddler"
        },
        "$:/language/Import/Upgrader/System/Suppressed": {
            "title": "$:/language/Import/Upgrader/System/Suppressed",
            "text": "Blocked system tiddler"
        },
        "$:/language/Import/Upgrader/ThemeTweaks/Created": {
            "title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
            "text": "Migrated theme tweak from <$text text=<<from>>/>"
        },
        "$:/language/AboveStory/ClassicPlugin/Warning": {
            "title": "$:/language/AboveStory/ClassicPlugin/Warning",
            "text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|http://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
        },
        "$:/language/BinaryWarning/Prompt": {
            "title": "$:/language/BinaryWarning/Prompt",
            "text": "This tiddler contains binary data"
        },
        "$:/language/ClassicWarning/Hint": {
            "title": "$:/language/ClassicWarning/Hint",
            "text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See http://tiddlywiki.com/static/Upgrading.html for more details."
        },
        "$:/language/ClassicWarning/Upgrade/Caption": {
            "title": "$:/language/ClassicWarning/Upgrade/Caption",
            "text": "upgrade"
        },
        "$:/language/CloseAll/Button": {
            "title": "$:/language/CloseAll/Button",
            "text": "close all"
        },
        "$:/language/ColourPicker/Recent": {
            "title": "$:/language/ColourPicker/Recent",
            "text": "Recent:"
        },
        "$:/language/ConfirmCancelTiddler": {
            "title": "$:/language/ConfirmCancelTiddler",
            "text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmDeleteTiddler": {
            "title": "$:/language/ConfirmDeleteTiddler",
            "text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmOverwriteTiddler": {
            "title": "$:/language/ConfirmOverwriteTiddler",
            "text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
        },
        "$:/language/ConfirmEditShadowTiddler": {
            "title": "$:/language/ConfirmEditShadowTiddler",
            "text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
        },
        "$:/language/Count": {
            "title": "$:/language/Count",
            "text": "count"
        },
        "$:/language/DefaultNewTiddlerTitle": {
            "title": "$:/language/DefaultNewTiddlerTitle",
            "text": "New Tiddler"
        },
        "$:/language/DropMessage": {
            "title": "$:/language/DropMessage",
            "text": "Drop here (or use the 'Escape' key to cancel)"
        },
        "$:/language/Encryption/Cancel": {
            "title": "$:/language/Encryption/Cancel",
            "text": "Cancel"
        },
        "$:/language/Encryption/ConfirmClearPassword": {
            "title": "$:/language/Encryption/ConfirmClearPassword",
            "text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
        },
        "$:/language/Encryption/PromptSetPassword": {
            "title": "$:/language/Encryption/PromptSetPassword",
            "text": "Set a new password for this TiddlyWiki"
        },
        "$:/language/Encryption/Username": {
            "title": "$:/language/Encryption/Username",
            "text": "Username"
        },
        "$:/language/Encryption/Password": {
            "title": "$:/language/Encryption/Password",
            "text": "Password"
        },
        "$:/language/Encryption/RepeatPassword": {
            "title": "$:/language/Encryption/RepeatPassword",
            "text": "Repeat password"
        },
        "$:/language/Encryption/PasswordNoMatch": {
            "title": "$:/language/Encryption/PasswordNoMatch",
            "text": "Passwords do not match"
        },
        "$:/language/Encryption/SetPassword": {
            "title": "$:/language/Encryption/SetPassword",
            "text": "Set password"
        },
        "$:/language/Error/Caption": {
            "title": "$:/language/Error/Caption",
            "text": "Error"
        },
        "$:/language/Error/EditConflict": {
            "title": "$:/language/Error/EditConflict",
            "text": "File changed on server"
        },
        "$:/language/Error/Filter": {
            "title": "$:/language/Error/Filter",
            "text": "Filter error"
        },
        "$:/language/Error/FilterSyntax": {
            "title": "$:/language/Error/FilterSyntax",
            "text": "Syntax error in filter expression"
        },
        "$:/language/Error/IsFilterOperator": {
            "title": "$:/language/Error/IsFilterOperator",
            "text": "Filter Error: Unknown operand for the 'is' filter operator"
        },
        "$:/language/Error/LoadingPluginLibrary": {
            "title": "$:/language/Error/LoadingPluginLibrary",
            "text": "Error loading plugin library"
        },
        "$:/language/Error/RecursiveTransclusion": {
            "title": "$:/language/Error/RecursiveTransclusion",
            "text": "Recursive transclusion error in transclude widget"
        },
        "$:/language/Error/RetrievingSkinny": {
            "title": "$:/language/Error/RetrievingSkinny",
            "text": "Error retrieving skinny tiddler list"
        },
        "$:/language/Error/SavingToTWEdit": {
            "title": "$:/language/Error/SavingToTWEdit",
            "text": "Error saving to TWEdit"
        },
        "$:/language/Error/WhileSaving": {
            "title": "$:/language/Error/WhileSaving",
            "text": "Error while saving"
        },
        "$:/language/Error/XMLHttpRequest": {
            "title": "$:/language/Error/XMLHttpRequest",
            "text": "XMLHttpRequest error code"
        },
        "$:/language/InternalJavaScriptError/Title": {
            "title": "$:/language/InternalJavaScriptError/Title",
            "text": "Internal JavaScript Error"
        },
        "$:/language/InternalJavaScriptError/Hint": {
            "title": "$:/language/InternalJavaScriptError/Hint",
            "text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
        },
        "$:/language/InvalidFieldName": {
            "title": "$:/language/InvalidFieldName",
            "text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
        },
        "$:/language/LazyLoadingWarning": {
            "title": "$:/language/LazyLoadingWarning",
            "text": "<p>Loading external text from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear you may be using a browser that doesn't support external text in this configuration. See http://tiddlywiki.com/#ExternalText</p>"
        },
        "$:/language/LoginToTiddlySpace": {
            "title": "$:/language/LoginToTiddlySpace",
            "text": "Login to TiddlySpace"
        },
        "$:/language/Manager/Controls/FilterByTag/None": {
            "title": "$:/language/Manager/Controls/FilterByTag/None",
            "text": "(none)"
        },
        "$:/language/Manager/Controls/FilterByTag/Prompt": {
            "title": "$:/language/Manager/Controls/FilterByTag/Prompt",
            "text": "Filter by tag:"
        },
        "$:/language/Manager/Controls/Order/Prompt": {
            "title": "$:/language/Manager/Controls/Order/Prompt",
            "text": "Reverse order"
        },
        "$:/language/Manager/Controls/Search/Placeholder": {
            "title": "$:/language/Manager/Controls/Search/Placeholder",
            "text": "Search"
        },
        "$:/language/Manager/Controls/Search/Prompt": {
            "title": "$:/language/Manager/Controls/Search/Prompt",
            "text": "Search:"
        },
        "$:/language/Manager/Controls/Show/Option/Tags": {
            "title": "$:/language/Manager/Controls/Show/Option/Tags",
            "text": "tags"
        },
        "$:/language/Manager/Controls/Show/Option/Tiddlers": {
            "title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
            "text": "tiddlers"
        },
        "$:/language/Manager/Controls/Show/Prompt": {
            "title": "$:/language/Manager/Controls/Show/Prompt",
            "text": "Show:"
        },
        "$:/language/Manager/Controls/Sort/Prompt": {
            "title": "$:/language/Manager/Controls/Sort/Prompt",
            "text": "Sort by:"
        },
        "$:/language/Manager/Item/Colour": {
            "title": "$:/language/Manager/Item/Colour",
            "text": "Colour"
        },
        "$:/language/Manager/Item/Fields": {
            "title": "$:/language/Manager/Item/Fields",
            "text": "Fields"
        },
        "$:/language/Manager/Item/Icon/None": {
            "title": "$:/language/Manager/Item/Icon/None",
            "text": "(none)"
        },
        "$:/language/Manager/Item/Icon": {
            "title": "$:/language/Manager/Item/Icon",
            "text": "Icon"
        },
        "$:/language/Manager/Item/RawText": {
            "title": "$:/language/Manager/Item/RawText",
            "text": "Raw text"
        },
        "$:/language/Manager/Item/Tags": {
            "title": "$:/language/Manager/Item/Tags",
            "text": "Tags"
        },
        "$:/language/Manager/Item/Tools": {
            "title": "$:/language/Manager/Item/Tools",
            "text": "Tools"
        },
        "$:/language/Manager/Item/WikifiedText": {
            "title": "$:/language/Manager/Item/WikifiedText",
            "text": "Wikified text"
        },
        "$:/language/MissingTiddler/Hint": {
            "title": "$:/language/MissingTiddler/Hint",
            "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" - click {{$:/core/images/edit-button}} to create"
        },
        "$:/language/No": {
            "title": "$:/language/No",
            "text": "No"
        },
        "$:/language/OfficialPluginLibrary": {
            "title": "$:/language/OfficialPluginLibrary",
            "text": "Official ~TiddlyWiki Plugin Library"
        },
        "$:/language/OfficialPluginLibrary/Hint": {
            "title": "$:/language/OfficialPluginLibrary/Hint",
            "text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
        },
        "$:/language/PluginReloadWarning": {
            "title": "$:/language/PluginReloadWarning",
            "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect"
        },
        "$:/language/RecentChanges/DateFormat": {
            "title": "$:/language/RecentChanges/DateFormat",
            "text": "DDth MMM YYYY"
        },
        "$:/language/SystemTiddler/Tooltip": {
            "title": "$:/language/SystemTiddler/Tooltip",
            "text": "This is a system tiddler"
        },
        "$:/language/SystemTiddlers/Include/Prompt": {
            "title": "$:/language/SystemTiddlers/Include/Prompt",
            "text": "Include system tiddlers"
        },
        "$:/language/TagManager/Colour/Heading": {
            "title": "$:/language/TagManager/Colour/Heading",
            "text": "Colour"
        },
        "$:/language/TagManager/Count/Heading": {
            "title": "$:/language/TagManager/Count/Heading",
            "text": "Count"
        },
        "$:/language/TagManager/Icon/Heading": {
            "title": "$:/language/TagManager/Icon/Heading",
            "text": "Icon"
        },
        "$:/language/TagManager/Info/Heading": {
            "title": "$:/language/TagManager/Info/Heading",
            "text": "Info"
        },
        "$:/language/TagManager/Tag/Heading": {
            "title": "$:/language/TagManager/Tag/Heading",
            "text": "Tag"
        },
        "$:/language/Tiddler/DateFormat": {
            "title": "$:/language/Tiddler/DateFormat",
            "text": "DDth MMM YYYY at hh12:0mmam"
        },
        "$:/language/UnsavedChangesWarning": {
            "title": "$:/language/UnsavedChangesWarning",
            "text": "You have unsaved changes in TiddlyWiki"
        },
        "$:/language/Yes": {
            "title": "$:/language/Yes",
            "text": "Yes"
        },
        "$:/language/Modals/Download": {
            "title": "$:/language/Modals/Download",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Download changes",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://tiddlywiki.com/static/DownloadingChanges.html",
            "text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
        },
        "$:/language/Modals/SaveInstructions": {
            "title": "$:/language/Modals/SaveInstructions",
            "type": "text/vnd.tiddlywiki",
            "subtitle": "Save your work",
            "footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
            "help": "http://tiddlywiki.com/static/SavingChanges.html",
            "text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
        },
        "$:/config/NewJournal/Title": {
            "title": "$:/config/NewJournal/Title",
            "text": "DDth MMM YYYY"
        },
        "$:/config/NewJournal/Text": {
            "title": "$:/config/NewJournal/Text",
            "text": ""
        },
        "$:/config/NewJournal/Tags": {
            "title": "$:/config/NewJournal/Tags",
            "text": "Journal"
        },
        "$:/language/Notifications/Save/Done": {
            "title": "$:/language/Notifications/Save/Done",
            "text": "Saved wiki"
        },
        "$:/language/Notifications/Save/Starting": {
            "title": "$:/language/Notifications/Save/Starting",
            "text": "Starting to save wiki"
        },
        "$:/language/Search/DefaultResults/Caption": {
            "title": "$:/language/Search/DefaultResults/Caption",
            "text": "List"
        },
        "$:/language/Search/Filter/Caption": {
            "title": "$:/language/Search/Filter/Caption",
            "text": "Filter"
        },
        "$:/language/Search/Filter/Hint": {
            "title": "$:/language/Search/Filter/Hint",
            "text": "Search via a [[filter expression|http://tiddlywiki.com/static/Filters.html]]"
        },
        "$:/language/Search/Filter/Matches": {
            "title": "$:/language/Search/Filter/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches": {
            "title": "$:/language/Search/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Matches/All": {
            "title": "$:/language/Search/Matches/All",
            "text": "All matches:"
        },
        "$:/language/Search/Matches/Title": {
            "title": "$:/language/Search/Matches/Title",
            "text": "Title matches:"
        },
        "$:/language/Search/Search": {
            "title": "$:/language/Search/Search",
            "text": "Search"
        },
        "$:/language/Search/Search/TooShort": {
            "title": "$:/language/Search/Search/TooShort",
            "text": "Search text too short"
        },
        "$:/language/Search/Shadows/Caption": {
            "title": "$:/language/Search/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/Search/Shadows/Hint": {
            "title": "$:/language/Search/Shadows/Hint",
            "text": "Search for shadow tiddlers"
        },
        "$:/language/Search/Shadows/Matches": {
            "title": "$:/language/Search/Shadows/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/Standard/Caption": {
            "title": "$:/language/Search/Standard/Caption",
            "text": "Standard"
        },
        "$:/language/Search/Standard/Hint": {
            "title": "$:/language/Search/Standard/Hint",
            "text": "Search for standard tiddlers"
        },
        "$:/language/Search/Standard/Matches": {
            "title": "$:/language/Search/Standard/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/Search/System/Caption": {
            "title": "$:/language/Search/System/Caption",
            "text": "System"
        },
        "$:/language/Search/System/Hint": {
            "title": "$:/language/Search/System/Hint",
            "text": "Search for system tiddlers"
        },
        "$:/language/Search/System/Matches": {
            "title": "$:/language/Search/System/Matches",
            "text": "//<small><<resultCount>> matches</small>//"
        },
        "$:/language/SideBar/All/Caption": {
            "title": "$:/language/SideBar/All/Caption",
            "text": "All"
        },
        "$:/language/SideBar/Contents/Caption": {
            "title": "$:/language/SideBar/Contents/Caption",
            "text": "Contents"
        },
        "$:/language/SideBar/Drafts/Caption": {
            "title": "$:/language/SideBar/Drafts/Caption",
            "text": "Drafts"
        },
        "$:/language/SideBar/Missing/Caption": {
            "title": "$:/language/SideBar/Missing/Caption",
            "text": "Missing"
        },
        "$:/language/SideBar/More/Caption": {
            "title": "$:/language/SideBar/More/Caption",
            "text": "More"
        },
        "$:/language/SideBar/Open/Caption": {
            "title": "$:/language/SideBar/Open/Caption",
            "text": "Open"
        },
        "$:/language/SideBar/Orphans/Caption": {
            "title": "$:/language/SideBar/Orphans/Caption",
            "text": "Orphans"
        },
        "$:/language/SideBar/Recent/Caption": {
            "title": "$:/language/SideBar/Recent/Caption",
            "text": "Recent"
        },
        "$:/language/SideBar/Shadows/Caption": {
            "title": "$:/language/SideBar/Shadows/Caption",
            "text": "Shadows"
        },
        "$:/language/SideBar/System/Caption": {
            "title": "$:/language/SideBar/System/Caption",
            "text": "System"
        },
        "$:/language/SideBar/Tags/Caption": {
            "title": "$:/language/SideBar/Tags/Caption",
            "text": "Tags"
        },
        "$:/language/SideBar/Tags/Untagged/Caption": {
            "title": "$:/language/SideBar/Tags/Untagged/Caption",
            "text": "untagged"
        },
        "$:/language/SideBar/Tools/Caption": {
            "title": "$:/language/SideBar/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/SideBar/Types/Caption": {
            "title": "$:/language/SideBar/Types/Caption",
            "text": "Types"
        },
        "$:/SiteSubtitle": {
            "title": "$:/SiteSubtitle",
            "text": "a non-linear personal web notebook"
        },
        "$:/SiteTitle": {
            "title": "$:/SiteTitle",
            "text": "My ~TiddlyWiki"
        },
        "$:/language/Snippets/ListByTag": {
            "title": "$:/language/Snippets/ListByTag",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "List of tiddlers by tag",
            "text": "<<list-links \"[tag[task]sort[title]]\">>\n"
        },
        "$:/language/Snippets/MacroDefinition": {
            "title": "$:/language/Snippets/MacroDefinition",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Macro definition",
            "text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
        },
        "$:/language/Snippets/Table4x3": {
            "title": "$:/language/Snippets/Table4x3",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table with 4 columns by 3 rows",
            "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
        },
        "$:/language/Snippets/TableOfContents": {
            "title": "$:/language/Snippets/TableOfContents",
            "tags": "$:/tags/TextEditor/Snippet",
            "caption": "Table of Contents",
            "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
        },
        "$:/language/ThemeTweaks/ThemeTweaks": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks",
            "text": "Theme Tweaks"
        },
        "$:/language/ThemeTweaks/ThemeTweaks/Hint": {
            "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
            "text": "You can tweak certain aspects of the ''Vanilla'' theme."
        },
        "$:/language/ThemeTweaks/Options": {
            "title": "$:/language/ThemeTweaks/Options",
            "text": "Options"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout",
            "text": "Sidebar layout"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
            "text": "Fixed story, fluid sidebar"
        },
        "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
            "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
            "text": "Fluid story, fixed sidebar"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles",
            "text": "Sticky titles"
        },
        "$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
            "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
            "text": "Causes tiddler titles to \"stick\" to the top of the browser window. Caution: Does not work at all with Chrome, and causes some layout issues in Firefox"
        },
        "$:/language/ThemeTweaks/Options/CodeWrapping": {
            "title": "$:/language/ThemeTweaks/Options/CodeWrapping",
            "text": "Wrap long lines in code blocks"
        },
        "$:/language/ThemeTweaks/Settings": {
            "title": "$:/language/ThemeTweaks/Settings",
            "text": "Settings"
        },
        "$:/language/ThemeTweaks/Settings/FontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/FontFamily",
            "text": "Font family"
        },
        "$:/language/ThemeTweaks/Settings/CodeFontFamily": {
            "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
            "text": "Code font family"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImage": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
            "text": "Page background image"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
            "text": "Page background image attachment"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
            "text": "Scroll with tiddlers"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
            "text": "Fixed to window"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
            "text": "Page background image size"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
            "text": "Auto"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
            "text": "Cover"
        },
        "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
            "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
            "text": "Contain"
        },
        "$:/language/ThemeTweaks/Metrics": {
            "title": "$:/language/ThemeTweaks/Metrics",
            "text": "Sizes"
        },
        "$:/language/ThemeTweaks/Metrics/FontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/FontSize",
            "text": "Font size"
        },
        "$:/language/ThemeTweaks/Metrics/LineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/LineHeight",
            "text": "Line height"
        },
        "$:/language/ThemeTweaks/Metrics/BodyFontSize": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
            "text": "Font size for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
            "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
            "text": "Line height for tiddler body"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
            "text": "Story left position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
            "text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop",
            "text": "Story top position"
        },
        "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
            "text": "how far the top margin of the story river<br>is from the top of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight",
            "text": "Story right"
        },
        "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
            "text": "how far the left margin of the sidebar <br>is from the left of the page"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
            "text": "Story width"
        },
        "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
            "text": "the overall width of the story river"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
            "text": "Tiddler width"
        },
        "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
            "text": "within the story river"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
            "text": "Sidebar breakpoint"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
            "text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
            "text": "Sidebar width"
        },
        "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
            "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
            "text": "the width of the sidebar in fluid-fixed layout"
        },
        "$:/language/TiddlerInfo/Advanced/Caption": {
            "title": "$:/language/TiddlerInfo/Advanced/Caption",
            "text": "Advanced"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
            "text": "none"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
            "text": "Plugin Details"
        },
        "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
            "text": "This plugin contains the following shadow tiddlers:"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
            "text": "Shadow Status"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
            "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
            "text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
        },
        "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
            "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
            "text": "It is overridden by an ordinary tiddler"
        },
        "$:/language/TiddlerInfo/Fields/Caption": {
            "title": "$:/language/TiddlerInfo/Fields/Caption",
            "text": "Fields"
        },
        "$:/language/TiddlerInfo/List/Caption": {
            "title": "$:/language/TiddlerInfo/List/Caption",
            "text": "List"
        },
        "$:/language/TiddlerInfo/List/Empty": {
            "title": "$:/language/TiddlerInfo/List/Empty",
            "text": "This tiddler does not have a list"
        },
        "$:/language/TiddlerInfo/Listed/Caption": {
            "title": "$:/language/TiddlerInfo/Listed/Caption",
            "text": "Listed"
        },
        "$:/language/TiddlerInfo/Listed/Empty": {
            "title": "$:/language/TiddlerInfo/Listed/Empty",
            "text": "This tiddler is not listed by any others"
        },
        "$:/language/TiddlerInfo/References/Caption": {
            "title": "$:/language/TiddlerInfo/References/Caption",
            "text": "References"
        },
        "$:/language/TiddlerInfo/References/Empty": {
            "title": "$:/language/TiddlerInfo/References/Empty",
            "text": "No tiddlers link to this one"
        },
        "$:/language/TiddlerInfo/Tagging/Caption": {
            "title": "$:/language/TiddlerInfo/Tagging/Caption",
            "text": "Tagging"
        },
        "$:/language/TiddlerInfo/Tagging/Empty": {
            "title": "$:/language/TiddlerInfo/Tagging/Empty",
            "text": "No tiddlers are tagged with this one"
        },
        "$:/language/TiddlerInfo/Tools/Caption": {
            "title": "$:/language/TiddlerInfo/Tools/Caption",
            "text": "Tools"
        },
        "$:/language/Docs/Types/application/javascript": {
            "title": "$:/language/Docs/Types/application/javascript",
            "description": "JavaScript code",
            "name": "application/javascript",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/json": {
            "title": "$:/language/Docs/Types/application/json",
            "description": "JSON data",
            "name": "application/json",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/application/x-tiddler-dictionary": {
            "title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
            "description": "Data dictionary",
            "name": "application/x-tiddler-dictionary",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/image/gif": {
            "title": "$:/language/Docs/Types/image/gif",
            "description": "GIF image",
            "name": "image/gif",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/jpeg": {
            "title": "$:/language/Docs/Types/image/jpeg",
            "description": "JPEG image",
            "name": "image/jpeg",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/png": {
            "title": "$:/language/Docs/Types/image/png",
            "description": "PNG image",
            "name": "image/png",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/svg+xml": {
            "title": "$:/language/Docs/Types/image/svg+xml",
            "description": "Structured Vector Graphics image",
            "name": "image/svg+xml",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/image/x-icon": {
            "title": "$:/language/Docs/Types/image/x-icon",
            "description": "ICO format icon file",
            "name": "image/x-icon",
            "group": "Image",
            "group-sort": "1"
        },
        "$:/language/Docs/Types/text/css": {
            "title": "$:/language/Docs/Types/text/css",
            "description": "Static stylesheet",
            "name": "text/css",
            "group": "Developer",
            "group-sort": "2"
        },
        "$:/language/Docs/Types/text/html": {
            "title": "$:/language/Docs/Types/text/html",
            "description": "HTML markup",
            "name": "text/html",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/plain": {
            "title": "$:/language/Docs/Types/text/plain",
            "description": "Plain text",
            "name": "text/plain",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/vnd.tiddlywiki": {
            "title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
            "description": "TiddlyWiki 5",
            "name": "text/vnd.tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/language/Docs/Types/text/x-tiddlywiki": {
            "title": "$:/language/Docs/Types/text/x-tiddlywiki",
            "description": "TiddlyWiki Classic",
            "name": "text/x-tiddlywiki",
            "group": "Text",
            "group-sort": "0"
        },
        "$:/languages/en-GB/icon": {
            "title": "$:/languages/en-GB/icon",
            "type": "image/svg+xml",
            "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
        },
        "$:/languages/en-GB": {
            "title": "$:/languages/en-GB",
            "name": "en-GB",
            "description": "English (British)",
            "author": "JeremyRuston",
            "core-version": ">=5.0.0\"",
            "text": "Stub pseudo-plugin for the default language"
        },
        "$:/core/modules/commander.js": {
            "text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
            "title": "$:/core/modules/commander.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/commands/build.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/build.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/clearpassword.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/clearpassword.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/editions.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\"    \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/editions.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/fetch.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tvar subcommand = this.params[0],\n\t\turl = this.params[1],\n\t\timportFilter = this.params[2] || \"[all[tiddlers]]\",\n\t\ttransformFilter = this.params[3] || \"\";\n\tswitch(subcommand) {\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: url,\n\t\t\t\timportFilter: importFilter,\n\t\t\t\ttransformFilter: transformFilter,\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: url,\n\t\t\t\timportFilter: importFilter,\n\t\t\t\ttransformFilter: transformFilter,\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback) {\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t    var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t    \tbody = \"\";\n\t    self.commander.write(\"Reading \" + url + \": \");\n\t    response.on(\"data\",function(chunk) {\n\t        body += chunk;\n\t        self.commander.write(\".\");\n\t    });\n\t    response.on(\"end\",function() {\n\t        self.commander.write(\"\\n\");\n\t        if(response.statusCode === 200) {\n\t\t        self.processBody(body,type,options);\n\t\t        callback(null);\n\t        } else {\n\t        \tcallback(\"Error \" + response.statusCode + \" retrieving \" + url)\n\t        }\n\t   \t});\n\t   \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t   \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options) {\n\t// Deserialise the HTML file and put the tiddlers in their own wiki\n\tvar self = this,\n\t\tincomingWiki = new $tw.Wiki(),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body,{});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter);\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/fetch.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/help.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/help.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/init.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/init.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/load.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar ext = path.extname(self.params[0]),\n\t\tstat = fs.statSync(self.params[0]),\n\t\ttiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count) {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/load.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/makelibrary.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));\n\tcollectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers},null,$tw.config.preferences.jsonSpaces)\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/makelibrary.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/output.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/output.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/password.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/rendertiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/rendertiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/rendertiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savelibrarytiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler,null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{text: undefined, readme: readmeContent, icon: iconContent}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savelibrarytiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savetiddler.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/savetiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/savetiddlers.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/server.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\thttp = require(\"http\");\n}\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\n/*\nA simple HTTP server with regexp-based routes\n*/\nfunction SimpleServer(options) {\n\tthis.routes = options.routes || [];\n\tthis.wiki = options.wiki;\n\tthis.variables = options.variables || {};\n}\n\nSimpleServer.prototype.set = function(obj) {\n\tvar self = this;\n\t$tw.utils.each(obj,function(value,name) {\n\t\tself.variables[name] = value;\n\t});\n};\n\nSimpleServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nSimpleServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nSimpleServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"pathprefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length);\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nSimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) {\n\tvar header = request.headers.authorization || \"\",\n\t\ttoken = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tusername = parts[0],\n\t\tpassword = parts[1];\n\tif(incomingUsername === username && incomingPassword === password) {\n\t\treturn \"ALLOWED\";\n\t} else {\n\t\treturn \"DENIED\";\n\t}\n};\n\nSimpleServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Check for the username and password if we've got one\n\tvar username = self.get(\"username\"),\n\t\tpassword = self.get(\"password\");\n\tif(username && password) {\n\t\t// Check they match\n\t\tif(self.checkCredentials(request,username,password) !== \"ALLOWED\") {\n\t\t\tvar servername = state.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\";\n\t\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + servername + '\"'\n\t\t\t});\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Set the encoding for the incoming request\n\t// TODO: Presumably this would need tweaking if we supported PUTting binary tiddlers\n\trequest.setEncoding(\"utf8\");\n\t// Dispatch the appropriate method\n\tswitch(request.method) {\n\t\tcase \"GET\": // Intentional fall-through\n\t\tcase \"DELETE\":\n\t\t\troute.handler(request,response,state);\n\t\t\tbreak;\n\t\tcase \"PUT\":\n\t\t\tvar data = \"\";\n\t\t\trequest.on(\"data\",function(chunk) {\n\t\t\t\tdata += chunk.toString();\n\t\t\t});\n\t\t\trequest.on(\"end\",function() {\n\t\t\t\tstate.data = data;\n\t\t\t\troute.handler(request,response,state);\n\t\t\t});\n\t\t\tbreak;\n\t}\n};\n\t\nSimpleServer.prototype.listen = function(port,host) {\n\thttp.createServer(this.requestHandler.bind(this)).listen(port,host);\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n\t// Set up server\n\tthis.server = new SimpleServer({\n\t\twiki: this.commander.wiki\n\t});\n\t// Add route handlers\n\tthis.server.addRoute({\n\t\tmethod: \"PUT\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\tfields = JSON.parse(state.data);\n\t\t\t// Pull up any subfields in the `fields` object\n\t\t\tif(fields.fields) {\n\t\t\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\t\t\tfields[name] = field;\n\t\t\t\t});\n\t\t\t\tdelete fields.fields;\n\t\t\t}\n\t\t\t// Remove any revision field\n\t\t\tif(fields.revision) {\n\t\t\t\tdelete fields.revision;\n\t\t\t}\n\t\t\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\t\t\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\t\t\tresponse.writeHead(204, \"OK\",{\n\t\t\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"DELETE\",\n\t\tpath: /^\\/bags\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]);\n\t\t\tstate.wiki.deleteTiddler(title);\n\t\t\tresponse.writeHead(204, \"OK\", {\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": state.server.get(\"serveType\")});\n\t\t\tvar text = state.wiki.renderTiddler(state.server.get(\"renderType\"),state.server.get(\"rootTiddler\"));\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/status$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar text = JSON.stringify({\n\t\t\t\tusername: state.server.get(\"username\"),\n\t\t\t\tspace: {\n\t\t\t\t\trecipe: \"default\"\n\t\t\t\t},\n\t\t\t\ttiddlywiki_version: $tw.version\n\t\t\t});\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/favicon.ico$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\t\t\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\t\t\tresponse.end(buffer,\"base64\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers.json$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar tiddlers = [];\n\t\t\tstate.wiki.forEachTiddler({sortField: \"title\"},function(title,tiddler) {\n\t\t\t\tvar tiddlerFields = {};\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tif(name !== \"text\") {\n\t\t\t\t\t\ttiddlerFields[name] = tiddler.getFieldString(name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\ttiddlers.push(tiddlerFields);\n\t\t\t});\n\t\t\tvar text = JSON.stringify(tiddlers);\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\ttiddler = state.wiki.getTiddler(title),\n\t\t\t\ttiddlerFields = {},\n\t\t\t\tknownFields = [\n\t\t\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t\t\t];\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\t\t\ttiddlerFields[name] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t\t\t} else {\n\t\t\t\tresponse.writeHead(404);\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t}\n\t});\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\tvar port = this.params[0] || \"8080\",\n\t\trootTiddler = this.params[1] || \"$:/core/save/all\",\n\t\trenderType = this.params[2] || \"text/plain\",\n\t\tserveType = this.params[3] || \"text/html\",\n\t\tusername = this.params[4],\n\t\tpassword = this.params[5],\n\t\thost = this.params[6] || \"127.0.0.1\",\n\t\tpathprefix = this.params[7];\n\tthis.server.set({\n\t\trootTiddler: rootTiddler,\n\t\trenderType: renderType,\n\t\tserveType: serveType,\n\t\tusername: username,\n\t\tpassword: password,\n\t\tpathprefix: pathprefix\n\t});\n\tthis.server.listen(port,host);\n\tconsole.log(\"Serving on \" + host + \":\" + port);\n\tconsole.log(\"(press ctrl-C to exit)\");\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/server.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/setfield.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/setfield.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/unpackplugin.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/unpackplugin.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/verbose.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n  \" + $tw.boot.logMessages.join(\"\\n  \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/verbose.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/commands/version.js": {
            "text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
            "title": "$:/core/modules/commands/version.js",
            "type": "application/javascript",
            "module-type": "command"
        },
        "$:/core/modules/config.js": {
            "text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter:   \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
            "title": "$:/core/modules/config.js",
            "type": "application/javascript",
            "module-type": "config"
        },
        "$:/core/modules/deserializers.js": {
            "text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
            "title": "$:/core/modules/deserializers.js",
            "type": "application/javascript",
            "module-type": "tiddlerdeserializer"
        },
        "$:/core/modules/editor/engines/framed.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
            "title": "$:/core/modules/editor/engines/framed.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/engines/simple.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus  = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
            "title": "$:/core/modules/editor/engines/simple.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/factory.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag);\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup ||  changedAttributes.rows || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\t\t\t\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t    clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t    el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
            "title": "$:/core/modules/editor/factory.js",
            "type": "application/javascript",
            "module-type": "library"
        },
        "$:/core/modules/editor/operations/bitmap/clear.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/bitmap/clear.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/bitmap/resize.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/bitmap/resize.js",
            "type": "application/javascript",
            "module-type": "bitmapeditoroperation"
        },
        "$:/core/modules/editor/operations/text/excise.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ?  [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/excise.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/make-link.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/make-link.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/prefix-lines.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,event.paramObject.count);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== event.paramObject.count) {\n\t\t\t// Apply the prefix\n\t\t\tline =  prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/prefix-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-all.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/replace-all.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/replace-selection.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/replace-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-lines.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/wrap-lines.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/editor/operations/text/wrap-selection.js": {
            "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix unless they comprise the entire text\n\t\t\tif(operation.selStart > event.paramObject.prefix.length || (operation.selEnd + event.paramObject.suffix.length) < operation.text.length ) {\n\t\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\t\toperation.replacement = \"\";\n\t\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t\t}\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/editor/operations/text/wrap-selection.js",
            "type": "application/javascript",
            "module-type": "texteditoroperation"
        },
        "$:/core/modules/filters/addprefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/addprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/addsuffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/addsuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/after.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/after.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/all/current.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/current.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/missing.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/missing.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/orphans.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/orphans.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/shadows.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/shadows.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tags.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/tags.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all/tiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all/tiddlers.js",
            "type": "application/javascript",
            "module-type": "allfilteroperator"
        },
        "$:/core/modules/filters/all.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/all.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/backlinks.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/backlinks.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/before.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/before.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/commands.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/commands.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/count.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
            "title": "$:/core/modules/filters/count.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/days.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/days.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/each.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\t\tvalue,values = {},\n\t\tfield = operator.operand || \"title\";\n\tif(operator.suffix !== \"list-item\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvalue = (field === \"title\") ? title : tiddler.getFieldString(field);\n\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/each.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/eachday.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/eachday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editiondescription.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editiondescription.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/editions.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/editions.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/decodeuricomponent.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(decodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/decodeuricomponent.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/enlist.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar list = $tw.utils.parseStringArray(operator.operand);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/enlist.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/field.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/field.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/fields.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/fields.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/get.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/get.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/getindex.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/getindex.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/has.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/has.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/haschanged.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/haschanged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/indexes.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/indexes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/insertbefore.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/insertbefore.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/is/current.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/current.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/image.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/missing.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/missing.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/orphan.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/orphan.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/shadow.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/shadow.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/system.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/system.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tag.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/tag.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is/tiddler.js",
            "type": "application/javascript",
            "module-type": "isfilteroperator"
        },
        "$:/core/modules/filters/is.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/is.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/limit.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/limit.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/links.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/links.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/list.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listed.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/listed.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\t\t\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
            "title": "$:/core/modules/filters/listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/minlength.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/minlength.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/modules.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/modules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/moduletypes.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/moduletypes.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/next.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/next.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/plugintiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/plugintiddlers.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/prefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/prefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/previous.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/previous.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/regexp.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/regexp.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removeprefix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/removeprefix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/removesuffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/removesuffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sameday.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/sameday.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/search.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffix) {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: operator.suffix\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/filters/search.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/shadowsource.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/shadowsource.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/sort.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/sort.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/splitbefore.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/splitbefore.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/storyviews.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/storyviews.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/suffix.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/suffix.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tag.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [];\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !tiddler.hasTag(operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && tiddler.hasTag(operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tag.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tagging.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tagging.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/tags.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
            "title": "$:/core/modules/filters/tags.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/title.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/title.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/untagged.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/untagged.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/wikiparserrules.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
            "title": "$:/core/modules/filters/wikiparserrules.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters/x-listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n    /*jslint node: true, browser: true */\n    /*global $tw: false */\n    \"use strict\";\n\n    /*\n    Fetch titles from the current list\n    */\n    var prepare_results = function (source) {\n    var results = [];\n        source(function (tiddler, title) {\n            results.push(title);\n        });\n        return results;\n    };\n\n    /*\n    Moves a number of items from the tail of the current list before the item named in the operand\n    */\n    exports.putbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list after the item named in the operand\n    */\n    exports.putafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -1) :\n            results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Replaces the item named in the operand with a number of items from the tail of the current list\n    */\n    exports.replace = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1;\n        return (index === -1) ?\n            results.slice(0, -count) :\n            results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n    };\n\n    /*\n    Moves a number of items from the tail of the current list to the head of the list\n    */\n    exports.putfirst = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(-count).concat(results.slice(0, -count));\n    };\n\n    /*\n    Moves a number of items from the head of the current list to the tail of the list\n    */\n    exports.putlast = function (source, operator) {\n        var results = prepare_results(source),\n            count = parseInt(operator.suffix) || 1;\n        return results.slice(count).concat(results.slice(0, count));\n    };\n\n    /*\n    Moves the item named in the operand a number of places forward or backward in the list\n    */\n    exports.move = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand),\n            count = parseInt(operator.suffix) || 1,\n            marker = results.splice(index, 1),\n            offset =  (index + count) > 0 ? index + count : 0;\n        return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n    };\n\n    /*\n    Returns the items from the current list that are after the item named in the operand\n    */\n    exports.allafter = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index === -1 || index > (results.length - 2)) ? [] :\n            (operator.suffix) ? results.slice(index) :\n            results.slice(index + 1);\n    };\n\n    /*\n    Returns the items from the current list that are before the item named in the operand\n    */\n    exports.allbefore = function (source, operator) {\n        var results = prepare_results(source),\n            index = results.indexOf(operator.operand);\n        return (index <= 0) ? [] :\n            (operator.suffix) ? results.slice(0, index + 1) :\n            results.slice(0, index);\n    };\n\n    /*\n    Appends the items listed in the operand array to the tail of the current list\n    */\n    exports.append = function (source, operator) {\n        var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || append.length;\n        return (append.length === 0) ? results :\n            (operator.prefix) ? results.concat(append.slice(-count)) :\n            results.concat(append.slice(0, count));\n    };\n\n    /*\n    Prepends the items listed in the operand array to the head of the current list\n    */\n    exports.prepend = function (source, operator) {\n        var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || prepend.length;\n        return (prepend.length === 0) ? results :\n            (operator.prefix) ? prepend.slice(-count).concat(results) :\n            prepend.slice(0, count).concat(results);\n    };\n\n    /*\n    Returns all items from the current list except the items listed in the operand array\n    */\n    exports.remove = function (source, operator) {\n        var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n            results = prepare_results(source),\n            count = parseInt(operator.suffix) || array.length,\n            p,\n            len,\n            index;\n        len = array.length - 1;\n        for (p = 0; p < count; ++p) {\n            if (operator.prefix) {\n                index = results.indexOf(array[len - p]);\n            } else {\n                index = results.indexOf(array[p]);\n            }\n            if (index !== -1) {\n                results.splice(index, 1);\n            }\n        }\n        return results;\n    };\n\n    /*\n    Returns all items from the current list sorted in the order of the items in the operand array\n    */\n    exports.sortby = function (source, operator) {\n        var results = prepare_results(source);\n        if (!results || results.length < 2) {\n            return results;\n        }\n        var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n        results.sort(function (a, b) {\n            return lookup.indexOf(a) - lookup.indexOf(b);\n        });\n        return results;\n    };\n\n    /*\n    Removes all duplicate items from the current list\n    */\n    exports.unique = function (source, operator) {\n        var results = prepare_results(source);\n        var set = results.reduce(function (a, b) {\n            if (a.indexOf(b) < 0) {\n                a.push(b);\n            }\n            return a;\n        }, []);\n        return set;\n    };\n})();\n",
            "title": "$:/core/modules/filters/x-listops.js",
            "type": "application/javascript",
            "module-type": "filteroperator"
        },
        "$:/core/modules/filters.js": {
            "text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter\",function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/filters.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/info/platform.js": {
            "text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\t// Document location\n\tif($tw.browser) {\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
            "title": "$:/core/modules/info/platform.js",
            "type": "application/javascript",
            "module-type": "info"
        },
        "$:/core/modules/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\tlookupName(\"shortcuts\");\n\t\t\t\tlookupName($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\");\n\t\t\t\tlookupName($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\t\t\t\tlookupName($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t   (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t   (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t   (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t   (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
            "title": "$:/core/modules/keyboard.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/language.js": {
            "text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
            "title": "$:/core/modules/language.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/macros/changecount.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
            "title": "$:/core/modules/macros/changecount.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/contrastcolour.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
            "title": "$:/core/modules/macros/contrastcolour.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/csvtiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
            "title": "$:/core/modules/macros/csvtiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/displayshortcuts.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t    return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/macros/displayshortcuts.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/dumpvariables.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/dumpvariables.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to dump all active variable values\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"dumpvariables\";\n\nexports.params = [\n];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\tvar output = [\"|!Variable |!Value |\"],\n\t\tvariables = [], variable;\n\tfor(variable in this.variables) {\n\t\tvariables.push(variable);\n\t}\n\tvariables.sort();\n\tfor(var index=0; index<variables.length; index++) {\n\t\tvar variable = variables[index];\n\t\toutput.push(\"|\" + variable + \" |<input size=50 value=<<\" + variable + \">>/> |\")\n\t}\n\treturn output.join(\"\\n\");\n};\n\n})();\n",
            "title": "$:/core/modules/macros/dumpvariables.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/jsontiddler.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/jsontiddlers.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter) {\n\tvar tiddlers = this.wiki.filterTiddlers(filter),\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/jsontiddlers.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/makedatauri.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type) {\n\treturn $tw.utils.makeDataUri(text,type);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/makedatauri.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/now.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
            "title": "$:/core/modules/macros/now.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/qualify.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
            "title": "$:/core/modules/macros/qualify.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/resolvepath.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
            "title": "$:/core/modules/macros/resolvepath.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/macros/version.js": {
            "text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
            "title": "$:/core/modules/macros/version.js",
            "type": "application/javascript",
            "module-type": "macro"
        },
        "$:/core/modules/parsers/audioparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/audioparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/csvparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/csvparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/htmlparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/htmlparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/imageparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/imageparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/utils/parseutils.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/parseutils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/parsers/pdfparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/pdfparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/textparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/textparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/videoparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/videoparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/dash.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"&ndash;\" : \"&mdash;\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/entity.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: &copy;\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/extlink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: http://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/heading.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/html.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/html.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[http://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [http://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [http://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|http://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/image.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"p\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/list.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[http://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|http://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/rules.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/syslink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
            "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/table.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/table.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n  <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
            "type": "application/javascript",
            "module-type": "wikirule"
        },
        "$:/core/modules/parsers/wikiparser/wikiparser.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined  && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t//  Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t//  Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,nextMatch.matchIndex)});\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,terminatorMatch.index)});\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,inlineRuleMatch.matchIndex)});\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
            "title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
            "type": "application/javascript",
            "module-type": "parser"
        },
        "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
            "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
            "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/pluginswitcher.js": {
            "text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
            "title": "$:/core/modules/pluginswitcher.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/saver-handler.js": {
            "text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tthis.numChanges = 0;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\",\n\t\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
            "title": "$:/core/modules/saver-handler.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/savers/andtidwiki.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t// Strip the file://\n\tif(pathname.indexOf(\"file://\") === 0) {\n\t\tpathname = pathname.substr(7);\n\t}\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Save the file\n\twindow.twi.saveFile(pathname,text);\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/andtidwiki.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/beaker.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar url = (location.toString()).split(\"#\")[0];\n\tdat.stat(url).then(function(value) {\n\t\tif(value.type === \"directory\") {\n\t\t\turl = url + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(url,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\t\t\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.dat;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/beaker.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/download.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\tfilename = document.location.pathname.substr(p+1);\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/download.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/fsosaver.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/fsosaver.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/manualdownload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/manualdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/msdownload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/msdownload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/put.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err, data, xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\t// Retrieve ETag if available\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"HEAD\",\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(!err) {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t}\n\t\t}\n\t});\n};\n\nPutSaver.prototype.uri = function() {\n\treturn encodeURI(document.location.toString().split(\"#\")[0]);\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text, method, callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = { \"Content-Type\": \"text/html;charset=UTF-8\" };\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err, data, xhr) {\n\t\t\tif(err) {\n\t\t\t\tcallback(err);\n\t\t\t} if(xhr.status === 200 || xhr.status === 201) {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tcallback(null); // success\n\t\t\t} else if(xhr.status === 412) { // edit conflict\n\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\tcallback(message);\n\t\t\t} else {\n\t\t\t\tcallback(xhr.responseText); // fail\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/put.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyfox.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/tiddlyfox.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/tiddlyie.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/tiddlyie.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/twedit.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
            "title": "$:/core/modules/savers/twedit.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/savers/upload.js": {
            "text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
            "title": "$:/core/modules/savers/upload.js",
            "type": "application/javascript",
            "module-type": "saver"
        },
        "$:/core/modules/browser-messaging.js": {
            "text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t  iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\tconsole.log(\"browser-messaging: \",document.location.toString())\n\t\tconsole.log(\"browser-messaging: Received message from\",event.origin);\n\t\tconsole.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
            "title": "$:/core/modules/browser-messaging.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/commands.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/commands.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/favicon.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/favicon.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/info.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin\n\tvar fields = {\n\t\ttitle: \"$:/temp/info-plugin\",\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo();\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/info.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/load-modules.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
            "title": "$:/core/modules/startup/load-modules.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/startup/password.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/render.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar DRAFT_TIDDLER_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n\t})();\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only drafts have changed\n\t\tvar onlyDraftsHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !tiddler.hasField(\"draft.of\")) {\n\t\t\t\tonlyDraftsHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyDraftsHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = DRAFT_TIDDLER_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
            "title": "$:/core/modules/startup/render.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/rootwidget.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the notification  mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tif(document[fullscreen._fullscreenElement]) {\n\t\t\t\tdocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tdocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/startup/rootwidget.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.appVersion);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-US\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget = new widget.widget({\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},{\n\t\t\twiki: $tw.wiki,\n\t\t\tdocument: document\n\t\t});\n\t}\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t} \n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki, dirtyTracking: !$tw.syncadaptor});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/startup.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/story.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers();\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permalink\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permaview\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// If a target tiddler was specified add it to the history stack\n\tif(target && target !== \"\") {\n\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t}\n\t\t$tw.wiki.addToHistory(target);\n\t} else if(storyList.length > 0) {\n\t\t$tw.wiki.addToHistory(storyList[0]);\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\tif(options.updateAddressBar !== \"no\") {\n\t\t// Get the story and the history stack\n\t\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\t\ttargetTiddler = \"\";\n\t\tif(options.targetTiddler) {\n\t\t\ttargetTiddler = options.targetTiddler;\n\t\t} else {\n\t\t\t// The target tiddler is the one at the top of the stack\n\t\t\tif(historyList.length > 0) {\n\t\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t\t}\n\t\t\t// Blank the target tiddler if it isn't present in the story\n\t\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\t\ttargetTiddler = \"\";\n\t\t\t}\n\t\t}\n\t\t// Assemble the location hash\n\t\tif(options.updateAddressBar === \"permalink\") {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t} else {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t}\n\t\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\t\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\t\tif(options.updateHistory === \"yes\") {\n\t\t\t\t// Assign the location hash so that history is updated\n\t\t\t\twindow.location.hash = $tw.locationHash;\n\t\t\t} else {\n\t\t\t\t// We use replace so that browser history isn't affected\n\t\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t\t}\n\t\t}\n\t}\n}\n\n})();\n",
            "title": "$:/core/modules/startup/story.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/startup/windows.js": {
            "text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = title;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
            "title": "$:/core/modules/startup/windows.js",
            "type": "application/javascript",
            "module-type": "startup"
        },
        "$:/core/modules/story.js": {
            "text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
            "title": "$:/core/modules/story.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/storyviews/classic.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar currWidth = targetElement.offsetWidth,\n\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Remove the dom nodes of the widget at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"translateX(0px)\"},\n\t\t{marginBottom:  currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
            "title": "$:/core/modules/storyviews/classic.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/pop.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
            "title": "$:/core/modules/storyviews/pop.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/storyviews/zoomin.js": {
            "text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx =  zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty =  zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
            "title": "$:/core/modules/storyviews/zoomin.js",
            "type": "application/javascript",
            "module-type": "storyview"
        },
        "$:/core/modules/syncer.js": {
            "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store. If a syncadaptor is used then individual tiddlers are synchronised through it. If there is no syncadaptor then the entire wiki is saved via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || this.throttleInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || this.pollTimerInterval;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\")  + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"));\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\t// Tasks are {type: \"load\"/\"save\"/\"delete\", title:, queueTime:, lastModificationTime:}\n\tthis.taskQueue = {}; // Hashmap of tasks yet to be performed\n\tthis.taskInProgress = {}; // Hash of tasks in progress\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.syncToServer(changes);\n\t});\n\t// Browser event handlers\n\tif($tw.browser) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\tself.handleLazyLoadEvent(title);\n\t});\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.filterFn.call(this.wiki);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: tiddler.fields.revision,\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title),\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t});\n};\n\n/*\nCreate an tiddlerInfo structure if it doesn't already exist\n*/\nSyncer.prototype.createTiddlerInfo = function(title) {\n\tif(!$tw.utils.hop(this.tiddlerInfo,title)) {\n\t\tthis.tiddlerInfo[title] = {\n\t\t\trevision: null,\n\t\t\tadaptorInfo: {},\n\t\t\tchangeCount: -1,\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t}\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\treturn (this.numTasksInQueue() > 0) || (this.numTasksInProgress() > 0);\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields,hasBeenLazyLoaded) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(this.wiki.getTiddler(tiddlerFields.title),tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: tiddlerFields.revision,\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title),\n\t\thasBeenLazyLoaded: hasBeenLazyLoaded !== undefined ? hasBeenLazyLoaded : true\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Set the various status tiddlers\n\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\tif(isLoggedIn) {\n\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t} else {\n\t\t\t\tself.wiki.deleteTiddler(self.titleUserName);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tif(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tvar self = this;\n\t\tif(this.pollTimerId) {\n\t\t\tclearTimeout(this.pollTimerId);\n\t\t\tthis.pollTimerId = null;\n\t\t}\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\t// Trigger the next sync\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert($tw.language.getString(\"Error/RetrievingSkinny\") + \":\",err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null;\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Do a full load if we've already got a fat version of the tiddler\n\t\t\t\t\tif(tiddler && tiddler.fields.text !== undefined) {\n\t\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\t\tself.enqueueSyncTask({\n\t\t\t\t\t\t\ttype: \"load\",\n\t\t\t\t\t\t\ttitle: tiddlerFields.title\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Load the skinny version of the tiddler\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields,false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nSynchronise a set of changes to the server\n*/\nSyncer.prototype.syncToServer = function(changes) {\n\tvar self = this,\n\t\tnow = Date.now(),\n\t\tfilteredChanges = this.filterFn.call(this.wiki,function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t$tw.utils.each(changes,function(change,title,object) {\n\t\t// Process the change if it is a deletion of a tiddler we're already syncing, or is on the filtered change list\n\t\tif((change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) || filteredChanges.indexOf(title) !== -1) {\n\t\t\t// Queue a task to sync this tiddler\n\t\t\tself.enqueueSyncTask({\n\t\t\t\ttype: change.deleted ? \"delete\" : \"save\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Don't lazy load the same tiddler twice\n\tvar info = this.tiddlerInfo[title];\n\tif(!info || !info.hasBeenLazyLoaded) {\n\t\tthis.createTiddlerInfo(title);\n\t\tthis.tiddlerInfo[title].hasBeenLazyLoaded = true;\n\t\t// Queue up a sync task to load this tiddler\n\t\tthis.enqueueSyncTask({\n\t\t\ttype: \"load\",\n\t\t\ttitle: title\n\t\t});\t\t\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(null,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nQueue up a sync task. If there is already a pending task for the tiddler, just update the last modification time\n*/\nSyncer.prototype.enqueueSyncTask = function(task) {\n\tvar self = this,\n\t\tnow = Date.now();\n\t// Set the timestamps on this task\n\ttask.queueTime = now;\n\ttask.lastModificationTime = now;\n\t// Fill in some tiddlerInfo if the tiddler is one we haven't seen before\n\tthis.createTiddlerInfo(task.title);\n\t// Bail if this is a save and the tiddler is already at the changeCount that the server has\n\tif(task.type === \"save\" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {\n\t\treturn;\n\t}\n\t// Check if this tiddler is already in the queue\n\tif($tw.utils.hop(this.taskQueue,task.title)) {\n\t\t// this.logger.log(\"Re-queueing up sync task with type:\",task.type,\"title:\",task.title);\n\t\tvar existingTask = this.taskQueue[task.title];\n\t\t// If so, just update the last modification time\n\t\texistingTask.lastModificationTime = task.lastModificationTime;\n\t\t// If the new task is a save then we upgrade the existing task to a save. Thus a pending load is turned into a save if the tiddler changes locally in the meantime. But a pending save is not modified to become a load\n\t\tif(task.type === \"save\" || task.type === \"delete\") {\n\t\t\texistingTask.type = task.type;\n\t\t}\n\t} else {\n\t\t// this.logger.log(\"Queuing up sync task with type:\",task.type,\"title:\",task.title);\n\t\t// If it is not in the queue, insert it\n\t\tthis.taskQueue[task.title] = task;\n\t\tthis.updateDirtyStatus();\n\t}\n\t// Process the queue\n\t$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});\n};\n\n/*\nReturn the number of tasks in progress\n*/\nSyncer.prototype.numTasksInProgress = function() {\n\treturn $tw.utils.count(this.taskInProgress);\n};\n\n/*\nReturn the number of tasks in the queue\n*/\nSyncer.prototype.numTasksInQueue = function() {\n\treturn $tw.utils.count(this.taskQueue);\n};\n\n/*\nTrigger a timeout if one isn't already outstanding\n*/\nSyncer.prototype.triggerTimeout = function() {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},self.taskTimerInterval);\n\t}\n};\n\n/*\nProcess the task queue, performing the next task if appropriate\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress() === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(task) {\n\t\t\t// Remove the task from the queue and add it to the in progress list\n\t\t\tdelete this.taskQueue[task.title];\n\t\t\tthis.taskInProgress[task.title] = task;\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// Dispatch the task\n\t\t\tthis.dispatchTask(task,function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\tself.logger.alert(\"Sync error while processing '\" + task.title + \"':\\n\" + err);\n\t\t\t\t}\n\t\t\t\t// Mark that this task is no longer in progress\n\t\t\t\tdelete self.taskInProgress[task.title];\n\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t// Process the next task\n\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t});\n\t\t} else {\n\t\t\t// Make sure we've set a time if there wasn't a task to perform, but we've still got tasks in the queue\n\t\t\tif(this.numTasksInQueue() > 0) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nChoose the next applicable task\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar self = this,\n\t\tcandidateTask = null,\n\t\tnow = Date.now();\n\t// Select the best candidate task\n\t$tw.utils.each(this.taskQueue,function(task,title) {\n\t\t// Exclude the task if there's one of the same name in progress\n\t\tif($tw.utils.hop(self.taskInProgress,title)) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time\n\t\tif(task.type === \"save\" && (now - task.lastModificationTime) < self.throttleInterval &&\n\t\t\t(now - task.queueTime) < self.fallbackInterval) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is newer than the current best candidate\n\t\tif(candidateTask && candidateTask.queueTime < task.queueTime) {\n\t\t\treturn;\n\t\t}\n\t\t// Now this is our best candidate\n\t\tcandidateTask = task;\n\t});\n\treturn candidateTask;\n};\n\n/*\nDispatch a task and invoke the callback\n*/\nSyncer.prototype.dispatchTask = function(task,callback) {\n\tvar self = this;\n\tif(task.type === \"save\") {\n\t\tvar changeCount = this.wiki.getChangeCount(task.title),\n\t\t\ttiddler = this.wiki.getTiddler(task.title);\n\t\tthis.logger.log(\"Dispatching 'save' task:\",task.title);\n\t\tif(tiddler) {\n\t\t\tthis.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\t// Adjust the info stored about this tiddler\n\t\t\t\tself.tiddlerInfo[task.title] = {\n\t\t\t\t\tchangeCount: changeCount,\n\t\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\t\trevision: revision\n\t\t\t\t};\n\t\t\t\t// Invoke the callback\n\t\t\t\tcallback(null);\n\t\t\t},{\n\t\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.logger.log(\" Not Dispatching 'save' task:\",task.title,\"tiddler does not exist\");\n\t\t\treturn callback(null);\n\t\t}\n\t} else if(task.type === \"load\") {\n\t\t// Load the tiddler\n\t\tthis.logger.log(\"Dispatching 'load' task:\",task.title);\n\t\tthis.syncadaptor.loadTiddler(task.title,function(err,tiddlerFields) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Store the tiddler\n\t\t\tif(tiddlerFields) {\n\t\t\t\tself.storeTiddler(tiddlerFields,true);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else if(task.type === \"delete\") {\n\t\t// Delete the tiddler\n\t\tthis.logger.log(\"Dispatching 'delete' task:\",task.title);\n\t\tthis.syncadaptor.deleteTiddler(task.title,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tdelete self.tiddlerInfo[task.title];\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t});\n\t}\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
            "title": "$:/core/modules/syncer.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = [];\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields.push(field + \": \" + this.getFieldString(field));\n\t\t\t}\n\t\t}\n\t}\n\treturn fields.join(\"\\n\");\n};\n\n/*\nCompare two tiddlers for equality\ntiddler: the tiddler to compare\nexcludeFields: array of field names to exclude from the comparison\n*/\nexports.isEqual = function(tiddler,excludeFields) {\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\treturn false;\n\t}\n\texcludeFields = excludeFields || [];\n\tvar self = this,\n\t\tdifferences = []; // Fields that have differences\n\t// Add to the differences array\n\tfunction addDifference(fieldName) {\n\t\t// Check for this field being excluded\n\t\tif(excludeFields.indexOf(fieldName) === -1) {\n\t\t\t// Save the field as a difference\n\t\t\t$tw.utils.pushTop(differences,fieldName);\n\t\t}\n\t}\n\t// Returns true if the two values of this field are equal\n\tfunction isFieldValueEqual(fieldName) {\n\t\tvar valueA = self.fields[fieldName],\n\t\t\tvalueB = tiddler.fields[fieldName];\n\t\t// Check for identical string values\n\t\tif(typeof(valueA) === \"string\" && typeof(valueB) === \"string\" && valueA === valueB) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check for identical array values\n\t\tif($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise the fields must be different\n\t\treturn false;\n\t}\n\t// Compare our fields\n\tfor(var fieldName in this.fields) {\n\t\tif(!isFieldValueEqual(fieldName)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// There's a difference for every field in the other tiddler that we don't have\n\tfor(fieldName in tiddler.fields) {\n\t\tif(!(fieldName in this.fields)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// Return whether there were any differences\n\treturn differences.length === 0;\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
            "title": "$:/core/modules/tiddler.js",
            "type": "application/javascript",
            "module-type": "tiddlermethod"
        },
        "$:/core/modules/upgraders/plugins.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"] && incomingTiddler.version) {\n\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/plugins.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/system.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/system.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/upgraders/themetweaks.js": {
            "text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
            "title": "$:/core/modules/upgraders/themetweaks.js",
            "type": "application/javascript",
            "module-type": "upgrader"
        },
        "$:/core/modules/utils/crypto.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/utils/crypto.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/animations/slide.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/animations/slide.js",
            "type": "application/javascript",
            "module-type": "animation"
        },
        "$:/core/modules/utils/dom/animator.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/animator.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/browser.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/browser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/csscolorparser.js": {
            "text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n  \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n  \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n  \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n  \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n  \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n  \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n  \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n  \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n  \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n  \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n  \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n  \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n  \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n  \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n  \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n  \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n  \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n  \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n  \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n  \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n  \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n  \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n  \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n  \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n  \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n  \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n  \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n  \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n  \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n  \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n  \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n  \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n  \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n  \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n  \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n  \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n  \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n  \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n  \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n  \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n  \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n  \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n  \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n  \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n  \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n  \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n  \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n  \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n  \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n  \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n  \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n  \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n  \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n  \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n  \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n  \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n  \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n  \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n  \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n  \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n  \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n  \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n  \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n  \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n  \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n  \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n  \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n  \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n  \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n  \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n  \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n  \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n  \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n  \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) {  // Clamp to integer 0 .. 255.\n  i = Math.round(i);  // Seems to be what Chrome does (vs truncation).\n  return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) {  // Clamp to float 0.0 .. 1.0.\n  return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) {  // int or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_byte(parseFloat(str) / 100 * 255);\n  return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) {  // float or percentage.\n  if (str[str.length - 1] === '%')\n    return clamp_css_float(parseFloat(str) / 100);\n  return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n  if (h < 0) h += 1;\n  else if (h > 1) h -= 1;\n\n  if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n  if (h * 2 < 1) return m2;\n  if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n  return m1;\n}\n\nfunction parseCSSColor(css_str) {\n  // Remove all whitespace, not compliant, but should just be more accepting.\n  var str = css_str.replace(/ /g, '').toLowerCase();\n\n  // Color keywords (and transparent) lookup.\n  if (str in kCSSColorTable) return kCSSColorTable[str].slice();  // dup.\n\n  // #abc and #abc123 syntax.\n  if (str[0] === '#') {\n    if (str.length === 4) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xfff)) return null;  // Covers NaN.\n      return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n              (iv & 0xf0) | ((iv & 0xf0) >> 4),\n              (iv & 0xf) | ((iv & 0xf) << 4),\n              1];\n    } else if (str.length === 7) {\n      var iv = parseInt(str.substr(1), 16);  // TODO(deanm): Stricter parsing.\n      if (!(iv >= 0 && iv <= 0xffffff)) return null;  // Covers NaN.\n      return [(iv & 0xff0000) >> 16,\n              (iv & 0xff00) >> 8,\n              iv & 0xff,\n              1];\n    }\n\n    return null;\n  }\n\n  var op = str.indexOf('('), ep = str.indexOf(')');\n  if (op !== -1 && ep + 1 === str.length) {\n    var fname = str.substr(0, op);\n    var params = str.substr(op+1, ep-(op+1)).split(',');\n    var alpha = 1;  // To allow case fallthrough.\n    switch (fname) {\n      case 'rgba':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'rgb':\n        if (params.length !== 3) return null;\n        return [parse_css_int(params[0]),\n                parse_css_int(params[1]),\n                parse_css_int(params[2]),\n                alpha];\n      case 'hsla':\n        if (params.length !== 4) return null;\n        alpha = parse_css_float(params.pop());\n        // Fall through.\n      case 'hsl':\n        if (params.length !== 3) return null;\n        var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360;  // 0 .. 1\n        // NOTE(deanm): According to the CSS spec s/l should only be\n        // percentages, but we don't bother and let float or percentage.\n        var s = parse_css_float(params[1]);\n        var l = parse_css_float(params[2]);\n        var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n        var m1 = l * 2 - m2;\n        return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n                clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n                alpha];\n      default:\n        return null;\n    }\n  }\n\n  return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
            "title": "$:/core/modules/utils/dom/csscolorparser.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t}\n\tel.className = c.join(\" \");\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function() {\n\tif(\"scrollX\" in window) {\n\t\treturn {x: window.scrollX, y: window.scrollY};\n\t} else {\n\t\treturn {x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n    // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight;\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\ttry {\n\t\tif(window.localStorage) {\n\t\t\tlocalStorage.setItem(\"tw5-password-\" + name,password);\n\t\t}\n\t} catch(e) {\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\ttry {\n\t\treturn window.localStorage ? localStorage.getItem(\"tw5-password-\" + name) : \"\";\n\t} catch(e) {\n\t\treturn \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/dragndrop.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [];\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/dragndrop.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/http.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tdata = results.join(\"&\");\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,options.url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e);\n\t}\n\treturn request;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/dom/http.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
            "title": "$:/core/modules/utils/dom/keyboard.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/modal.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = document.createElement(\"div\"),\n\t\tmodalBackdrop = document.createElement(\"div\"),\n\t\tmodalWrapper = document.createElement(\"div\"),\n\t\tmodalHeader = document.createElement(\"div\"),\n\t\theaderTitle = document.createElement(\"h3\"),\n\t\tmodalBody = document.createElement(\"div\"),\n\t\tmodalLink = document.createElement(\"a\"),\n\t\tmodalFooter = document.createElement(\"div\"),\n\t\tmodalFooterHelp = document.createElement(\"span\"),\n\t\tmodalFooterButtons = document.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(document.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler && tiddler.fields && tiddler.fields.help) {\n\t\tvar link = document.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(document.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + window.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\twindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tdocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tdocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tif($tw.pageContainer) {\n\t\t$tw.utils.toggleClass($tw.pageContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/modal.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/notifier.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/notifier.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/popup.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\t// Store the popup details if not already there\n\tif(this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode\n\t\t});\n\t}\n\t// Set the state tiddler\n\toptions.wiki.setTextReference(options.title,\n\t\t\t\"(\" + options.domNode.offsetLeft + \",\" + options.domNode.offsetTop + \",\" + \n\t\t\t\toptions.domNode.offsetWidth + \",\" + options.domNode.offsetHeight + \")\");\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/popup.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/dom/scroller.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\t// Now get ready to scroll the body\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = $tw.utils.getScrollPosition();\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar clientBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\ttop: clientBounds.top + scrollPosition.y,\n\t\t\twidth: clientBounds.width,\n\t\t\theight: clientBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t// targetPos/targetSize - position and size of the target element\n\t// currentPos/currentSize - position and size of the current scroll viewport\n\t// returns: new position of the scroll viewport\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to it's top/left\n\t\t\tif(targetPos <= currentPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\tnewPos = targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\tnewPos = currentPos;\n\t\t\t}\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,window.innerWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,window.innerHeight);\n\t// Only scroll if the position has changed\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\twindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
            "title": "$:/core/modules/utils/dom/scroller.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/edition-info.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
            "title": "$:/core/modules/utils/edition-info.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/fakedom.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis.style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this.style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this.style) {\n\t\t\t\tstyle.push(s + \":\" + this.style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\")\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\tconsole.log(booboo)\n\t\t\t\tthrow \"Cannot get textContent on a raw TW_Element\";\t\t\t\t\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tthrow \"Cannot get formattedTextContent on a raw TW_Element\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
            "title": "$:/core/modules/utils/fakedom.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/filesystem.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = new Buffer(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n})();\n",
            "title": "$:/core/modules/utils/filesystem.js",
            "type": "application/javascript",
            "module-type": "utils-node"
        },
        "$:/core/modules/utils/logger.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName) {\n\tthis.componentName = componentName || \"\";\n}\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tif(console !== undefined && console.log !== undefined) {\n\t\treturn Function.apply.call(console.log, console, [this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)));\n\t}\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\t// Prepare the text of the alert\n\tvar text = Array.prototype.join.call(arguments,\" \");\n\t// Create alert tiddlers in the browser\n\tif($tw.browser) {\n\t\t// Check if there is an existing alert with the same text and the same component\n\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\talertFields,\n\t\t\texistingCount,\n\t\t\tself = this;\n\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t}\n\t\t});\n\t\tif(alertFields) {\n\t\t\texistingCount = alertFields.count || 1;\n\t\t} else {\n\t\t\talertFields = {\n\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\ttext: text,\n\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\tcomponent: this.componentName\n\t\t\t};\n\t\t\texistingCount = 0;\n\t\t}\n\t\talertFields.modified = new Date();\n\t\tif(++existingCount > 1) {\n\t\t\talertFields.count = existingCount;\n\t\t} else {\n\t\t\talertFields.count = undefined;\n\t\t}\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t// Log the alert as well\n\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t} else {\n\t\t// Print an orange message to the console if not in the browser\n\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
            "title": "$:/core/modules/utils/logger.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/parsetree.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
            "title": "$:/core/modules/utils/parsetree.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/performance.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap of current values of measurements\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n}\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tself.measures = {};\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\tfor(var m in self.measures) {\n\t\t\t\tself.logger.log(\"+\" + m + \": \" + self.measures[m].toFixed(2) + \"ms\");\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments),\n\t\t\t\tvalue = self.measures[name] || 0;\n\t\t\tself.measures[name] = value + $tw.utils.timer(startTime);\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
            "title": "$:/core/modules/utils/performance.js",
            "type": "application/javascript",
            "module-type": "global"
        },
        "$:/core/modules/utils/pluginmaker.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
            "title": "$:/core/modules/utils/pluginmaker.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/utils/utils.js": {
            "text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\tconsole.log($tw.node ? \"\\x1b[1;33m\" + text + \"\\x1b[0m\" : text);\n};\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nCheck if an array is equal by value and by reference.\n*/\nexports.isArrayEqual = function(array1,array2) {\n\tif(array1 === array2) {\n\t\treturn true;\n\t}\n\tarray1 = array1 || [];\n\tarray2 = array2 || [];\n\tif(array1.length !== array2.length) {\n\t\treturn false;\n\t}\n\treturn array1.every(function(value,index) {\n\t\treturn value === array2[index];\n\t});\n};\n\n/*\nPush entries onto an array, removing them first if they already exist in the array\n\tarray: array to modify (assumed to be free of duplicates)\n\tvalue: a single value to push or an array of values to push\n*/\nexports.pushTop = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\t// Remove any array entries that are duplicated in the new values\n\t\tif(value.length !== 0) {\n\t\t\tif(array.length !== 0) {\n\t\t\t\tif(value.length < array.length) {\n\t\t\t\t\tfor(t=0; t<value.length; t++) {\n\t\t\t\t\t\tp = array.indexOf(value[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(p,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor(t=array.length-1; t>=0; t--) {\n\t\t\t\t\t\tp = value.indexOf(array[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(t,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Push the values on top of the main array\n\t\t\tarray.push.apply(array,value);\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t\tarray.push(value);\n\t}\n\treturn array;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\",   duration:      365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\",  duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\",    duration:            24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\",   duration:                 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration:                      60 * 1000},\n\t\t{name: \"Seconds\", duration:                           1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&amp;\", < to \"&lt;\", > to \"&gt;\", \" to \"&quot;\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&amp;\").replace(/</mg,\"&lt;\").replace(/>/mg,\"&gt;\").replace(/\\\"/mg,\"&quot;\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2); // Strip the & and the ;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\treturn converter(parseInt(e.substr(2),16));\t\n\t\t} else {\n\t\t\treturn converter(parseInt(e.substr(1),10));\n\t\t}\n\t} else {\n\t\tvar c = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\')            // backslash\n\t\t.replace(/\"/g, '\\\\\"')              // double quote character\n\t\t.replace(/'/g, \"\\\\'\")              // single quote character\n\t\t.replace(/\\r/g, '\\\\r')             // carriage return\n\t\t.replace(/\\n/g, '\\\\n')             // line feed\n\t\t.replace(/[\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n    return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10);\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\tif($tw.browser) {\n\t\t// TODO\n\t\tthrow \"$tw.utils.base64Decode() doesn't work in the browser\";\n\t} else {\n\t\treturn (new Buffer(string64,\"base64\")).toString();\n\t}\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\t\t\n\t\tm =  r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tparts.push(\"data:\");\n\tparts.push(type);\n\tparts.push(isBase64 ? \";base64\" : \"\");\n\tparts.push(\",\");\n\tparts.push(isBase64 ? text : encodeURIComponent(text));\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nTransliterate string from eg. Cyrillic Russian to Latin\n*/\nvar transliterationPairs = {\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.split(\"\").map(function(char) {\n\t\treturn transliterationPairs[char] || char;\n\t}).join(\"\");\n};\n\n})();\n",
            "title": "$:/core/modules/utils/utils.js",
            "type": "application/javascript",
            "module-type": "utils"
        },
        "$:/core/modules/widgets/action-createtiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.generateNewTitle(this.actionBaseTitle),\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-createtiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletefield.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-deletefield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-deletetiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-deletetiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-listops.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-listops.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-navigate.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-navigate.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-sendmessage.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-sendmessage.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/action-setfield.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\")  || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/action-setfield.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/browse.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,function(tiddlerFieldsArray) {\n\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/browse.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/button.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = this.popup && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif(this.set && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(this,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n    return this.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\t$tw.popup.triggerPopup({\n\t\tdomNode: this.domNodes[0],\n\t\ttitle: this.popup,\n\t\twiki: this.wiki\n\t});\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup])) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/button.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/checkbox.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();",
            "title": "$:/core/modules/widgets/checkbox.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/codeblock.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/codeblock.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/count.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = undefined;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/count.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/draggable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedTiddlers.tag || changedTiddlers[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/draggable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/droppable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t]);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent  = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/droppable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/dropzone.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = \"tc-dropzone\";\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"}\n\t]);\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent  = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent  = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent  = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDropEvent  = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),function(fieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(fieldsArray)});\n\t\t});\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent  = function(event) {\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/dropzone.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-binary.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Construct the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-binary.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-bitmap.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370;\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\tif(tiddler) {\n\t\t// data URIs look like \"data:<type>;base64,<text>\"\n\t\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\t\tposColon = dataURL.indexOf(\":\"),\n\t\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\t\tposComma = dataURL.indexOf(\",\"),\n\t\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\t\ttext = dataURL.substring(posComma+1);\n\t\tvar update = {type: type, text: text};\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n\t}\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-bitmap.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-shortcut.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-shortcut.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit-text.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
            "title": "$:/core/modules/widgets/edit-text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/edit.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/edit.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/element.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/element.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/encrypt.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/encrypt.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/entity.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/entity.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fieldmangler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler({title: this.mangleTitle, tags: tag});\t\t\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fieldmangler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/fields.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t// Get the exclusion list\n\tvar exclude;\n\tif(this.exclude) {\n\t\texclude = this.exclude.split(\" \");\n\t} else {\n\t\texclude = [\"text\"]; \n\t}\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tfields.push(fieldName);\n\t\t\t}\n\t\t}\n\t\tfields.sort();\n\t\tfor(var f=0; f<fields.length; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tvar row = this.template,\n\t\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\t\tif(reMatch) {\n\t\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\t\ttext.push(row);\n\t\t\t}\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude || changedAttributes.stripTitlePrefix || changedTiddlers[this.tiddlerTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/fields.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/image.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/image.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/importvariables.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar self = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\tvar widgetStackStart,widgetStackEnd;\n\tfunction addWidgetNode(widgetNode) {\n\t\tif(widgetNode) {\n\t\t\tif(!widgetStackStart && !widgetStackEnd) {\n\t\t\t\twidgetStackStart = widgetNode;\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t} else {\n\t\t\t\twidgetStackEnd.children = [widgetNode];\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t}\n\t\t}\n\t}\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = self.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\taddWidgetNode({\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params\n\t\t\t\t});\n\t\t\t\tparseTreeNode = parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\t// Add our own children to the end of the pile\n\tvar parseTreeNodes;\n\tif(widgetStackStart && widgetStackEnd) {\n\t\tparseTreeNodes = [widgetStackStart];\n\t\twidgetStackEnd.children = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/importvariables.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/keyboard.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.key = this.getAttribute(\"key\");\n\tthis.tag = this.getAttribute(\"tag\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/keyboard.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/link.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar MISSING_LINK_CONFIG_TITLE = \"$:/config/MissingLinks\";\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.linkClasses) {\n\t\tclasses.push(this.linkClasses);\n\t}\n\tclasses.push(\"tc-tiddlylink\");\n\tif(this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t}\n\tif(this.isMissing && !this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t} else {\n\t\tif(!this.isMissing) {\n\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t}\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Set an href\n\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\",\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1)\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = ($tw.wiki.getTiddlerText(MISSING_LINK_CONFIG_TITLE,\"yes\") === \"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip || changedTiddlers[MISSING_LINK_CONFIG_TITLE]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/link.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/linkcatcher.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(this.catchTo) {\n\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.catchMessage && this.parentWidget) {\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: this.catchMessage,\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\tif(this.catchSet) {\n\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t}\n\tif(this.catchActions) {\n\t\tthis.invokeActionString(this.catchActions,this);\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/linkcatcher.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/list.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
            "title": "$:/core/modules/widgets/list.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/macrocall.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar text = this.getVariable(this.parseTreeNode.name || this.getAttribute(\"$name\"),{params: params}),\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/macrocall.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/navigator.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList}\n\t));\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tvar p = storyList.indexOf(title);\n\twhile(p !== -1) {\n\t\tstoryList.splice(p,1);\n\t\tp = storyList.indexOf(title);\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tvar pos = storyList.indexOf(oldTitle);\n\tif(pos !== -1) {\n\t\tstoryList[pos] = newTitle;\n\t\tdo {\n\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\tif(pos !== -1) {\n\t\t\t\tstoryList.splice(pos,1);\n\t\t\t}\n\t\t} while(pos !== -1);\n\t} else {\n\t\tstoryList.splice(0,0,newTitle);\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tvar storyList = this.getStoryList();\n\t// Quit if we cannot get hold of the story list\n\tif(!storyList) {\n\t\treturn;\n\t}\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(title);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(fromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(this.getAttribute(\"openLinkFromInsideRiver\",\"below\")) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,title);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle;\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\tc++;\n\t} while(this.wiki.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\texistingTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\t\t\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\t\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n// \nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\t$tw.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/navigator.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/password.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/password.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/radio.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.radioClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(this.getValue() == this.radioValue) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tif(this.radioClass !== \"\") {\n\t\tthis.radioClass += \" \";\n\t}\n\tthis.radioClass += \"tc-radio\";\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/radio.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/raw.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/raw.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/reveal.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tdomNode.style.left = (this.popup.left - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTitle = this.state;\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state = this.stateTitle ? this.wiki.getTextReference(this.stateTitle,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.readMatchState(state);\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.readMatchState(state);\n\t\t\tthis.isOpen = !this.isOpen;\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.readMatchState = function(state) {\n\tthis.isOpen = state === this.text;\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes[\"default\"] || changedAttributes.animate) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false,\n\t\t\tcurrentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\trefreshed = true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n        $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n        }});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/reveal.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/scrollable.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/scrollable.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/select.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tif(values.indexOf(select.children[i].value) != -1) {\n\t\t\t\tselect.children[i].selected = true;\n\t\t\t}\n\t\t}\n\t\t\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/select.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/set.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(!this.setValue) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select ||changedAttributes.value || changedAttributes.emptyValue ||\n\t   (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/set.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/text.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/text.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/tiddler.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/tiddler.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/transclude.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/transclude.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/vars.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n  <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/vars.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/view.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified();\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function() {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function() {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function() {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/view.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/widget.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\n*/\nWidget.prototype.setVariable = function(name,value,params) {\n\tthis.variables[name] = {value: value, params: params};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n*/\nWidget.prototype.getVariable = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value;\n\t\t// Substitute any parameters specified in the definition\n\t\tvalue = this.substituteVariableParameters(value,variable.params,actualParams);\n\t\tvalue = this.substituteVariableReferences(value);\n\t\treturn value;\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn this.evaluateMacroModule(name,actualParams,options.defaultValue);\n};\n\nWidget.prototype.substituteVariableParameters = function(text,formalParams,actualParams) {\n\tif(formalParams) {\n\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\tparamInfo, paramValue;\n\t\t// Step through each of the parameters in the macro definition\n\t\tfor(var p=0; p<formalParams.length; p++) {\n\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\tparamInfo = formalParams[p];\n\t\t\tparamValue = undefined;\n\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\tnextAnonParameter++;\n\t\t\t}\n\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t}\n\t\t\t// If we've still not got a value, use the default, if any\n\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t// Replace any instances of this parameter\n\t\t\ttext = $tw.utils.replaceString(text,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(paramInfo.name) + \"\\\\$\",\"mg\"),paramValue);\n\t\t}\n\t}\n\treturn text;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.render(parent,nextSibling);\n\t});\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar self = this,\n\t\trefreshed = false;\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\trefreshed = childWidget.refresh(changedTiddlers) || refreshed;\n\t});\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
            "title": "$:/core/modules/widgets/widget.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/widgets/wikify.js": {
            "text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
            "title": "$:/core/modules/widgets/wikify.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/core/modules/wiki-bulkops.js": {
            "text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = (tiddler.fields.tags || []).slice(0),\n\t\t\t\t\tlist = (tiddler.fields.list || []).slice(0),\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
            "title": "$:/core/modules/wiki-bulkops.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/core/modules/wiki.js": {
            "text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type]  || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles.  Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x :  x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\t// Count up the links\n\t\tvar links = [],\n\t\t\tcheckParseTree = function(parseTree) {\n\t\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\tif(parser) {\n\t\t\tcheckParseTree(parser.tree);\n\t\t}\n\t\treturn links;\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinks = [];\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\tbacklinks.push(title);\n\t\t}\n\t});\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\tvar self = this;\n\treturn this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\tvar tagmap = self.getTagMap();\n\t\treturn self.sortByList(tagmap[tag],tag);\n\t});\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tvar currPos = titles.indexOf(title),\n\t\t\t\tnewPos = -1,\n\t\t\t\ttiddler = this.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(newPos === -1) {\n\t\t\t\t\tnewPos = currPos;\n\t\t\t\t}\n\t\t\t\tif(newPos !== currPos) {\n\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t}\n\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type || \"text/vnd.tiddlywiki\",tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tliteral: If true, searches for literal string, rather than separate search terms\n\tfield: If specified, restricts the search to the specified field\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tmatch;\n\t\tfor(var t=0; t<searchTermsRegExps.length; t++) {\n\t\t\tmatch = false;\n\t\t\tif(options.field) {\n\t\t\t\tmatch = searchTermsRegExps[t].test(tiddler.getFieldString(options.field));\n\t\t\t} else {\n\t\t\t\t// Search title, tags and body\n\t\t\t\tif(contentTypeInfo.encoding === \"utf8\") {\n\t\t\t\t\tmatch = match || searchTermsRegExps[t].test(tiddler.fields.text);\n\t\t\t\t}\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.join(\"\\0\") : \"\";\n\t\t\t\tmatch = match || searchTermsRegExps[t].test(tags) || searchTermsRegExps[t].test(tiddler.fields.title);\n\t\t\t}\n\t\t\tif(!match) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(tiddler.fields.text !== undefined) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text;\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,callback) {\n\tvar result = [],\n\t\toutstanding = files.length;\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t});\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,callback) {\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create  a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n})();\n\n",
            "title": "$:/core/modules/wiki.js",
            "type": "application/javascript",
            "module-type": "wikimethod"
        },
        "$:/palettes/Blanca": {
            "title": "$:/palettes/Blanca",
            "name": "Blanca",
            "description": "A clean white palette to let you focus",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Blue": {
            "title": "$:/palettes/Blue",
            "name": "Blue",
            "description": "A blue theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Muted": {
            "title": "$:/palettes/Muted",
            "name": "Muted",
            "description": "Bright tiddlers on a muted background",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastLight": {
            "title": "$:/palettes/ContrastLight",
            "name": "Contrast (Light)",
            "description": "High contrast and unambiguous (light version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/ContrastDark": {
            "title": "$:/palettes/ContrastDark",
            "name": "Contrast (Dark)",
            "description": "High contrast and unambiguous (dark version)",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/DarkPhotos": {
            "created": "20150402111612188",
            "description": "Good with dark photo backgrounds",
            "modified": "20150402112344080",
            "name": "DarkPhotos",
            "tags": "$:/tags/Palette",
            "title": "$:/palettes/DarkPhotos",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Rocker": {
            "title": "$:/palettes/Rocker",
            "name": "Rocker",
            "description": "A dark theme",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/SolarFlare": {
            "title": "$:/palettes/SolarFlare",
            "name": "Solar Flare",
            "description": "Warm, relaxing earth colours",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n    download-foreground: <<colour background>>\n    dragger-foreground: <<colour background>>\n    dropdown-background: <<colour background>>\n    modal-background: <<colour background>>\n    sidebar-foreground-shadow: <<colour background>>\n    tiddler-background: <<colour background>>\n    tiddler-border: <<colour background>>\n    tiddler-link-background: <<colour background>>\n    tab-background-selected: <<colour background>>\n        dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n    dragger-background: <<colour foreground>>\n    tab-foreground: <<colour foreground>>\n        tab-foreground-selected: <<colour tab-foreground>>\n            sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n        sidebar-tab-foreground: <<colour tab-foreground>>\n    sidebar-button-foreground: <<colour foreground>>\n    sidebar-controls-foreground: <<colour foreground>>\n    sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n    alert-muted-foreground: <<colour base01>>\n: base00\n    code-foreground: <<colour base00>>\n    message-foreground: <<colour base00>>\n    tag-foreground: <<colour base00>>\n: base0\n    sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n    muted-foreground: <<colour base1>>\n        blockquote-bar: <<colour muted-foreground>>\n        dropdown-border: <<colour muted-foreground>>\n        sidebar-muted-foreground: <<colour muted-foreground>>\n        tiddler-title-foreground: <<colour muted-foreground>>\n            site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n    modal-footer-background: <<colour base2>>\n    page-background: <<colour base2>>\n        modal-backdrop: <<colour page-background>>\n        notification-background: <<colour page-background>>\n        code-background: <<colour page-background>>\n            code-border: <<colour code-background>>\n        pre-background: <<colour page-background>>\n            pre-border: <<colour pre-background>>\n        sidebar-tab-background-selected: <<colour page-background>>\n    table-header-background: <<colour base2>>\n    tag-background: <<colour base2>>\n    tiddler-editor-background: <<colour base2>>\n    tiddler-info-background: <<colour base2>>\n    tiddler-info-tab-background: <<colour base2>>\n    tab-background: <<colour base2>>\n        dropdown-tab-background: <<colour tab-background>>\n: base3\n    alert-background: <<colour base3>>\n    message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n    alert-highlight: <<colour magenta>>\n: violet\n    external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n    tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n    external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n    primary: <<colour blue-muted>>\n        download-background: <<colour primary>>\n        tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n    modal-footer-border: <<colour tab-border>>\n    modal-header-border: <<colour tab-border>>\n    notification-border: <<colour tab-border>>\n    sidebar-tab-border: <<colour tab-border>>\n    tab-border-selected: <<colour tab-border>>\n        sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n    sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/palettes/Vanilla": {
            "title": "$:/palettes/Vanilla",
            "name": "Vanilla",
            "description": "Pale and unobtrusive",
            "tags": "$:/tags/Palette",
            "type": "application/x-tiddler-dictionary",
            "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
        },
        "$:/core/readme": {
            "title": "$:/core/readme",
            "text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
        },
        "$:/library/sjcl.js/license": {
            "title": "$:/library/sjcl.js/license",
            "type": "text/plain",
            "text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
        },
        "$:/core/templates/MOTW.html": {
            "title": "$:/core/templates/MOTW.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)http://tiddlywiki.com -->&#13;&#10;"
        },
        "$:/core/templates/alltiddlers.template.html": {
            "title": "$:/core/templates/alltiddlers.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
        },
        "$:/core/templates/canonical-uri-external-image": {
            "title": "$:/core/templates/canonical-uri-external-image",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
        },
        "$:/core/templates/canonical-uri-external-text": {
            "title": "$:/core/templates/canonical-uri-external-text",
            "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
        },
        "$:/core/templates/css-tiddler": {
            "title": "$:/core/templates/css-tiddler",
            "text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
        },
        "$:/core/templates/exporters/CsvFile": {
            "title": "$:/core/templates/exporters/CsvFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/CsvFile}}",
            "extension": ".csv",
            "text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/JsonFile": {
            "title": "$:/core/templates/exporters/JsonFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/JsonFile}}",
            "extension": ".json",
            "text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
        },
        "$:/core/templates/exporters/StaticRiver": {
            "title": "$:/core/templates/exporters/StaticRiver",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/StaticRiver}}",
            "extension": ".html",
            "text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
        },
        "$:/core/templates/exporters/StaticRiver/Content": {
            "title": "$:/core/templates/exporters/StaticRiver/Content",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<<renderContent>>\n</$importvariables>\n"
        },
        "$:/core/templates/exporters/TidFile": {
            "title": "$:/core/templates/exporters/TidFile",
            "tags": "$:/tags/Exporter",
            "description": "{{$:/language/Exporters/TidFile}}",
            "extension": ".tid",
            "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\"><<renderContent>></$importvariables>"
        },
        "$:/core/templates/html-div-tiddler": {
            "title": "$:/core/templates/html-div-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
        },
        "$:/core/templates/html-tiddler": {
            "title": "$:/core/templates/html-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
        },
        "$:/core/templates/javascript-tiddler": {
            "title": "$:/core/templates/javascript-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
        },
        "$:/core/templates/json-tiddler": {
            "title": "$:/core/templates/json-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
        },
        "$:/core/templates/module-tiddler": {
            "title": "$:/core/templates/module-tiddler",
            "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
        },
        "$:/core/templates/plain-text-tiddler": {
            "title": "$:/core/templates/plain-text-tiddler",
            "text": "<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/raw-static-tiddler": {
            "title": "$:/core/templates/raw-static-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
        },
        "$:/core/save/all": {
            "title": "$:/core/save/all",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/empty": {
            "title": "$:/core/save/empty",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-all": {
            "title": "$:/core/save/lazy-all",
            "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/save/lazy-images": {
            "title": "$:/core/save/lazy-images",
            "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
        },
        "$:/core/templates/single.tiddler.window": {
            "title": "$:/core/templates/single.tiddler.window",
            "text": "<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"tempCurrentTiddler\" value=<<currentTiddler>>>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=<<tempCurrentTiddler>>>\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</$importvariables>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n"
        },
        "$:/core/templates/split-recipe": {
            "title": "$:/core/templates/split-recipe",
            "text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
        },
        "$:/core/templates/static-tiddler": {
            "title": "$:/core/templates/static-tiddler",
            "text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
        },
        "$:/core/templates/static.area": {
            "title": "$:/core/templates/static.area",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n"
        },
        "$:/core/templates/static.content": {
            "title": "$:/core/templates/static.content",
            "type": "text/vnd.tiddlywiki",
            "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|http://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
        },
        "$:/core/templates/static.template.css": {
            "title": "$:/core/templates/static.template.css",
            "text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
        },
        "$:/core/templates/static.template.html": {
            "title": "$:/core/templates/static.template.html",
            "type": "text/vnd.tiddlywiki-html",
            "text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
        },
        "$:/core/templates/static.tiddler.html": {
            "title": "$:/core/templates/static.tiddler.html",
            "text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\n`"
        },
        "$:/core/templates/store.area.template.html": {
            "title": "$:/core/templates/store.area.template.html",
            "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
        },
        "$:/core/templates/tid-tiddler": {
            "title": "$:/core/templates/tid-tiddler",
            "text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
        },
        "$:/core/templates/tiddler-metadata": {
            "title": "$:/core/templates/tiddler-metadata",
            "text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
        },
        "$:/core/templates/tiddlywiki5.html": {
            "title": "$:/core/templates/tiddlywiki5.html",
            "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}\n</div>\n</body>\n</html>\n"
        },
        "$:/core/templates/version": {
            "title": "$:/core/templates/version",
            "text": "<<version>>"
        },
        "$:/core/templates/wikified-tiddler": {
            "title": "$:/core/templates/wikified-tiddler",
            "text": "<$transclude />"
        },
        "$:/core/ui/AboveStory/tw2-plugin-check": {
            "title": "$:/core/ui/AboveStory/tw2-plugin-check",
            "tags": "$:/tags/AboveStory",
            "text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter": {
            "title": "$:/core/ui/AdvancedSearch/Filter",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Filter/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
            "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
            "tags": "$:/tags/AdvancedSearch/FilterButton",
            "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Shadows": {
            "title": "$:/core/ui/AdvancedSearch/Shadows",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Shadows/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/Standard": {
            "title": "$:/core/ui/AdvancedSearch/Standard",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/Standard/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
        },
        "$:/core/ui/AdvancedSearch/System": {
            "title": "$:/core/ui/AdvancedSearch/System",
            "tags": "$:/tags/AdvancedSearch",
            "caption": "{{$:/language/Search/System/Caption}}",
            "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
        },
        "$:/AdvancedSearch": {
            "title": "$:/AdvancedSearch",
            "icon": "$:/core/images/advanced-search-button",
            "color": "#bbb",
            "text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
        },
        "$:/core/ui/AlertTemplate": {
            "title": "$:/core/ui/AlertTemplate",
            "text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/delete-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DD MM YYYY\"/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
        },
        "$:/core/ui/BinaryWarning": {
            "title": "$:/core/ui/BinaryWarning",
            "text": "\\define lingo-base() $:/language/BinaryWarning/\n<div class=\"tc-binary-warning\">\n\n<<lingo Prompt>>\n\n</div>\n"
        },
        "$:/core/ui/Components/plugin-info": {
            "title": "$:/core/ui/Components/plugin-info",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>\n''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$reveal type=\"nomatch\" text=\"\" state=\"!!list\">\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default=\"readme\" template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=\"!!list\">\n<<lingo NoInformation/Hint>>\n</$reveal>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
        },
        "$:/core/ui/Components/tag-link": {
            "title": "$:/core/ui/Components/tag-link",
            "text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
        },
        "$:/core/ui/ControlPanel/Advanced": {
            "title": "$:/core/ui/ControlPanel/Advanced",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
            "text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Appearance": {
            "title": "$:/core/ui/ControlPanel/Appearance",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
            "text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/Basics": {
            "title": "$:/core/ui/ControlPanel/Basics",
            "tags": "$:/tags/ControlPanel/Info",
            "caption": "{{$:/language/ControlPanel/Basics/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Tags\" default=\"\" tag=\"input\"/> |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
        },
        "$:/core/ui/ControlPanel/EditorTypes": {
            "title": "$:/core/ui/ControlPanel/EditorTypes",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/Info": {
            "title": "$:/core/ui/ControlPanel/Info",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Info/Caption}}",
            "text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
        },
        "$:/core/ui/ControlPanel/KeyboardShortcuts": {
            "title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip=<<lingo Remove/Hint>>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n&times;\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[all[tiddlers+shadows][$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>prefix[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ControlPanel/LoadedModules": {
            "title": "$:/core/ui/ControlPanel/LoadedModules",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
        },
        "$:/core/ui/ControlPanel/Modals/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
            "subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
            "text": "\\define install-plugin-button()\n<$button>\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\"\"\">\n{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\n</$list>\n</$button>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1><$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<<install-plugin-button>>\n</div>\n</div>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\"\"\">\n<em>\n{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}\n</em>\n</$list>\n</div>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<div class=\"tc-plugin-library\">\n\n!! <$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link>\n\n//<$view field=\"url\"/>//\n\n<$transclude/>\n\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n\n<<display-server-connection>>\n</div>\n</$list>\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<div>\n<<plugin-library-listing>>\n</div>\n\n</$importvariables>\n"
        },
        "$:/core/ui/ControlPanel/Palette": {
            "title": "$:/core/ui/ControlPanel/Palette",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Palette/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/snippets/paletteeditor}}\n\n</$reveal>\n\n"
        },
        "$:/core/ui/ControlPanel/Parsing": {
            "title": "$:/core/ui/ControlPanel/Parsing",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
            "text": "<<display-server-assets language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
            "text": "<<display-server-assets plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Add/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}  (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
            "text": "<<display-server-assets theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/AddPlugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green\" style=\"background:blue;\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
            "text": "<<plugin-table language>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
            "text": "<<plugin-table plugin>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
            "title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
            "text": "<<plugin-table theme>>\n"
        },
        "$:/core/ui/ControlPanel/Plugins": {
            "title": "$:/core/ui/ControlPanel/Plugins",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
        },
        "$:/core/ui/ControlPanel/Saving/DownloadSaver": {
            "title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Saving/General": {
            "title": "$:/core/ui/ControlPanel/Saving/General",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
            "list-before": "",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Saving/TiddlySpot": {
            "title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
            "tags": "$:/tags/ControlPanel/Saving",
            "caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>>  |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
        },
        "$:/core/ui/ControlPanel/Saving": {
            "title": "$:/core/ui/ControlPanel/Saving",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Saving/Caption}}",
            "text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
        },
        "$:/core/buttonstyles/Borderless": {
            "title": "$:/core/buttonstyles/Borderless",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
            "text": "tc-btn-invisible"
        },
        "$:/core/buttonstyles/Boxed": {
            "title": "$:/core/buttonstyles/Boxed",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
            "text": "tc-btn-boxed"
        },
        "$:/core/buttonstyles/Rounded": {
            "title": "$:/core/buttonstyles/Rounded",
            "tags": "$:/tags/ToolbarButtonStyle",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
            "text": "tc-btn-rounded"
        },
        "$:/core/ui/ControlPanel/Settings/CamelCase": {
            "title": "$:/core/ui/ControlPanel/Settings/CamelCase",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
            "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
            "tags": "$:/tags/ControlPanel/Settings",
            "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
            "title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
            "title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n  <option value=\"above\"><<lingo \"OpenAbove\">></option>\n  <option value=\"below\"><<lingo \"OpenBelow\">></option>\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n  <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n  <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/MissingLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/NavigationHistory": {
            "title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
            "title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings/TitleLinks": {
            "title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
        },
        "$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
            "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
            "tags": "$:/tags/ControlPanel/Settings",
            "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
        },
        "$:/core/ui/ControlPanel/Settings": {
            "title": "$:/core/ui/ControlPanel/Settings",
            "tags": "$:/tags/ControlPanel",
            "caption": "{{$:/language/ControlPanel/Settings/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ControlPanel/StoryView": {
            "title": "$:/core/ui/ControlPanel/StoryView",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
            "text": "{{$:/snippets/viewswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/Theme": {
            "title": "$:/core/ui/ControlPanel/Theme",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Theme/Caption}}",
            "text": "{{$:/snippets/themeswitcher}}\n"
        },
        "$:/core/ui/ControlPanel/TiddlerFields": {
            "title": "$:/core/ui/ControlPanel/TiddlerFields",
            "tags": "$:/tags/ControlPanel/Advanced",
            "caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
            "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/PageControls": {
            "title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
            "title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
            "tags": "$:/tags/ControlPanel/Toolbars",
            "caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/ControlPanel/Toolbars": {
            "title": "$:/core/ui/ControlPanel/Toolbars",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
            "text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/ControlPanel": {
            "title": "$:/ControlPanel",
            "icon": "$:/core/images/options-button",
            "color": "#bbb",
            "text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
        },
        "$:/core/ui/DefaultSearchResultList": {
            "title": "$:/core/ui/DefaultSearchResultList",
            "tags": "$:/tags/SearchResults",
            "caption": "{{$:/language/Search/DefaultResults/Caption}}",
            "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
        },
        "$:/core/ui/EditTemplate/body/preview/output": {
            "title": "$:/core/ui/EditTemplate/body/preview/output",
            "tags": "$:/tags/EditPreview",
            "caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
            "text": "<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
        },
        "$:/core/ui/EditTemplate/body/editor": {
            "title": "$:/core/ui/EditTemplate/body/editor",
            "text": "<$edit\n\n  field=\"text\"\n  class=\"tc-edit-texteditor\"\n  placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n\n><$set\n\n  name=\"targetTiddler\"\n  value=<<currentTiddler>>\n\n><$list\n\n  filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n  type=\"nomatch\"\n  state=<<config-visibility-title>>\n  text=\"hide\"\n  class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n  tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n  mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
        },
        "$:/core/ui/EditTemplate/body/toolbar/button": {
            "title": "$:/core/ui/EditTemplate/body/toolbar/button",
            "text": "\\define toolbar-button-icon()\n<$list\n\n  filter=\"[all[current]!has[custom-icon]]\"\n  variable=\"no-custom-icon\"\n\n><$transclude\n\n  tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n  filter={{!!condition}}\n  variable=\"list-condition\"\n\n><$wikify\n\n  name=\"tooltip-text\"\n  text=<<toolbar-button-tooltip>>\n  mode=\"inline\"\n  output=\"text\"\n\n><$list\n\n  filter=\"[all[current]!has[dropdown]]\"\n  variable=\"no-dropdown\"\n\n><$button\n\n  class=\"tc-btn-invisible $(buttonClasses)$\"\n  tooltip=<<tooltip-text>>\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button></$list><$list\n\n  filter=\"[all[current]has[dropdown]]\"\n  variable=\"dropdown\"\n\n><$set\n\n  name=\"dropdown-state\"\n  value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n  popup=<<dropdown-state>>\n  class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n  selectedClass=\"tc-selected\"\n  tooltip=<<tooltip-text>>\n\n><span\n\n  data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n  tiddler=<<currentTiddler>>\n  field=\"text\"\n\n/></$button><$reveal\n\n  state=<<dropdown-state>>\n  type=\"popup\"\n  position=\"below\"\n  animate=\"yes\"\n  tag=\"span\"\n\n><div\n\n  class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n  tiddler={{!!dropdown}}\n  mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n  name=\"buttonClasses\"\n  value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
        },
        "$:/core/ui/EditTemplate/body": {
            "title": "$:/core/ui/EditTemplate/body",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[is[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[is[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/EditTemplate/controls": {
            "title": "$:/core/ui/EditTemplate/controls",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/fields": {
            "title": "$:/core/ui/EditTemplate/fields",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field-inner()\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\" $name=<<name>> $value=<<value>>/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n\\end\n\n\\define new-field()\n<$set name=\"name\" value={{$:/temp/newfieldname}}>\n<$set name=\"value\" value={{$:/temp/newfieldvalue}}>\n<<new-field-inner>>\n</$set>\n</$set>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\"  variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditTemplate/shadow": {
            "title": "$:/core/ui/EditTemplate/shadow",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
        },
        "$:/core/ui/EditTemplate/tags": {
            "title": "$:/core/ui/EditTemplate/tags",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">&times;</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n\\end\n\n\\define tag-picker-actions()\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\n</$list>\n</$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</div>\n"
        },
        "$:/core/ui/EditTemplate/title": {
            "title": "$:/core/ui/EditTemplate/title",
            "tags": "$:/tags/EditTemplate",
            "text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[is[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n\n\n"
        },
        "$:/core/ui/EditTemplate/type": {
            "title": "$:/core/ui/EditTemplate/type",
            "tags": "$:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/EditTemplate/\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-popup-handle\"/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>"
        },
        "$:/core/ui/EditTemplate": {
            "title": "$:/core/ui/EditTemplate",
            "text": "\\define actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define frame-classes()\ntc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$\n\\end\n<div class=<<frame-classes>>>\n<$fieldmangler>\n<$set name=\"storyTiddler\" value=<<currentTiddler>>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n</$list>\n</$keyboard>\n</$keyboard>\n</$set>\n</$fieldmangler>\n</div>\n"
        },
        "$:/core/ui/Buttons/cancel": {
            "title": "$:/core/ui/Buttons/cancel",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
            "description": "{{$:/language/Buttons/Cancel/Hint}}",
            "text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/delete": {
            "title": "$:/core/ui/Buttons/delete",
            "tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
            "caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
            "description": "{{$:/language/Buttons/Delete/Hint}}",
            "text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save": {
            "title": "$:/core/ui/Buttons/save",
            "tags": "$:/tags/EditToolbar",
            "caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
            "description": "{{$:/language/Buttons/Save/Hint}}",
            "text": "<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button>\n</$fieldmangler>\n"
        },
        "$:/core/ui/EditorToolbar/bold": {
            "title": "$:/core/ui/EditorToolbar/bold",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/bold",
            "caption": "{{$:/language/Buttons/Bold/Caption}}",
            "description": "{{$:/language/Buttons/Bold/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((bold))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/clear-dropdown": {
            "title": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/clear": {
            "title": "$:/core/ui/EditorToolbar/clear",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/erase",
            "caption": "{{$:/language/Buttons/Clear/Caption}}",
            "description": "{{$:/language/Buttons/Clear/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/editor-height-dropdown": {
            "title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
        },
        "$:/core/ui/EditorToolbar/editor-height": {
            "title": "$:/core/ui/EditorToolbar/editor-height",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/fixed-height",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
            "description": "{{$:/language/Buttons/EditorHeight/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
            "text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/excise-dropdown": {
            "title": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/excise": {
            "title": "$:/core/ui/EditorToolbar/excise",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/excise",
            "caption": "{{$:/language/Buttons/Excise/Caption}}",
            "description": "{{$:/language/Buttons/Excise/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "shortcuts": "((excise))",
            "dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/heading-1": {
            "title": "$:/core/ui/EditorToolbar/heading-1",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-1",
            "caption": "{{$:/language/Buttons/Heading1/Caption}}",
            "description": "{{$:/language/Buttons/Heading1/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((heading-1))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-2": {
            "title": "$:/core/ui/EditorToolbar/heading-2",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-2",
            "caption": "{{$:/language/Buttons/Heading2/Caption}}",
            "description": "{{$:/language/Buttons/Heading2/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-2))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-3": {
            "title": "$:/core/ui/EditorToolbar/heading-3",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-3",
            "caption": "{{$:/language/Buttons/Heading3/Caption}}",
            "description": "{{$:/language/Buttons/Heading3/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-3))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/core/ui/EditorToolbar/heading-4",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-4",
            "caption": "{{$:/language/Buttons/Heading4/Caption}}",
            "description": "{{$:/language/Buttons/Heading4/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-4))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/core/ui/EditorToolbar/heading-5",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-5",
            "caption": "{{$:/language/Buttons/Heading5/Caption}}",
            "description": "{{$:/language/Buttons/Heading5/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-5))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/core/ui/EditorToolbar/heading-6",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/heading-6",
            "caption": "{{$:/language/Buttons/Heading6/Caption}}",
            "description": "{{$:/language/Buttons/Heading6/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((heading-6))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/italic": {
            "title": "$:/core/ui/EditorToolbar/italic",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/italic",
            "caption": "{{$:/language/Buttons/Italic/Caption}}",
            "description": "{{$:/language/Buttons/Italic/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((italic))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/line-width-dropdown": {
            "title": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/line-width": {
            "title": "$:/core/ui/EditorToolbar/line-width",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/line-width",
            "caption": "{{$:/language/Buttons/LineWidth/Caption}}",
            "description": "{{$:/language/Buttons/LineWidth/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
        },
        "$:/core/ui/EditorToolbar/link-dropdown": {
            "title": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define link-actions()\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"make-link\"\n\ttext={{$(linkTiddler)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(searchTiddler)$}}\n/>\n{{$:/core/images/chevron-right}}\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n</$button>\n\\end\n\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
        },
        "$:/core/ui/EditorToolbar/link": {
            "title": "$:/core/ui/EditorToolbar/link",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/link",
            "caption": "{{$:/language/Buttons/Link/Caption}}",
            "description": "{{$:/language/Buttons/Link/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((link))",
            "dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/list-bullet": {
            "title": "$:/core/ui/EditorToolbar/list-bullet",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-bullet",
            "caption": "{{$:/language/Buttons/ListBullet/Caption}}",
            "description": "{{$:/language/Buttons/ListBullet/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-bullet))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/list-number": {
            "title": "$:/core/ui/EditorToolbar/list-number",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/list-number",
            "caption": "{{$:/language/Buttons/ListNumber/Caption}}",
            "description": "{{$:/language/Buttons/ListNumber/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((list-number))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-block": {
            "title": "$:/core/ui/EditorToolbar/mono-block",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-block",
            "caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
            "description": "{{$:/language/Buttons/MonoBlock/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((mono-block))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/mono-line": {
            "title": "$:/core/ui/EditorToolbar/mono-line",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/mono-line",
            "caption": "{{$:/language/Buttons/MonoLine/Caption}}",
            "description": "{{$:/language/Buttons/MonoLine/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((mono-line))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/more-dropdown": {
            "title": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
        },
        "$:/core/ui/EditorToolbar/more": {
            "title": "$:/core/ui/EditorToolbar/more",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/down-arrow",
            "caption": "{{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "condition": "[<targetTiddler>]",
            "dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/opacity-dropdown": {
            "title": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/opacity": {
            "title": "$:/core/ui/EditorToolbar/opacity",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/opacity",
            "caption": "{{$:/language/Buttons/Opacity/Caption}}",
            "description": "{{$:/language/Buttons/Opacity/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
            "text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
        },
        "$:/core/ui/EditorToolbar/paint-dropdown": {
            "title": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/paint": {
            "title": "$:/core/ui/EditorToolbar/paint",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/paint",
            "caption": "{{$:/language/Buttons/Paint/Caption}}",
            "description": "{{$:/language/Buttons/Paint/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
            "text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
        },
        "$:/core/ui/EditorToolbar/picture-dropdown": {
            "title": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
        },
        "$:/core/ui/EditorToolbar/picture": {
            "title": "$:/core/ui/EditorToolbar/picture",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/picture",
            "caption": "{{$:/language/Buttons/Picture/Caption}}",
            "description": "{{$:/language/Buttons/Picture/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((picture))",
            "dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/preview-type-dropdown": {
            "title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
            "text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\"&nbsp;\"/>\n\n<$entity entity=\"&#x2713;\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
        },
        "$:/core/ui/EditorToolbar/preview-type": {
            "title": "$:/core/ui/EditorToolbar/preview-type",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/chevron-down",
            "caption": "{{$:/language/Buttons/PreviewType/Caption}}",
            "description": "{{$:/language/Buttons/PreviewType/Hint}}",
            "condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
            "button-classes": "tc-text-editor-toolbar-item-adjunct",
            "dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
        },
        "$:/core/ui/EditorToolbar/preview": {
            "title": "$:/core/ui/EditorToolbar/preview",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/preview-open",
            "custom-icon": "yes",
            "caption": "{{$:/language/Buttons/Preview/Caption}}",
            "description": "{{$:/language/Buttons/Preview/Hint}}",
            "condition": "[<targetTiddler>]",
            "button-classes": "tc-text-editor-toolbar-item-start-group",
            "shortcuts": "((preview))",
            "text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
        },
        "$:/core/ui/EditorToolbar/quote": {
            "title": "$:/core/ui/EditorToolbar/quote",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/quote",
            "caption": "{{$:/language/Buttons/Quote/Caption}}",
            "description": "{{$:/language/Buttons/Quote/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((quote))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/size-dropdown": {
            "title": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> &times; <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
        },
        "$:/core/ui/EditorToolbar/size": {
            "title": "$:/core/ui/EditorToolbar/size",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/size",
            "caption": "{{$:/language/Buttons/Size/Caption}}",
            "description": "{{$:/language/Buttons/Size/Hint}}",
            "condition": "[<targetTiddler>is[image]]",
            "dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/stamp-dropdown": {
            "title": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
        },
        "$:/core/ui/EditorToolbar/stamp": {
            "title": "$:/core/ui/EditorToolbar/stamp",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/stamp",
            "caption": "{{$:/language/Buttons/Stamp/Caption}}",
            "description": "{{$:/language/Buttons/Stamp/Hint}}",
            "condition": "[<targetTiddler>!is[image]]",
            "shortcuts": "((stamp))",
            "dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
            "text": ""
        },
        "$:/core/ui/EditorToolbar/strikethrough": {
            "title": "$:/core/ui/EditorToolbar/strikethrough",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/strikethrough",
            "caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
            "description": "{{$:/language/Buttons/Strikethrough/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((strikethrough))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/subscript": {
            "title": "$:/core/ui/EditorToolbar/subscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/subscript",
            "caption": "{{$:/language/Buttons/Subscript/Caption}}",
            "description": "{{$:/language/Buttons/Subscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((subscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/superscript": {
            "title": "$:/core/ui/EditorToolbar/superscript",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/superscript",
            "caption": "{{$:/language/Buttons/Superscript/Caption}}",
            "description": "{{$:/language/Buttons/Superscript/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((superscript))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
        },
        "$:/core/ui/EditorToolbar/underline": {
            "title": "$:/core/ui/EditorToolbar/underline",
            "tags": "$:/tags/EditorToolbar",
            "icon": "$:/core/images/underline",
            "caption": "{{$:/language/Buttons/Underline/Caption}}",
            "description": "{{$:/language/Buttons/Underline/Hint}}",
            "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
            "shortcuts": "((underline))",
            "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
        },
        "$:/core/Filters/AllTags": {
            "title": "$:/core/Filters/AllTags",
            "tags": "$:/tags/Filter",
            "filter": "[tags[]!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTags}}",
            "text": ""
        },
        "$:/core/Filters/AllTiddlers": {
            "title": "$:/core/Filters/AllTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]sort[title]]",
            "description": "{{$:/language/Filters/AllTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/Drafts": {
            "title": "$:/core/Filters/Drafts",
            "tags": "$:/tags/Filter",
            "filter": "[has[draft.of]sort[title]]",
            "description": "{{$:/language/Filters/Drafts}}",
            "text": ""
        },
        "$:/core/Filters/Missing": {
            "title": "$:/core/Filters/Missing",
            "tags": "$:/tags/Filter",
            "filter": "[all[missing]sort[title]]",
            "description": "{{$:/language/Filters/Missing}}",
            "text": ""
        },
        "$:/core/Filters/Orphans": {
            "title": "$:/core/Filters/Orphans",
            "tags": "$:/tags/Filter",
            "filter": "[all[orphans]sort[title]]",
            "description": "{{$:/language/Filters/Orphans}}",
            "text": ""
        },
        "$:/core/Filters/OverriddenShadowTiddlers": {
            "title": "$:/core/Filters/OverriddenShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[shadow]]",
            "description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentSystemTiddlers": {
            "title": "$:/core/Filters/RecentSystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentSystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/RecentTiddlers": {
            "title": "$:/core/Filters/RecentTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
            "description": "{{$:/language/Filters/RecentTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/ShadowTiddlers": {
            "title": "$:/core/Filters/ShadowTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows]sort[title]]",
            "description": "{{$:/language/Filters/ShadowTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/StoryList": {
            "title": "$:/core/Filters/StoryList",
            "tags": "$:/tags/Filter",
            "filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
            "description": "{{$:/language/Filters/StoryList}}",
            "text": ""
        },
        "$:/core/Filters/SystemTags": {
            "title": "$:/core/Filters/SystemTags",
            "tags": "$:/tags/Filter",
            "filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTags}}",
            "text": ""
        },
        "$:/core/Filters/SystemTiddlers": {
            "title": "$:/core/Filters/SystemTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[is[system]sort[title]]",
            "description": "{{$:/language/Filters/SystemTiddlers}}",
            "text": ""
        },
        "$:/core/Filters/TypedTiddlers": {
            "title": "$:/core/Filters/TypedTiddlers",
            "tags": "$:/tags/Filter",
            "filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
            "description": "{{$:/language/Filters/TypedTiddlers}}",
            "text": ""
        },
        "$:/core/ui/ImportListing": {
            "title": "$:/core/ui/ImportListing",
            "text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}}&nbsp;<$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>>>\n<$transclude subtiddler=<<payloadTiddler>> mode=\"block\"/>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/ListItemTemplate": {
            "title": "$:/core/ui/ListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</div>"
        },
        "$:/Manager/ItemMain/Fields": {
            "title": "$:/Manager/ItemMain/Fields",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/Fields}}",
            "text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/Manager/ItemMain/RawText": {
            "title": "$:/Manager/ItemMain/RawText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/RawText}}",
            "text": "<pre><code><$view/></code></pre>\n"
        },
        "$:/Manager/ItemMain/WikifiedText": {
            "title": "$:/Manager/ItemMain/WikifiedText",
            "tags": "$:/tags/Manager/ItemMain",
            "caption": "{{$:/language/Manager/Item/WikifiedText}}",
            "text": "<$transclude mode=\"block\"/>\n"
        },
        "$:/Manager/ItemSidebar/Colour": {
            "title": "$:/Manager/ItemSidebar/Colour",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Colour}}",
            "text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Icon": {
            "title": "$:/Manager/ItemSidebar/Icon",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Icon}}",
            "text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tags": {
            "title": "$:/Manager/ItemSidebar/Tags",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tags}}",
            "text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[is[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
        },
        "$:/Manager/ItemSidebar/Tools": {
            "title": "$:/Manager/ItemSidebar/Tools",
            "tags": "$:/tags/Manager/ItemSidebar",
            "caption": "{{$:/language/Manager/Item/Tools}}",
            "text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
        },
        "$:/Manager": {
            "title": "$:/Manager",
            "icon": "$:/core/images/list",
            "color": "#bbb",
            "text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
        },
        "$:/core/ui/MissingTemplate": {
            "title": "$:/core/ui/MissingTemplate",
            "text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
        },
        "$:/core/ui/MoreSideBar/All": {
            "title": "$:/core/ui/MoreSideBar/All",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/All/Caption}}",
            "text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Drafts": {
            "title": "$:/core/ui/MoreSideBar/Drafts",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Drafts/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Missing": {
            "title": "$:/core/ui/MoreSideBar/Missing",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Missing/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Orphans": {
            "title": "$:/core/ui/MoreSideBar/Orphans",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Orphans/Caption}}",
            "text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
            "text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
        },
        "$:/core/ui/MoreSideBar/Recent": {
            "title": "$:/core/ui/MoreSideBar/Recent",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Shadows": {
            "title": "$:/core/ui/MoreSideBar/Shadows",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Shadows/Caption}}",
            "text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/System": {
            "title": "$:/core/ui/MoreSideBar/System",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/System/Caption}}",
            "text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/MoreSideBar/Tags": {
            "title": "$:/core/ui/MoreSideBar/Tags",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Tags/Caption}}",
            "text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
        },
        "$:/core/ui/MoreSideBar/Types": {
            "title": "$:/core/ui/MoreSideBar/Types",
            "tags": "$:/tags/MoreSideBar",
            "caption": "{{$:/language/SideBar/Types/Caption}}",
            "text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Languages": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Languages",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Plugins": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
        },
        "$:/core/ui/MoreSideBar/Plugins/Theme": {
            "title": "$:/core/ui/MoreSideBar/Plugins/Theme",
            "tags": "$:/tags/MoreSideBar/Plugins",
            "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
            "text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
        },
        "$:/core/ui/Buttons/advanced-search": {
            "title": "$:/core/ui/Buttons/advanced-search",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
            "description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/close-all": {
            "title": "$:/core/ui/Buttons/close-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
            "description": "{{$:/language/Buttons/CloseAll/Hint}}",
            "text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/control-panel": {
            "title": "$:/core/ui/Buttons/control-panel",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
            "description": "{{$:/language/Buttons/ControlPanel/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/encryption": {
            "title": "$:/core/ui/Buttons/encryption",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
            "description": "{{$:/language/Buttons/Encryption/Hint}}",
            "text": "<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
        },
        "$:/core/ui/Buttons/export-page": {
            "title": "$:/core/ui/Buttons/export-page",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
            "description": "{{$:/language/Buttons/ExportPage/Hint}}",
            "text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
        },
        "$:/core/ui/Buttons/fold-all": {
            "title": "$:/core/ui/Buttons/fold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
            "description": "{{$:/language/Buttons/FoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/full-screen": {
            "title": "$:/core/ui/Buttons/full-screen",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
            "description": "{{$:/language/Buttons/FullScreen/Hint}}",
            "text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/home": {
            "title": "$:/core/ui/Buttons/home",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
            "description": "{{$:/language/Buttons/Home/Hint}}",
            "text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/import": {
            "title": "$:/core/ui/Buttons/import",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
            "description": "{{$:/language/Buttons/Import/Hint}}",
            "text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
        },
        "$:/core/ui/Buttons/language": {
            "title": "$:/core/ui/Buttons/language",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
            "description": "{{$:/language/Buttons/Language/Hint}}",
            "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down tc-drop-down-language-chooser\">\n<$linkcatcher to=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$link>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/language\" text=<<currentTiddler>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/language\" text=<<currentTiddler>>>\n&nbsp;\n</$reveal>\n</span>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/manager": {
            "title": "$:/core/ui/Buttons/manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
            "description": "{{$:/language/Buttons/Manager/Hint}}",
            "text": "\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/core/ui/Buttons/more-page-actions",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-image": {
            "title": "$:/core/ui/Buttons/new-image",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
            "description": "{{$:/language/Buttons/NewImage/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"image/jpeg\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
        },
        "$:/core/ui/Buttons/new-journal": {
            "title": "$:/core/ui/Buttons/new-journal",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
            "description": "{{$:/language/Buttons/NewJournal/Hint}}",
            "text": "\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=\"$(journalTags)$\" text=\"$(journalText)$\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"journalText\" value={{$:/config/NewJournal/Text}}>\n<<journalButton>>\n</$set></$set></$set>"
        },
        "$:/core/ui/Buttons/new-tiddler": {
            "title": "$:/core/ui/Buttons/new-tiddler",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
            "description": "{{$:/language/Buttons/NewTiddler/Hint}}",
            "text": "<$button message=\"tm-new-tiddler\" tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/palette": {
            "title": "$:/core/ui/Buttons/palette",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
            "description": "{{$:/language/Buttons/Palette/Hint}}",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/print": {
            "title": "$:/core/ui/Buttons/print",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
            "description": "{{$:/language/Buttons/Print/Hint}}",
            "text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/refresh": {
            "title": "$:/core/ui/Buttons/refresh",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
            "description": "{{$:/language/Buttons/Refresh/Hint}}",
            "text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/save-wiki": {
            "title": "$:/core/ui/Buttons/save-wiki",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
            "description": "{{$:/language/Buttons/SaveWiki/Hint}}",
            "text": "<$button message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
        },
        "$:/core/ui/Buttons/storyview": {
            "title": "$:/core/ui/Buttons/storyview",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
            "description": "{{$:/language/Buttons/StoryView/Hint}}",
            "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/view\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$link to=<<storyview>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/view\" text=<<storyview>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/view\" text=<<storyview>>>\n&nbsp;\n</$reveal>\n</span>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/></$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/tag-manager": {
            "title": "$:/core/ui/Buttons/tag-manager",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
            "description": "{{$:/language/Buttons/TagManager/Hint}}",
            "text": "\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
        },
        "$:/core/ui/Buttons/theme": {
            "title": "$:/core/ui/Buttons/theme",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
            "description": "{{$:/language/Buttons/Theme/Hint}}",
            "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\" variable=\"themeTitle\">\n<$link to=<<themeTitle>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/theme\" text=<<themeTitle>>>\n&bull;\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/theme\" text=<<themeTitle>>>\n&nbsp;\n</$reveal>\n</span>\n<$view tiddler=<<themeTitle>> field=\"name\"/>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>"
        },
        "$:/core/ui/Buttons/timestamp": {
            "title": "$:/core/ui/Buttons/timestamp",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
            "description": "{{$:/language/Buttons/Timestamp/Hint}}",
            "text": "<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>"
        },
        "$:/core/ui/Buttons/unfold-all": {
            "title": "$:/core/ui/Buttons/unfold-all",
            "tags": "$:/tags/PageControls",
            "caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
            "description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/PageTemplate/pagecontrols": {
            "title": "$:/core/ui/PageTemplate/pagecontrols",
            "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$reveal>\n</$list>\n</div>\n\n"
        },
        "$:/core/ui/PageStylesheet": {
            "title": "$:/core/ui/PageStylesheet",
            "text": "<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
        },
        "$:/core/ui/PageTemplate/alerts": {
            "title": "$:/core/ui/PageTemplate/alerts",
            "tags": "$:/tags/PageTemplate",
            "text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
        },
        "$:/core/ui/PageTemplate/pluginreloadwarning": {
            "title": "$:/core/ui/PageTemplate/pluginreloadwarning",
            "tags": "$:/tags/PageTemplate",
            "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
        },
        "$:/core/ui/PageTemplate/sidebar": {
            "title": "$:/core/ui/PageTemplate/sidebar",
            "tags": "$:/tags/PageTemplate",
            "text": "<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n\n<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>"
        },
        "$:/core/ui/PageTemplate/story": {
            "title": "$:/core/ui/PageTemplate/story",
            "tags": "$:/tags/PageTemplate",
            "text": "<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/ui/EditTemplate\" storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
        },
        "$:/core/ui/PageTemplate/topleftbar": {
            "title": "$:/core/ui/PageTemplate/topleftbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate/toprightbar": {
            "title": "$:/core/ui/PageTemplate/toprightbar",
            "tags": "$:/tags/PageTemplate",
            "text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
        },
        "$:/core/ui/PageTemplate": {
            "title": "$:/core/ui/PageTemplate",
            "text": "\\define containerClasses()\ntc-page-container tc-page-view-$(themeTitle)$ tc-language-$(languageTitle)$\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=\"\">\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n"
        },
        "$:/core/ui/PluginInfo": {
            "title": "$:/core/ui/PluginInfo",
            "text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
        },
        "$:/core/ui/PluginInfo/Default/contents": {
            "title": "$:/core/ui/PluginInfo/Default/contents",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n"
        },
        "$:/core/ui/PluginListItemTemplate": {
            "title": "$:/core/ui/PluginListItemTemplate",
            "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"description\">\n<$view field=\"title\"/>\n</$view>\n</$link>\n</div>"
        },
        "$:/core/ui/SearchResults": {
            "title": "$:/core/ui/SearchResults",
            "text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
        },
        "$:/core/ui/SideBar/More": {
            "title": "$:/core/ui/SideBar/More",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/More/Caption}}",
            "text": "<div class=\"tc-more-sidebar\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Tags\" \"$:/state/tab/moresidebar\" \"tc-vertical\">>\n</div>\n"
        },
        "$:/core/ui/SideBar/Open": {
            "title": "$:/core/ui/SideBar/Open",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Open/Caption}}",
            "text": "\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=\"$:/StoryList\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" storyview=\"pop\">\n<div style=\"position: relative;\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">&times;</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$droppable>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\n</$droppable>\n</$tiddler>\n"
        },
        "$:/core/ui/SideBar/Recent": {
            "title": "$:/core/ui/SideBar/Recent",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Recent/Caption}}",
            "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
        },
        "$:/core/ui/SideBar/Tools": {
            "title": "$:/core/ui/SideBar/Tools",
            "tags": "$:/tags/SideBar",
            "caption": "{{$:/language/SideBar/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/SideBarLists": {
            "title": "$:/core/ui/SideBarLists",
            "text": "<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search{$(searchTiddler)$}]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" />\n\n</div>\n"
        },
        "$:/TagManager": {
            "title": "$:/TagManager",
            "icon": "$:/core/images/tag-button",
            "color": "#bbb",
            "caption": "{{$:/language/TagManager/Caption}}",
            "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/icon/$title$\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/icon/$title$\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$title$!!icon\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define qualifyTitle(title)\n$title$$(currentTiddler)$\n\\end\n\\define toggleButton(state)\n<$reveal state=\"$state$\" type=\"match\" text=\"closed\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal state=\"$state$\" type=\"match\" text=\"open\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td><$macrocall $name=\"tag\" tag=<<currentTiddler>>/></td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state=<<qualifyTitle \"$:/state/tag-manager/\">> /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal state=<<qualifyTitle \"$:/state/tag-manager/\">> type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td>\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TagTemplate": {
            "title": "$:/core/ui/TagTemplate",
            "text": "<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
        },
        "$:/core/ui/TiddlerFieldTemplate": {
            "title": "$:/core/ui/TiddlerFieldTemplate",
            "text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
        },
        "$:/core/ui/TiddlerFields": {
            "title": "$:/core/ui/TiddlerFields",
            "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
            "title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
            "tags": "$:/tags/TiddlerInfo/Advanced",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo/Advanced": {
            "title": "$:/core/ui/TiddlerInfo/Advanced",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
            "text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Fields": {
            "title": "$:/core/ui/TiddlerInfo/Fields",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
            "text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/List": {
            "title": "$:/core/ui/TiddlerInfo/List",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/List/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Listed": {
            "title": "$:/core/ui/TiddlerInfo/Listed",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/References": {
            "title": "$:/core/ui/TiddlerInfo/References",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/References/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>\n"
        },
        "$:/core/ui/TiddlerInfo/Tagging": {
            "title": "$:/core/ui/TiddlerInfo/Tagging",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
        },
        "$:/core/ui/TiddlerInfo/Tools": {
            "title": "$:/core/ui/TiddlerInfo/Tools",
            "tags": "$:/tags/TiddlerInfo",
            "caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
            "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
        },
        "$:/core/ui/TiddlerInfo": {
            "title": "$:/core/ui/TiddlerInfo",
            "text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
        },
        "$:/core/ui/TopBar/menu": {
            "title": "$:/core/ui/TopBar/menu",
            "tags": "$:/tags/TopRightBar",
            "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n"
        },
        "$:/core/ui/UntaggedTemplate": {
            "title": "$:/core/ui/UntaggedTemplate",
            "text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/body": {
            "title": "$:/core/ui/ViewTemplate/body",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/classic": {
            "title": "$:/core/ui/ViewTemplate/classic",
            "tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
            "text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/import": {
            "title": "$:/core/ui/ViewTemplate/import",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define lingo-base() $:/language/Import/\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n{{||$:/core/ui/ImportListing}}\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n</div>\n\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/plugin": {
            "title": "$:/core/ui/ViewTemplate/plugin",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
        },
        "$:/core/ui/ViewTemplate/subtitle": {
            "title": "$:/core/ui/ViewTemplate/subtitle",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate/tags": {
            "title": "$:/core/ui/ViewTemplate/tags",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>"
        },
        "$:/core/ui/ViewTemplate/title": {
            "title": "$:/core/ui/ViewTemplate/title",
            "tags": "$:/tags/ViewTemplate",
            "text": "\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo\"/>\n\n</$reveal>\n</div>"
        },
        "$:/core/ui/ViewTemplate/unfold": {
            "title": "$:/core/ui/ViewTemplate/unfold",
            "tags": "$:/tags/ViewTemplate",
            "text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
        },
        "$:/core/ui/ViewTemplate": {
            "title": "$:/core/ui/ViewTemplate",
            "text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$\n\\end\n\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n<$set name=\"storyTiddler\" value=<<currentTiddler>>><$set name=\"tiddlerInfoState\" value=<<qualify \"$:/state/popup/tiddler-info\">>><$tiddler tiddler=<<currentTiddler>>><div class=<<frame-classes>>><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$tiddler></$set></$set>\n"
        },
        "$:/core/ui/Buttons/clone": {
            "title": "$:/core/ui/Buttons/clone",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
            "description": "{{$:/language/Buttons/Clone/Hint}}",
            "text": "<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Clone/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close-others": {
            "title": "$:/core/ui/Buttons/close-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
            "description": "{{$:/language/Buttons/CloseOthers/Hint}}",
            "text": "<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseOthers/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/close": {
            "title": "$:/core/ui/Buttons/close",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
            "description": "{{$:/language/Buttons/Close/Hint}}",
            "text": "<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Close/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/edit": {
            "title": "$:/core/ui/Buttons/edit",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
            "description": "{{$:/language/Buttons/Edit/Hint}}",
            "text": "<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Edit/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/core/ui/Buttons/export-tiddler",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
            "description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
            "text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
        },
        "$:/core/ui/Buttons/fold-bar": {
            "title": "$:/core/ui/Buttons/fold-bar",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
            "description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
            "text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
        },
        "$:/core/ui/Buttons/fold-others": {
            "title": "$:/core/ui/Buttons/fold-others",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
            "description": "{{$:/language/Buttons/FoldOthers/Hint}}",
            "text": "<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldOthers/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/fold": {
            "title": "$:/core/ui/Buttons/fold",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
            "description": "{{$:/language/Buttons/Fold/Hint}}",
            "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal><$reveal type=\"match\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal>"
        },
        "$:/core/ui/Buttons/info": {
            "title": "$:/core/ui/Buttons/info",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
            "description": "{{$:/language/Buttons/Info/Hint}}",
            "text": "\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Info/Caption}}/></span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
        },
        "$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/core/ui/Buttons/more-tiddler-actions",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
            "description": "{{$:/language/Buttons/More/Hint}}",
            "text": "\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
        },
        "$:/core/ui/Buttons/new-here": {
            "title": "$:/core/ui/Buttons/new-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
            "description": "{{$:/language/Buttons/NewHere/Hint}}",
            "text": "\\define newHereButtonTags()\n[[$(currentTiddler)$]]\n\\end\n\\define newHereButton()\n<$button tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<newHereButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>"
        },
        "$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/core/ui/Buttons/new-journal-here",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
            "description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
            "text": "\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournalHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set></$set></$set>"
        },
        "$:/core/ui/Buttons/open-window": {
            "title": "$:/core/ui/Buttons/open-window",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
            "description": "{{$:/language/Buttons/OpenWindow/Hint}}",
            "text": "<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/OpenWindow/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permalink": {
            "title": "$:/core/ui/Buttons/permalink",
            "tags": "$:/tags/ViewToolbar",
            "caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
            "description": "{{$:/language/Buttons/Permalink/Hint}}",
            "text": "<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permalink/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/core/ui/Buttons/permaview": {
            "title": "$:/core/ui/Buttons/permaview",
            "tags": "$:/tags/ViewToolbar $:/tags/PageControls",
            "caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
            "description": "{{$:/language/Buttons/Permaview/Hint}}",
            "text": "<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permaview/Caption}}/></span>\n</$list>\n</$button>"
        },
        "$:/DefaultTiddlers": {
            "title": "$:/DefaultTiddlers",
            "text": "GettingStarted\n"
        },
        "$:/temp/advancedsearch": {
            "title": "$:/temp/advancedsearch",
            "text": ""
        },
        "$:/snippets/allfields": {
            "title": "$:/snippets/allfields",
            "text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
        },
        "$:/config/AnimationDuration": {
            "title": "$:/config/AnimationDuration",
            "text": "400"
        },
        "$:/config/AutoSave": {
            "title": "$:/config/AutoSave",
            "text": "yes"
        },
        "$:/config/BitmapEditor/Colour": {
            "title": "$:/config/BitmapEditor/Colour",
            "text": "#444"
        },
        "$:/config/BitmapEditor/ImageSizes": {
            "title": "$:/config/BitmapEditor/ImageSizes",
            "text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
        },
        "$:/config/BitmapEditor/LineWidth": {
            "title": "$:/config/BitmapEditor/LineWidth",
            "text": "3px"
        },
        "$:/config/BitmapEditor/LineWidths": {
            "title": "$:/config/BitmapEditor/LineWidths",
            "text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
        },
        "$:/config/BitmapEditor/Opacities": {
            "title": "$:/config/BitmapEditor/Opacities",
            "text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
        },
        "$:/config/BitmapEditor/Opacity": {
            "title": "$:/config/BitmapEditor/Opacity",
            "text": "1.0"
        },
        "$:/config/DefaultSidebarTab": {
            "title": "$:/config/DefaultSidebarTab",
            "text": "$:/core/ui/SideBar/Open"
        },
        "$:/config/DownloadSaver/AutoSave": {
            "title": "$:/config/DownloadSaver/AutoSave",
            "text": "no"
        },
        "$:/config/Drafts/TypingTimeout": {
            "title": "$:/config/Drafts/TypingTimeout",
            "text": "400"
        },
        "$:/config/EditTemplateFields/Visibility/title": {
            "title": "$:/config/EditTemplateFields/Visibility/title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/tags": {
            "title": "$:/config/EditTemplateFields/Visibility/tags",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/text": {
            "title": "$:/config/EditTemplateFields/Visibility/text",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/creator": {
            "title": "$:/config/EditTemplateFields/Visibility/creator",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/created": {
            "title": "$:/config/EditTemplateFields/Visibility/created",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modified": {
            "title": "$:/config/EditTemplateFields/Visibility/modified",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/modifier": {
            "title": "$:/config/EditTemplateFields/Visibility/modifier",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/type": {
            "title": "$:/config/EditTemplateFields/Visibility/type",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.title": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.title",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/draft.of": {
            "title": "$:/config/EditTemplateFields/Visibility/draft.of",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/revision": {
            "title": "$:/config/EditTemplateFields/Visibility/revision",
            "text": "hide"
        },
        "$:/config/EditTemplateFields/Visibility/bag": {
            "title": "$:/config/EditTemplateFields/Visibility/bag",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
            "text": "hide"
        },
        "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
            "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
            "text": "hide"
        },
        "$:/config/EditorTypeMappings/image/gif": {
            "title": "$:/config/EditorTypeMappings/image/gif",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpeg": {
            "title": "$:/config/EditorTypeMappings/image/jpeg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/jpg": {
            "title": "$:/config/EditorTypeMappings/image/jpg",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/png": {
            "title": "$:/config/EditorTypeMappings/image/png",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/image/x-icon": {
            "title": "$:/config/EditorTypeMappings/image/x-icon",
            "text": "bitmap"
        },
        "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
            "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
            "text": "text"
        },
        "$:/config/Manager/Show": {
            "title": "$:/config/Manager/Show",
            "text": "tiddlers"
        },
        "$:/config/Manager/Filter": {
            "title": "$:/config/Manager/Filter",
            "text": ""
        },
        "$:/config/Manager/Order": {
            "title": "$:/config/Manager/Order",
            "text": "forward"
        },
        "$:/config/Manager/Sort": {
            "title": "$:/config/Manager/Sort",
            "text": "title"
        },
        "$:/config/Manager/System": {
            "title": "$:/config/Manager/System",
            "text": "system"
        },
        "$:/config/Manager/Tag": {
            "title": "$:/config/Manager/Tag",
            "text": ""
        },
        "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
            "title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
            "text": "hide"
        },
        "$:/config/MissingLinks": {
            "title": "$:/config/MissingLinks",
            "text": "yes"
        },
        "$:/config/Navigation/UpdateAddressBar": {
            "title": "$:/config/Navigation/UpdateAddressBar",
            "text": "no"
        },
        "$:/config/Navigation/UpdateHistory": {
            "title": "$:/config/Navigation/UpdateHistory",
            "text": "no"
        },
        "$:/config/OfficialPluginLibrary": {
            "title": "$:/config/OfficialPluginLibrary",
            "tags": "$:/tags/PluginLibrary",
            "url": "http://tiddlywiki.com/library/v5.1.14/index.html",
            "caption": "{{$:/language/OfficialPluginLibrary}}",
            "text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
        },
        "$:/config/Navigation/openLinkFromInsideRiver": {
            "title": "$:/config/Navigation/openLinkFromInsideRiver",
            "text": "below"
        },
        "$:/config/Navigation/openLinkFromOutsideRiver": {
            "title": "$:/config/Navigation/openLinkFromOutsideRiver",
            "text": "top"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
            "text": "hide"
        },
        "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
            "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
            "text": "hide"
        },
        "$:/config/Performance/Instrumentation": {
            "title": "$:/config/Performance/Instrumentation",
            "text": "no"
        },
        "$:/config/SaveWikiButton/Template": {
            "title": "$:/config/SaveWikiButton/Template",
            "text": "$:/core/save/all"
        },
        "$:/config/SaverFilter": {
            "title": "$:/config/SaverFilter",
            "text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/config/Search/AutoFocus": {
            "title": "$:/config/Search/AutoFocus",
            "text": "true"
        },
        "$:/config/Search/MinLength": {
            "title": "$:/config/Search/MinLength",
            "text": "3"
        },
        "$:/config/SearchResults/Default": {
            "title": "$:/config/SearchResults/Default",
            "text": "$:/core/ui/DefaultSearchResultList"
        },
        "$:/config/ShortcutInfo/bold": {
            "title": "$:/config/ShortcutInfo/bold",
            "text": "{{$:/language/Buttons/Bold/Hint}}"
        },
        "$:/config/ShortcutInfo/cancel-edit-tiddler": {
            "title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
            "text": "{{$:/language/Buttons/Cancel/Hint}}"
        },
        "$:/config/ShortcutInfo/excise": {
            "title": "$:/config/ShortcutInfo/excise",
            "text": "{{$:/language/Buttons/Excise/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-1": {
            "title": "$:/config/ShortcutInfo/heading-1",
            "text": "{{$:/language/Buttons/Heading1/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-2": {
            "title": "$:/config/ShortcutInfo/heading-2",
            "text": "{{$:/language/Buttons/Heading2/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-3": {
            "title": "$:/config/ShortcutInfo/heading-3",
            "text": "{{$:/language/Buttons/Heading3/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-4": {
            "title": "$:/config/ShortcutInfo/heading-4",
            "text": "{{$:/language/Buttons/Heading4/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-5": {
            "title": "$:/config/ShortcutInfo/heading-5",
            "text": "{{$:/language/Buttons/Heading5/Hint}}"
        },
        "$:/config/ShortcutInfo/heading-6": {
            "title": "$:/config/ShortcutInfo/heading-6",
            "text": "{{$:/language/Buttons/Heading6/Hint}}"
        },
        "$:/config/ShortcutInfo/italic": {
            "title": "$:/config/ShortcutInfo/italic",
            "text": "{{$:/language/Buttons/Italic/Hint}}"
        },
        "$:/config/ShortcutInfo/link": {
            "title": "$:/config/ShortcutInfo/link",
            "text": "{{$:/language/Buttons/Link/Hint}}"
        },
        "$:/config/ShortcutInfo/list-bullet": {
            "title": "$:/config/ShortcutInfo/list-bullet",
            "text": "{{$:/language/Buttons/ListBullet/Hint}}"
        },
        "$:/config/ShortcutInfo/list-number": {
            "title": "$:/config/ShortcutInfo/list-number",
            "text": "{{$:/language/Buttons/ListNumber/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-block": {
            "title": "$:/config/ShortcutInfo/mono-block",
            "text": "{{$:/language/Buttons/MonoBlock/Hint}}"
        },
        "$:/config/ShortcutInfo/mono-line": {
            "title": "$:/config/ShortcutInfo/mono-line",
            "text": "{{$:/language/Buttons/MonoLine/Hint}}"
        },
        "$:/config/ShortcutInfo/picture": {
            "title": "$:/config/ShortcutInfo/picture",
            "text": "{{$:/language/Buttons/Picture/Hint}}"
        },
        "$:/config/ShortcutInfo/preview": {
            "title": "$:/config/ShortcutInfo/preview",
            "text": "{{$:/language/Buttons/Preview/Hint}}"
        },
        "$:/config/ShortcutInfo/quote": {
            "title": "$:/config/ShortcutInfo/quote",
            "text": "{{$:/language/Buttons/Quote/Hint}}"
        },
        "$:/config/ShortcutInfo/save-tiddler": {
            "title": "$:/config/ShortcutInfo/save-tiddler",
            "text": "{{$:/language/Buttons/Save/Hint}}"
        },
        "$:/config/ShortcutInfo/stamp": {
            "title": "$:/config/ShortcutInfo/stamp",
            "text": "{{$:/language/Buttons/Stamp/Hint}}"
        },
        "$:/config/ShortcutInfo/strikethrough": {
            "title": "$:/config/ShortcutInfo/strikethrough",
            "text": "{{$:/language/Buttons/Strikethrough/Hint}}"
        },
        "$:/config/ShortcutInfo/subscript": {
            "title": "$:/config/ShortcutInfo/subscript",
            "text": "{{$:/language/Buttons/Subscript/Hint}}"
        },
        "$:/config/ShortcutInfo/superscript": {
            "title": "$:/config/ShortcutInfo/superscript",
            "text": "{{$:/language/Buttons/Superscript/Hint}}"
        },
        "$:/config/ShortcutInfo/underline": {
            "title": "$:/config/ShortcutInfo/underline",
            "text": "{{$:/language/Buttons/Underline/Hint}}"
        },
        "$:/config/SyncFilter": {
            "title": "$:/config/SyncFilter",
            "text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
        },
        "$:/config/TextEditor/EditorHeight/Height": {
            "title": "$:/config/TextEditor/EditorHeight/Height",
            "text": "400px"
        },
        "$:/config/TextEditor/EditorHeight/Mode": {
            "title": "$:/config/TextEditor/EditorHeight/Mode",
            "text": "auto"
        },
        "$:/config/TiddlerInfo/Default": {
            "title": "$:/config/TiddlerInfo/Default",
            "text": "$:/core/ui/TiddlerInfo/Fields"
        },
        "$:/config/TiddlerInfo/Mode": {
            "title": "$:/config/TiddlerInfo/Mode",
            "text": "popup"
        },
        "$:/config/Tiddlers/TitleLinks": {
            "title": "$:/config/Tiddlers/TitleLinks",
            "text": "no"
        },
        "$:/config/Toolbar/ButtonClass": {
            "title": "$:/config/Toolbar/ButtonClass",
            "text": "tc-btn-invisible"
        },
        "$:/config/Toolbar/Icons": {
            "title": "$:/config/Toolbar/Icons",
            "text": "yes"
        },
        "$:/config/Toolbar/Text": {
            "title": "$:/config/Toolbar/Text",
            "text": "no"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
            "text": "show"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
            "text": "hide"
        },
        "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
            "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
            "text": "hide"
        },
        "$:/config/shortcuts-mac/bold": {
            "title": "$:/config/shortcuts-mac/bold",
            "text": "meta-B"
        },
        "$:/config/shortcuts-mac/italic": {
            "title": "$:/config/shortcuts-mac/italic",
            "text": "meta-I"
        },
        "$:/config/shortcuts-mac/underline": {
            "title": "$:/config/shortcuts-mac/underline",
            "text": "meta-U"
        },
        "$:/config/shortcuts-not-mac/bold": {
            "title": "$:/config/shortcuts-not-mac/bold",
            "text": "ctrl-B"
        },
        "$:/config/shortcuts-not-mac/italic": {
            "title": "$:/config/shortcuts-not-mac/italic",
            "text": "ctrl-I"
        },
        "$:/config/shortcuts-not-mac/underline": {
            "title": "$:/config/shortcuts-not-mac/underline",
            "text": "ctrl-U"
        },
        "$:/config/shortcuts/cancel-edit-tiddler": {
            "title": "$:/config/shortcuts/cancel-edit-tiddler",
            "text": "escape"
        },
        "$:/config/shortcuts/excise": {
            "title": "$:/config/shortcuts/excise",
            "text": "ctrl-E"
        },
        "$:/config/shortcuts/heading-1": {
            "title": "$:/config/shortcuts/heading-1",
            "text": "ctrl-1"
        },
        "$:/config/shortcuts/heading-2": {
            "title": "$:/config/shortcuts/heading-2",
            "text": "ctrl-2"
        },
        "$:/config/shortcuts/heading-3": {
            "title": "$:/config/shortcuts/heading-3",
            "text": "ctrl-3"
        },
        "$:/config/shortcuts/heading-4": {
            "title": "$:/config/shortcuts/heading-4",
            "text": "ctrl-4"
        },
        "$:/config/shortcuts/heading-5": {
            "title": "$:/config/shortcuts/heading-5",
            "text": "ctrl-5"
        },
        "$:/config/shortcuts/heading-6": {
            "title": "$:/config/shortcuts/heading-6",
            "text": "ctrl-6"
        },
        "$:/config/shortcuts/link": {
            "title": "$:/config/shortcuts/link",
            "text": "ctrl-L"
        },
        "$:/config/shortcuts/list-bullet": {
            "title": "$:/config/shortcuts/list-bullet",
            "text": "ctrl-shift-L"
        },
        "$:/config/shortcuts/list-number": {
            "title": "$:/config/shortcuts/list-number",
            "text": "ctrl-shift-N"
        },
        "$:/config/shortcuts/mono-block": {
            "title": "$:/config/shortcuts/mono-block",
            "text": "ctrl-shift-M"
        },
        "$:/config/shortcuts/mono-line": {
            "title": "$:/config/shortcuts/mono-line",
            "text": "ctrl-M"
        },
        "$:/config/shortcuts/picture": {
            "title": "$:/config/shortcuts/picture",
            "text": "ctrl-shift-I"
        },
        "$:/config/shortcuts/preview": {
            "title": "$:/config/shortcuts/preview",
            "text": "alt-P"
        },
        "$:/config/shortcuts/quote": {
            "title": "$:/config/shortcuts/quote",
            "text": "ctrl-Q"
        },
        "$:/config/shortcuts/save-tiddler": {
            "title": "$:/config/shortcuts/save-tiddler",
            "text": "ctrl+enter"
        },
        "$:/config/shortcuts/stamp": {
            "title": "$:/config/shortcuts/stamp",
            "text": "ctrl-S"
        },
        "$:/config/shortcuts/strikethrough": {
            "title": "$:/config/shortcuts/strikethrough",
            "text": "ctrl-T"
        },
        "$:/config/shortcuts/subscript": {
            "title": "$:/config/shortcuts/subscript",
            "text": "ctrl-shift-B"
        },
        "$:/config/shortcuts/superscript": {
            "title": "$:/config/shortcuts/superscript",
            "text": "ctrl-shift-P"
        },
        "$:/config/WikiParserRules/Inline/wikilink": {
            "title": "$:/config/WikiParserRules/Inline/wikilink",
            "text": "enable"
        },
        "$:/snippets/currpalettepreview": {
            "title": "$:/snippets/currpalettepreview",
            "text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch(colour)\n<$set name=\"swatchColour\" value={{##$colour$}}>\n<div class=\"tc-swatch\" style=<<swatchStyle>>/>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\">\n<<swatch foreground>>\n<<swatch background>>\n<<swatch muted-foreground>>\n<<swatch primary>>\n<<swatch page-background>>\n<<swatch tab-background>>\n<<swatch tiddler-info-background>>\n</div>\n"
        },
        "$:/snippets/download-wiki-button": {
            "title": "$:/snippets/download-wiki-button",
            "text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
        },
        "$:/language": {
            "title": "$:/language",
            "text": "$:/languages/en-GB"
        },
        "$:/snippets/languageswitcher": {
            "title": "$:/snippets/languageswitcher",
            "text": "{{$:/language/ControlPanel/Basics/Language/Prompt}} <$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/core/macros/CSS": {
            "title": "$:/core/macros/CSS",
            "tags": "$:/tags/Macro",
            "text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"/></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n  -webkit-box-shadow: $shadow$;\n     -moz-box-shadow: $shadow$;\n          box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n  -webkit-filter: $filter$;\n     -moz-filter: $filter$;\n          filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n  -webkit-transition: $transition$;\n     -moz-transition: $transition$;\n          transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n  -webkit-transform-origin: $origin$;\n     -moz-transform-origin: $origin$;\n          transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n"
        },
        "$:/core/macros/colour-picker": {
            "title": "$:/core/macros/colour-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<div style=\"background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/> \n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
        },
        "$:/core/macros/export": {
            "title": "$:/core/macros/export",
            "tags": "$:/tags/Macro",
            "text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
        },
        "$:/core/macros/image-picker": {
            "title": "$:/core/macros/image-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
        },
        "$:/core/macros/lingo": {
            "title": "$:/core/macros/lingo",
            "tags": "$:/tags/Macro",
            "text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
        },
        "$:/core/macros/list": {
            "title": "$:/core/macros/list",
            "tags": "$:/tags/Macro",
            "text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\")\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\">\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n<$link to={{!!title}}>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$transclude>\n</$link>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n&nbsp;\n</div>\n<div>\n&nbsp;\n</div>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n\\end\n\n\\define list-tagged-draggable-drop-actions()\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<tag>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<tag>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Assign the list field of the tag with the current ordering -->\n<$action-setfield $tiddler=<<tag>> $field=\"list\" $value=<<order>>/>\n<!-- Add the newly inserted item to the list -->\n<$action-listops $tiddler=<<tag>> $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<$action-listops $tiddler=<<actionTiddler>> $tags=\"[<tag>]\"/>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,itemTemplate,elementTag:\"div\")\n<$set name=\"tag\" value=\"\"\"$tag$\"\"\">\n<$list filter=\"[<tag>tagging[]]\">\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n&nbsp;\n</$elementTag$>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-tagged-draggable-drop-actions>>>\n<$elementTag$ class=\"tc-droppable-placeholder\">\n&nbsp;\n</$elementTag$>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tabs": {
            "title": "$:/core/macros/tabs",
            "tags": "$:/tags/Macro",
            "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
        },
        "$:/core/macros/tag-picker": {
            "title": "$:/core/macros/tag-picker",
            "tags": "$:/tags/Macro",
            "text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\">\n$(actions)$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker(actions)\n<$set name=\"actions\" value=\"\"\"$actions$\"\"\">\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{$:/temp/NewTagName}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n$actions$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list>\n<hr>\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list>\n</div>\n</$reveal>\n</div>\n</$set>\n\\end\n"
        },
        "$:/core/macros/tag": {
            "title": "$:/core/macros/tag",
            "tags": "$:/tags/Macro",
            "text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view tiddler=\"\"\"$tag$\"\"\" field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=\"\"\"$tag$\"\"\" icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=\"\"\"$tag$\"\"\" icon={{$tag$!!icon}} colour={{$tag$!!color}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
        },
        "$:/core/macros/thumbnails": {
            "title": "$:/core/macros/thumbnails",
            "tags": "$:/tags/Macro",
            "text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
        },
        "$:/core/macros/timeline": {
            "created": "20141212105914482",
            "modified": "20141212110330815",
            "tags": "$:/tags/Macro",
            "title": "$:/core/macros/timeline",
            "type": "text/vnd.tiddlywiki",
            "text": "\\define timeline-title()\n<!-- Override this macro with a global macro \n     of the same name if you need to change \n     how titles are displayed on the timeline \n     -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}>\n<<timeline-title>>\n</$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
        },
        "$:/core/macros/toc": {
            "title": "$:/core/macros/toc",
            "tags": "$:/tags/Macro",
            "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n  <$transclude field=\"caption\">\n    <$view field=\"title\"/>\n  </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n  <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n    <$vars item=<<currentTiddler>> path=\"\"\"$path$/$tag$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\">\n      <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n        <li class=<<toc-item-class>>>\n          <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n            <<toc-caption>>\n          </$list>\n          <$macrocall $name=\"toc-body\" tag=<<item>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>>/>\n        </li>\n      </$set>\n    </$vars>\n  </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\" \")\n<<toc-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n    <$link>\n      <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n          {{$:/core/images/right-arrow}}\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n          {{$:/core/images/down-arrow}}\n        </$button>\n      </$reveal>\n      <<toc-caption>>\n    </$link>\n    <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n      <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n    </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n      <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n          {{$:/core/images/right-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n          {{$:/core/images/down-arrow}}\n          <<toc-caption>>\n        </$button>\n      </$reveal>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-expandable-empty-message()\n<<toc-linked-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n  <ol class=\"tc-toc toc-expandable\">\n    <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n      <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n        <$macrocall $name=\"toc-unlinked-expandable-body\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n      </$list>\n    </$list>\n  </ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\" >\n    <li class=<<toc-item-class>>>\n      <$link>\n          <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n          <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n            <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n              {{$:/core/images/right-arrow}}\n            </$button>\n          </$reveal>\n          <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n            <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n              {{$:/core/images/down-arrow}}\n            </$button>\n          </$reveal>\n        </$list>\n        <<toc-caption>>\n      </$link>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n  <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n    <li class=<<toc-item-class>>>\n      <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n        <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n          <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n            {{$:/core/images/right-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n        <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n          <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n            {{$:/core/images/down-arrow}}\n            <<toc-caption>>\n          </$button>\n        </$reveal>\n      </$list>\n      <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n        <$macrocall $name=\"\"\"toc-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n      </$reveal>\n    </li>\n  </$set>\n</$set>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<<toc-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n  <ol class=\"tc-toc toc-selective-expandable\">\n    <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] $exclude$\"\"\">\n      <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n        <$macrocall $name=toc-unlinked-selective-expandable-body tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>> >\n      </$list>\n    </$list>\n  </ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-selected-item-filter(selectedTiddler)\n[all[current]field:title{$selectedTiddler$}]\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{$selectedTiddler$}}>\n  <div class=\"tc-tabbed-table-of-contents\">\n    <$linkcatcher to=\"$selectedTiddler$\">\n      <div class=\"tc-table-of-contents\">\n        <$macrocall $name=\"toc-selective-expandable\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=<<toc-tabbed-selected-item-filter selectedTiddler:\"\"\"$selectedTiddler$\"\"\">>/>\n      </div>\n    </$linkcatcher>\n    <div class=\"tc-tabbed-table-of-contents-content\">\n      <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"nomatch\" text=\"\">\n        <$transclude mode=\"block\" tiddler=\"$template$\">\n          <h1><<toc-caption>></h1>\n          <$transclude mode=\"block\">$missingText$</$transclude>\n        </$transclude>\n      </$reveal>\n      <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"match\" text=\"\">\n        $unselectedText$\n      </$reveal>\n    </div>\n  </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=\"\"\"$selectedTiddler$\"\"\">\n  <$macrocall $name=\"toc-tabbed-external-nav\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" selectedTiddler=\"\"\"$selectedTiddler$\"\"\" unselectedText=\"\"\"$unselectedText$\"\"\" missingText=\"\"\"$missingText$\"\"\" template=\"\"\"$template$\"\"\"/>\n</$linkcatcher>\n\\end\n\n"
        },
        "$:/core/macros/translink": {
            "title": "$:/core/macros/translink",
            "tags": "$:/tags/Macro",
            "text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
        },
        "$:/snippets/minilanguageswitcher": {
            "title": "$:/snippets/minilanguageswitcher",
            "text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/minithemeswitcher": {
            "title": "$:/snippets/minithemeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
        },
        "$:/snippets/modules": {
            "title": "$:/snippets/modules",
            "text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
        },
        "$:/palette": {
            "title": "$:/palette",
            "text": "$:/palettes/Vanilla"
        },
        "$:/snippets/paletteeditor": {
            "title": "$:/snippets/paletteeditor",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<table>\n<tbody>\n<$list filter=\"[all[current]indexes[]]\" variable=\"colourName\">\n<tr>\n<td>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<$edit-text index=<<colourName>> tag=\"input\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</$set>\n"
        },
        "$:/snippets/palettepreview": {
            "title": "$:/snippets/palettepreview",
            "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n<$transclude tiddler=\"$:/snippets/currpalettepreview\"/>\n</$set>\n"
        },
        "$:/snippets/paletteswitcher": {
            "title": "$:/snippets/paletteswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n<div class=\"tc-prompt\">\n<<lingo Prompt>> <$view tiddler={{$:/palette}} field=\"name\"/>\n</div>\n\n<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]\"><div class=\"tc-chooser-item\"><$link to={{!!title}}><div><$reveal state=\"$:/palette\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/palette\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> ''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/></div><$transclude tiddler=\"$:/snippets/currpalettepreview\"/></$link></div>\n</$list>\n</div>\n</$linkcatcher>"
        },
        "$:/temp/search": {
            "title": "$:/temp/search",
            "text": ""
        },
        "$:/tags/AdvancedSearch": {
            "title": "$:/tags/AdvancedSearch",
            "list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
        },
        "$:/tags/AdvancedSearch/FilterButton": {
            "title": "$:/tags/AdvancedSearch/FilterButton",
            "list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
        },
        "$:/tags/ControlPanel": {
            "title": "$:/tags/ControlPanel",
            "list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
        },
        "$:/tags/ControlPanel/Info": {
            "title": "$:/tags/ControlPanel/Info",
            "list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
        },
        "$:/tags/ControlPanel/Plugins": {
            "title": "$:/tags/ControlPanel/Plugins",
            "list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
        },
        "$:/tags/EditTemplate": {
            "title": "$:/tags/EditTemplate",
            "list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
        },
        "$:/tags/EditToolbar": {
            "title": "$:/tags/EditToolbar",
            "list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
        },
        "$:/tags/EditorToolbar": {
            "title": "$:/tags/EditorToolbar",
            "list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
        },
        "$:/tags/Manager/ItemMain": {
            "title": "$:/tags/Manager/ItemMain",
            "list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
        },
        "$:/tags/Manager/ItemSidebar": {
            "title": "$:/tags/Manager/ItemSidebar",
            "list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
        },
        "$:/tags/MoreSideBar": {
            "title": "$:/tags/MoreSideBar",
            "list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Plugins]]",
            "text": ""
        },
        "$:/tags/PageControls": {
            "title": "$:/tags/PageControls",
            "list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
        },
        "$:/tags/PageTemplate": {
            "title": "$:/tags/PageTemplate",
            "list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
            "text": ""
        },
        "$:/tags/SideBar": {
            "title": "$:/tags/SideBar",
            "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo": {
            "title": "$:/tags/TiddlerInfo",
            "list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
            "text": ""
        },
        "$:/tags/TiddlerInfo/Advanced": {
            "title": "$:/tags/TiddlerInfo/Advanced",
            "list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
        },
        "$:/tags/ViewTemplate": {
            "title": "$:/tags/ViewTemplate",
            "list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
        },
        "$:/tags/ViewToolbar": {
            "title": "$:/tags/ViewToolbar",
            "list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
        },
        "$:/snippets/themeswitcher": {
            "title": "$:/snippets/themeswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$view tiddler={{$:/theme}} field=\"name\"/>\n\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\"><div><$reveal state=\"$:/theme\" type=\"match\" text={{!!title}}>&bull;</$reveal><$reveal state=\"$:/theme\" type=\"nomatch\" text={{!!title}}>&nbsp;</$reveal> <$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$list>\n</$linkcatcher>"
        },
        "$:/core/wiki/title": {
            "title": "$:/core/wiki/title",
            "type": "text/vnd.tiddlywiki",
            "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
        },
        "$:/view": {
            "title": "$:/view",
            "text": "classic"
        },
        "$:/snippets/viewswitcher": {
            "title": "$:/snippets/viewswitcher",
            "text": "\\define lingo-base() $:/language/ControlPanel/StoryView/\n<<lingo Prompt>> <$select tiddler=\"$:/view\">\n<$list filter=\"[storyviews[]]\">\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>"
        }
    }
}
[[🢔⦗Home⦘🢖]]
{
    "tiddlers": {
        "Untitled": {
            "title": "Untitled",
            "text": "|customTable|k\n|Food|Calories|h\n|||\n|||\n|||\n|||\n|||\n|||\n|||\n|||\n|||\n|Total||f",
            "type": "text/plain"
        }
    }
}
no
\define ref(label)
<$button popup="$:/state/$label$" class="tc-btn-invisible tc-slider"><sup style="color:green">$label$</sup></$button>
\end

\define definition(label,text)
<$reveal type="popup" state="$:/state/$label$" animate="yes">
<div class="tc-drop-down">
<dl>
<dt>$label$</dt>
<dd>$text$</dd>
</dl>
</div>
</$reveal>
\end

\define footnote(label,text)
<<ref "$label$">>
<<definition "$label$" "$text$">>
\end

\define footnotes(label,text)
<<definition "$label$" "$text$">>
<sub><span style="color:green">$label$ : </span> $text$</sub>
\end
$:/palettes/ContrastDark
alert-background: #f00
alert-border: <<colour background>>
alert-highlight: <<colour foreground>>
alert-muted-foreground: #800
background: #000
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour background>>
button-foreground: <<colour foreground>>
button-border: <<colour foreground>>
code-background: #000000
code-border: <<colour foreground>>
code-foreground: <<colour foreground>>
dirty-indicator: #f00
download-background: #080
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: <<colour foreground>>
dropdown-tab-background: <<colour foreground>>
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #02A1D6
external-link-foreground: #02A1D6
foreground: #fff
message-background: <<colour foreground>>
message-border: <<colour background>>
message-foreground: <<colour background>>
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: <<colour foreground>>
modal-footer-background: <<colour background>>
modal-footer-border: <<colour foreground>>
modal-header-border: <<colour foreground>>
muted-foreground: <<colour foreground>>
notification-background: <<colour background>>
notification-border: <<colour foreground>>
page-background: <<colour background>>
pre-background: <<colour background>>
pre-border: <<colour foreground>>
primary: #02A1D6
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: <<colour background>>
sidebar-controls-foreground: <<colour foreground>>
sidebar-foreground-shadow: rgba(0,0,0, 0)
sidebar-foreground: <<colour foreground>>
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: <<colour foreground>>
sidebar-tab-background-selected: <<colour background>>
sidebar-tab-background: <<colour tab-background>>
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: <<colour tab-divider>>
sidebar-tab-foreground-selected: <<colour foreground>>
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
sidebar-tiddler-link-foreground: <<colour primary>>
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #aaaaaa
tab-background-selected: <<colour background>>
tab-background: <<colour foreground>>
tab-border-selected: <<colour foreground>>
tab-border: <<colour foreground>>
tab-divider: <<colour foreground>>
tab-foreground-selected: <<colour foreground>>
tab-foreground: <<colour background>>
table-border: #dddddd
table-footer-background: #a8a8a8
table-header-background: #a8a8a8
tag-background: #fff
tag-foreground: #000
tiddler-background: <<colour background>>
tiddler-border: #3b3333
tiddler-controls-foreground-hover: #ddd
tiddler-controls-foreground-selected: #fdd
tiddler-controls-foreground: <<colour foreground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour foreground>>
tiddler-editor-border: #cccccc
tiddler-editor-fields-even: <<colour background>>
tiddler-editor-fields-odd: <<colour background>>
tiddler-info-background: <<colour background>>
tiddler-info-border: <<colour foreground>>
tiddler-info-tab-background: <<colour background>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour foreground>>
tiddler-title-foreground: <<colour foreground>>
toolbar-new-button: 
toolbar-options-button: 
toolbar-save-button: 
toolbar-info-button: 
toolbar-edit-button: 
toolbar-close-button: 
toolbar-delete-button: 
toolbar-cancel-button: 
toolbar-done-button: 
untagged-background: <<colour foreground>>
very-muted-foreground: #888888
{
    "tiddlers": {
        "$:/config/HighlightPlugin/TypeMappings/application/javascript": {
            "title": "$:/config/HighlightPlugin/TypeMappings/application/javascript",
            "text": "javascript"
        },
        "$:/config/HighlightPlugin/TypeMappings/application/json": {
            "title": "$:/config/HighlightPlugin/TypeMappings/application/json",
            "text": "json"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/css": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/css",
            "text": "css"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/html": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/html",
            "text": "html"
        },
        "$:/config/HighlightPlugin/TypeMappings/image/svg+xml": {
            "title": "$:/config/HighlightPlugin/TypeMappings/image/svg+xml",
            "text": "xml"
        },
        "$:/config/HighlightPlugin/TypeMappings/text/x-markdown": {
            "title": "$:/config/HighlightPlugin/TypeMappings/text/x-markdown",
            "text": "markdown"
        },
        "$:/plugins/tiddlywiki/highlight/highlight.js": {
            "text": "var hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n!function(e){\"undefined\"!=typeof exports?e(exports):(window.hljs=e({}),\"function\"==typeof define&&define.amd&&define(\"hljs\",[],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,\"&amp;\").replace(/</gm,\"&lt;\").replace(/>/gm,\"&gt;\")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/^(no-?highlight|plain|text)$/i.test(e)}function i(e){var n,t,r,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=/\\blang(?:uage)?-([\\w-]+)\\b/i.exec(i))return w(t[1])?t[1]:\"no-highlight\";for(i=i.split(/\\s+/),n=0,r=i.length;r>n;n++)if(w(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:\"start\",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:\"stop\",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset<r[0].offset?e:r:\"start\"==r[0].event?e:r:e.length?e:r}function o(e){function r(e){return\" \"+e.nodeName+'=\"'+n(e.value)+'\"'}f+=\"<\"+t(e)+Array.prototype.map.call(e.attributes,r).join(\"\")+\">\"}function u(e){f+=\"</\"+t(e)+\">\"}function c(e){(\"start\"==e.event?o:u)(e.node)}for(var s=0,f=\"\",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else\"start\"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),\"m\"+(e.cI?\"i\":\"\")+(r?\"g\":\"\"))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(\" \").forEach(function(e){var t=e.split(\"|\");u[t[0]]=[n,t[1]?Number(t[1]):1]})};\"string\"==typeof a.k?c(\"keyword\",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\\b\\w+\\b/,!0),i&&(a.bK&&(a.b=\"\\\\b(\"+a.bK.split(\" \").join(\"|\")+\")\\\\b\"),a.b||(a.b=/\\B|\\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\\B|\\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||\"\",a.eW&&i.tE&&(a.tE+=(a.e?\"|\":\"\")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push(\"self\"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?\"\\\\.?(\"+e.b+\")\\\\.?\":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join(\"|\"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t<n.c.length;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?\"\":E.classPrefix,i='<span class=\"'+a,o=t?\"\":\"</span>\";return i+=e+'\">',i+n+o}function p(){if(!L.k)return n(y);var e=\"\",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(y);r;){e+=n(y.substr(t,r.index-t));var a=g(L,r);a?(B+=a[1],e+=h(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(y)}return e+n(y.substr(t))}function d(){var e=\"string\"==typeof L.sL;if(e&&!x[L.sL])return n(y);var t=e?f(L.sL,y,!0,M[L.sL]):l(y,L.sL.length?L.sL:void 0);return L.r>0&&(B+=t.r),e&&(M[L.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){return void 0!==L.sL?d():p()}function v(e,t){var r=e.cN?h(e.cN,\"\",!0):\"\";e.rB?(k+=r,y=\"\"):e.eB?(k+=n(t)+r,y=\"\"):(k+=r,y=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(y+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(y+=t),k+=b();do L.cN&&(k+=\"</span>\"),B+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),y=\"\",a.starts&&v(a.starts,\"\"),i.rE?0:t.length}if(c(t,L))throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(L.cN||\"<unnamed>\")+'\"');return y+=t,t.length||1}var N=w(e);if(!N)throw new Error('Unknown language: \"'+e+'\"');s(N);var R,L=i||N,M={},k=\"\";for(R=L;R!=N;R=R.parent)R.cN&&(k=h(R.cN,\"\",!0)+k);var y=\"\",B=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+=\"</span>\");return{r:B,value:k,language:e,top:L}}catch(O){if(-1!=O.message.indexOf(\"Illegal\"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||E.languages||Object.keys(x);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(w(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return E.tabReplace&&(e=e.replace(/^((<[^>]+>|\\t)+)/gm,function(e,n){return n.replace(/\\t/g,E.tabReplace)})),E.useBR&&(e=e.replace(/\\n/g,\"<br>\")),e}function h(e,n,t){var r=n?R[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}function p(e){var n=i(e);if(!a(n)){var t;E.useBR?(t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),t.innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var p=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\");p.innerHTML=o.value,o.value=c(s,u(p),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=h(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){E=o(E,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll(\"pre code\");Array.prototype.forEach.call(e,p)}}function v(){addEventListener(\"DOMContentLoaded\",b,!1),addEventListener(\"load\",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){R[e]=n})}function N(){return Object.keys(x)}function w(e){return e=e.toLowerCase(),x[e]||x[R[e]]}var E={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},x={},R={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=w,e.inherit=o,e.IR=\"[a-zA-Z]\\\\w*\",e.UIR=\"[a-zA-Z_]\\\\w*\",e.NR=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",e.CNR=\"(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",e.BNR=\"\\\\b(0b[01]+)\",e.RSR=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",e.BE={b:\"\\\\\\\\[\\\\s\\\\S]\",r:0},e.ASM={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[e.BE]},e.QSM={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[e.BE]},e.PWM={b:/\\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\\b/},e.C=function(n,t,r){var a=e.inherit({cN:\"comment\",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",r:0}),a},e.CLCM=e.C(\"//\",\"$\"),e.CBCM=e.C(\"/\\\\*\",\"\\\\*/\"),e.HCM=e.C(\"#\",\"$\"),e.NM={cN:\"number\",b:e.NR,r:0},e.CNM={cN:\"number\",b:e.CNR,r:0},e.BNM={cN:\"number\",b:e.BNR,r:0},e.CSSNM={cN:\"number\",b:e.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",r:0},e.RM={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[e.BE,{b:/\\[/,e:/\\]/,r:0,c:[e.BE]}]},e.TM={cN:\"title\",b:e.IR,r:0},e.UTM={cN:\"title\",b:e.UIR,r:0},e});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"header\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",r:0},{cN:\"bullet\",b:\"^([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",r:0}]},{cN:\"blockquote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"`.+?`\"},{b:\"^( {4}|\t)\",e:\"$\",r:0}]},{cN:\"horizontal_rule\",b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"link_label\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,r:0},{cN:\"link_url\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"link_reference\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],r:10},{b:\"^\\\\[.+\\\\]:\",rB:!0,c:[{cN:\"link_reference\",b:\"\\\\[\",e:\"\\\\]:\",eB:!0,eE:!0,starts:{cN:\"link_url\",e:\"$\"}}]}]}});hljs.registerLanguage(\"ruby\",function(e){var c=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",r=\"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",b={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={cN:\"value\",b:\"#<\",e:\">\"},n=[e.C(\"#\",\"$\",{c:[b]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[b],r:10}),e.C(\"^__END__\",\"\\\\n$\")],s={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:r},t={cN:\"string\",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",k:r},d=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{cN:\"inheritance\",b:\"<\\\\s*\",c:[{cN:\"parent\",b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(n)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:c}),i].concat(n)},{cN:\"constant\",b:\"(::)?(\\\\b[A-Z]\\\\w*(::)?)+\",r:0},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",r:0},{cN:\"symbol\",b:\":\",c:[t,{b:c}],r:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",r:0},{cN:\"variable\",b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{b:\"(\"+e.RSR+\")\\\\s*\",c:[a,{cN:\"regexp\",c:[e.BE,s],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(n),r:0}].concat(n);s.c=d,i.c=d;var o=\"[>?]>\",l=\"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>\",u=\"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>\",N=[{b:/^\\s*=>/,cN:\"status\",starts:{e:\"$\",c:d}},{cN:\"prompt\",b:\"^(\"+o+\"|\"+l+\"|\"+u+\")\",starts:{e:\"$\",c:d}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:r,c:n.concat(N).concat(d)}});hljs.registerLanguage(\"makefile\",function(e){var a={cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]};return{aliases:[\"mk\",\"mak\"],c:[e.HCM,{b:/^\\w+\\s*\\W*=/,rB:!0,r:0,starts:{cN:\"constant\",e:/\\s*\\W*=/,eE:!0,starts:{e:/$/,r:0,c:[a]}}},{cN:\"title\",b:/^[\\w]+:\\s*$/},{cN:\"phony\",b:/^\\.PHONY:/,e:/$/,k:\".PHONY\",l:/[\\.\\w]+/},{b:/^\\t+/,e:/$/,r:0,c:[e.QSM,a]}]}});hljs.registerLanguage(\"json\",function(e){var t={literal:\"true false null\"},i=[e.QSM,e.CNM],l={cN:\"value\",e:\",\",eW:!0,eE:!0,c:i,k:t},c={b:\"{\",e:\"}\",c:[{cN:\"attribute\",b:'\\\\s*\"',e:'\"\\\\s*:\\\\s*',eB:!0,eE:!0,c:[e.BE],i:\"\\\\n\",starts:l}],i:\"\\\\S\"},n={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(l,{cN:null})],i:\"\\\\S\"};return i.splice(i.length,0,c,n),{c:i,k:t,i:\"\\\\S\"}});hljs.registerLanguage(\"xml\",function(t){var s=\"[A-Za-z0-9\\\\._:-]+\",c={b:/<\\?(php)?(?!\\w)/,e:/\\?>/,sL:\"php\"},e={eW:!0,i:/</,r:0,c:[c,{cN:\"attribute\",b:s,r:0},{b:\"=\",r:0,c:[{cN:\"value\",c:[c],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/[^\\s\\/>]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xsl\",\"plist\"],cI:!0,c:[{cN:\"doctype\",b:\"<!DOCTYPE\",e:\">\",r:10,c:[{b:\"\\\\[\",e:\"\\\\]\"}]},t.C(\"<!--\",\"-->\",{r:10}),{cN:\"cdata\",b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",r:10},{cN:\"tag\",b:\"<style(?=\\\\s|>|$)\",e:\">\",k:{title:\"style\"},c:[e],starts:{e:\"</style>\",rE:!0,sL:\"css\"}},{cN:\"tag\",b:\"<script(?=\\\\s|>|$)\",e:\">\",k:{title:\"script\"},c:[e],starts:{e:\"</script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\"]}},c,{cN:\"pi\",b:/<\\?\\w+/,e:/\\?>/,r:10},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"title\",b:/[^ \\/><\\n\\t]+/,r:0},e]}]}});hljs.registerLanguage(\"css\",function(e){var c=\"[a-zA-Z-][a-zA-Z0-9_-]*\",a={cN:\"function\",b:c+\"\\\\(\",rB:!0,eE:!0,e:\"\\\\(\"},r={cN:\"rule\",b:/[A-Z\\_\\.\\-]+\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{cN:\"value\",eW:!0,eE:!0,c:[a,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"hexcolor\",b:\"#[0-9A-Fa-f]+\"},{cN:\"important\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,r,{cN:\"id\",b:/\\#[A-Za-z0-9_-]+/},{cN:\"class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"attr_selector\",b:/\\[/,e:/\\]/,i:\"$\"},{cN:\"pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"']+/},{cN:\"at_rule\",b:\"@(font-face|page)\",l:\"[a-z-]+\",k:\"font-face page\"},{cN:\"at_rule\",b:\"@\",e:\"[{;]\",c:[{cN:\"keyword\",b:/\\S+/},{b:/\\s/,eW:!0,eE:!0,r:0,c:[a,e.ASM,e.QSM,e.CSSNM]}]},{cN:\"tag\",b:c,r:0},{cN:\"rules\",b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,r]}]}});hljs.registerLanguage(\"perl\",function(e){var t=\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\",r={cN:\"subst\",b:\"[$@]\\\\{\",e:\"\\\\}\",k:t},s={b:\"->{\",e:\"}\"},n={cN:\"variable\",v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,r:0}]},o=[e.BE,r,n],i=[n,e.HCM,e.C(\"^\\\\=\\\\w\",\"\\\\=cut\",{eW:!0}),s,{cN:\"string\",c:o,v:[{b:\"q[qwxr]?\\\\s*\\\\(\",e:\"\\\\)\",r:5},{b:\"q[qwxr]?\\\\s*\\\\[\",e:\"\\\\]\",r:5},{b:\"q[qwxr]?\\\\s*\\\\{\",e:\"\\\\}\",r:5},{b:\"q[qwxr]?\\\\s*\\\\|\",e:\"\\\\|\",r:5},{b:\"q[qwxr]?\\\\s*\\\\<\",e:\"\\\\>\",r:5},{b:\"qw\\\\s+q\",e:\"q\",r:5},{b:\"'\",e:\"'\",c:[e.BE]},{b:'\"',e:'\"'},{b:\"`\",e:\"`\",c:[e.BE]},{b:\"{\\\\w+}\",c:[],r:0},{b:\"-?\\\\w+\\\\s*\\\\=\\\\>\",c:[],r:0}]},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",r:0},{b:\"(\\\\/\\\\/|\"+e.RSR+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",k:\"split return print reverse grep\",r:0,c:[e.HCM,{cN:\"regexp\",b:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",r:10},{cN:\"regexp\",b:\"(m|qr)?/\",e:\"/[a-z]*\",c:[e.BE],r:0}]},{cN:\"sub\",bK:\"sub\",e:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",r:5},{cN:\"operator\",b:\"-\\\\w\\\\b\",r:0},{b:\"^__DATA__$\",e:\"^__END__$\",sL:\"mojolicious\",c:[{b:\"^@@.*\",e:\"$\",cN:\"comment\"}]}];return r.c=i,s.c=i,{aliases:[\"pl\"],k:t,c:i}});hljs.registerLanguage(\"cs\",function(e){var r=\"abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield\",t=e.IR+\"(<\"+e.IR+\">)?\";return{aliases:[\"csharp\"],k:r,i:/::/,c:[e.C(\"///\",\"$\",{rB:!0,c:[{cN:\"xmlDocTag\",v:[{b:\"///\",r:0},{b:\"<!--|-->\"},{b:\"</?\",e:\">\"}]}]}),e.CLCM,e.CBCM,{cN:\"preprocessor\",b:\"#\",e:\"$\",k:\"if else elif endif define undef warning error line region endregion pragma checksum\"},{cN:\"string\",b:'@\"',e:'\"',c:[{b:'\"\"'}]},e.ASM,e.QSM,e.CNM,{bK:\"class interface\",e:/[{;=]/,i:/[^\\s:]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:\"namespace\",e:/[{;=]/,i:/[^\\s:]/,c:[{cN:\"title\",b:\"[a-zA-Z](\\\\.?\\\\w)*\",r:0},e.CLCM,e.CBCM]},{bK:\"new return throw await\",r:0},{cN:\"function\",b:\"(\"+t+\"\\\\s+)+\"+e.IR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:e.IR+\"\\\\s*\\\\(\",rB:!0,c:[e.TM],r:0},{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:r,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage(\"apache\",function(e){var r={cN:\"number\",b:\"[\\\\$%]\\\\d+\"};return{aliases:[\"apacheconf\"],cI:!0,c:[e.HCM,{cN:\"tag\",b:\"</?\",e:\">\"},{cN:\"keyword\",b:/\\w+/,r:0,k:{common:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{e:/$/,r:0,k:{literal:\"on off all\"},c:[{cN:\"sqbracket\",b:\"\\\\s\\\\[\",e:\"\\\\]$\"},{cN:\"cbracket\",b:\"[\\\\$%]\\\\{\",e:\"\\\\}\",c:[\"self\",r]},r,e.QSM]}}],i:/\\S/}});hljs.registerLanguage(\"http\",function(t){return{aliases:[\"https\"],i:\"\\\\S\",c:[{cN:\"status\",b:\"^HTTP/[0-9\\\\.]+\",e:\"$\",c:[{cN:\"number\",b:\"\\\\b\\\\d{3}\\\\b\"}]},{cN:\"request\",b:\"^[A-Z]+ (.*?) HTTP/[0-9\\\\.]+$\",rB:!0,e:\"$\",c:[{cN:\"string\",b:\" \",e:\" \",eB:!0,eE:!0}]},{cN:\"attribute\",b:\"^\\\\w\",e:\": \",eE:!0,i:\"\\\\n|\\\\s|=\",starts:{cN:\"string\",e:\"$\"}},{b:\"\\\\n\\\\n\",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage(\"objectivec\",function(e){var t={cN:\"built_in\",b:\"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\\\w+\"},i={keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},o=/[a-zA-Z@][a-zA-Z0-9_]*/,n=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:i,l:o,i:\"</\",c:[t,e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"'\",e:\"[^\\\\\\\\]'\",i:\"[^\\\\\\\\][^']\"}]},{cN:\"preprocessor\",b:\"#\",e:\"$\",c:[{cN:\"title\",v:[{b:'\"',e:'\"'},{b:\"<\",e:\">\"}]}]},{cN:\"class\",b:\"(\"+n.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:n,l:o,c:[e.UTM]},{cN:\"variable\",b:\"\\\\.\"+e.UIR,r:0}]}});hljs.registerLanguage(\"python\",function(e){var r={cN:\"prompt\",b:/^(>>>|\\.\\.\\.) /},b={cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[r],r:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[r],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)\"/,e:/\"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},a={cN:\"number\",r:0,v:[{b:e.BNR+\"[lLjJ]?\"},{b:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{b:e.CNR+\"[lLjJ]?\"}]},l={cN:\"params\",b:/\\(/,e:/\\)/,c:[\"self\",r,a,b]};return{aliases:[\"py\",\"gyp\"],k:{keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False\",built_in:\"Ellipsis NotImplemented\"},i:/(<\\/|->|\\?)/,c:[r,a,b,e.HCM,{v:[{cN:\"function\",bK:\"def\",r:10},{cN:\"class\",bK:\"class\"}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,l]},{cN:\"decorator\",b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}});hljs.registerLanguage(\"java\",function(e){var a=e.UIR+\"(<\"+e.UIR+\">)?\",t=\"false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private\",c=\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",r={cN:\"number\",b:c,r:0};return{aliases:[\"jsp\"],k:t,i:/<\\/|#/,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{r:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:\"class\",bK:\"class interface\",e:/[{;=]/,eE:!0,k:\"class interface\",i:/[:\"\\[\\]]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"new throw return else\",r:0},{cN:\"function\",b:\"(\"+a+\"\\\\s+)+\"+e.UIR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,r:0,c:[e.UTM]},{cN:\"params\",b:/\\(/,e:/\\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},r,{cN:\"annotation\",b:\"@[A-Za-z]+\"}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},s={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]},a={cN:\"string\",b:/'/,e:/'/};return{aliases:[\"sh\",\"zsh\"],l:/-?[a-z\\.]+/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",operator:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"shebang\",b:/^#![^\\n]+sh\\s*$/,r:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],r:0},e.HCM,e.NM,s,a,t]}});hljs.registerLanguage(\"sql\",function(e){var t=e.C(\"--\",\"$\");return{cI:!0,i:/[<>{}*]/,c:[{cN:\"operator\",bK:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke\",e:/;/,eW:!0,k:{keyword:\"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null\",built_in:\"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void\"},c:[{cN:\"string\",b:\"'\",e:\"'\",c:[e.BE,{b:\"''\"}]},{cN:\"string\",b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}]},{cN:\"string\",b:\"`\",e:\"`\",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage(\"nginx\",function(e){var r={cN:\"variable\",v:[{b:/\\$\\d+/},{b:/\\$\\{/,e:/}/},{b:\"[\\\\$\\\\@]\"+e.UIR}]},b={eW:!0,l:\"[a-z/_]+\",k:{built_in:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},r:0,i:\"=>\",c:[e.HCM,{cN:\"string\",c:[e.BE,r],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/}]},{cN:\"url\",b:\"([a-z]+):/\",e:\"\\\\s\",eW:!0,eE:!0,c:[r]},{cN:\"regexp\",c:[e.BE,r],v:[{b:\"\\\\s\\\\^\",e:\"\\\\s|{|;\",rE:!0},{b:\"~\\\\*?\\\\s+\",e:\"\\\\s|{|;\",rE:!0},{b:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{b:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{cN:\"number\",b:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{cN:\"number\",b:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",r:0},r]};return{aliases:[\"nginxconf\"],c:[e.HCM,{b:e.UIR+\"\\\\s\",e:\";|{\",rB:!0,c:[{cN:\"title\",b:e.UIR,starts:b}],r:0}],i:\"[^\\\\s\\\\}]\"}});hljs.registerLanguage(\"cpp\",function(t){var e={cN:\"keyword\",b:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},r={cN:\"string\",v:[t.inherit(t.QSM,{b:'((u8?|U)|L)?\"'}),{b:'(u8?|U)?R\"',e:'\"',c:[t.BE]},{b:\"'\\\\\\\\?.\",e:\"'\",i:\".\"}]},s={cN:\"number\",v:[{b:\"\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)(u|U|l|L|ul|UL|f|F)\"},{b:t.CNR}]},i={cN:\"preprocessor\",b:\"#\",e:\"$\",k:\"if else elif endif define undef warning error line pragma ifdef ifndef\",c:[{b:/\\\\\\n/,r:0},{bK:\"include\",e:\"$\",c:[r,{cN:\"string\",b:\"<\",e:\">\",i:\"\\\\n\"}]},r,s,t.CLCM,t.CBCM]},a=t.IR+\"\\\\s*\\\\(\",c={keyword:\"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong\",built_in:\"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf\",literal:\"true false nullptr NULL\"};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\"],k:c,i:\"</\",c:[e,t.CLCM,t.CBCM,s,r,i,{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:c,c:[\"self\",e]},{b:t.IR+\"::\",k:c},{bK:\"new throw return else\",r:0},{cN:\"function\",b:\"(\"+t.IR+\"[\\\\*&\\\\s]+)+\"+a,rB:!0,e:/[{;=]/,eE:!0,k:c,i:/[^\\w\\s\\*&]/,c:[{b:a,rB:!0,c:[t.TM],r:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:c,r:0,c:[t.CLCM,t.CBCM,r,s]},t.CLCM,t.CBCM,i]}]}});hljs.registerLanguage(\"php\",function(e){var c={cN:\"variable\",b:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},a={cN:\"preprocessor\",b:/<\\?(php)?|\\?>/},i={cN:\"string\",c:[e.BE,a],v:[{b:'b\"',e:'\"'},{b:\"b'\",e:\"'\"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},t={v:[e.BNM,e.CNM]};return{aliases:[\"php3\",\"php4\",\"php5\",\"php6\"],cI:!0,k:\"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally\",c:[e.CLCM,e.HCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"},a]}),e.C(\"__halt_compiler.+?;\",!1,{eW:!0,k:\"__halt_compiler\",l:e.UIR}),{cN:\"string\",b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:\"subst\",v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},a,c,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:\"function\",bK:\"function\",e:/[;{]/,eE:!0,i:\"\\\\$|\\\\[|%\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:[\"self\",c,e.CBCM,i,t]}]},{cN:\"class\",bK:\"class interface\",e:\"{\",eE:!0,i:/[:\\(\\$\"]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"namespace\",e:\";\",i:/[\\.']/,c:[e.UTM]},{bK:\"use\",e:\";\",c:[e.UTM]},{b:\"=>\"},i,t]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},t=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",r:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]*\",r:0},{b:/\\/(?![ *])(\\\\\\/|.)*?\\/[gim]*(?=\\W|$)/}]},{cN:\"property\",b:\"@\"+n},{b:\"`\",e:\"`\",eB:!0,eE:!0,sL:\"javascript\"}];r.c=t;var s=e.inherit(e.TM,{b:n}),i=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",o={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(t)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:t.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+i,e:\"[-=]>\",rB:!0,c:[s,o]},{b:/[:\\(,=]\\s*/,r:0,c:[{cN:\"function\",b:i,e:\"[-=]>\",rB:!0,c:[o]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{cN:\"attribute\",b:n+\":\",e:\":\",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage(\"javascript\",function(e){return{aliases:[\"js\"],k:{keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},c:[{cN:\"pi\",r:10,b:/^\\s*['\"]use (strict|asm)['\"]/},e.ASM,e.QSM,{cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,{cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\"}]},e.CLCM,e.CBCM,{cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)\"},{b:\"\\\\b(0[oO][0-7]+)\"},{b:e.CNR}],r:0},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{b:/</,e:/>\\s*[);\\]]/,r:0,sL:\"xml\"}],r:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:[e.CLCM,e.CBCM]}],i:/\\[|%/},{b:/\\$[(.]/},{b:\"\\\\.\"+e.IR,r:0},{bK:\"import\",e:\"[;$]\",k:\"import from as\",c:[e.ASM,e.QSM]},{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]}],i:/#/}});hljs.registerLanguage(\"ini\",function(e){var c={cN:\"string\",c:[e.BE],v:[{b:\"'''\",e:\"'''\",r:10},{b:'\"\"\"',e:'\"\"\"',r:10},{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]};return{aliases:[\"toml\"],cI:!0,i:/\\S/,c:[e.C(\";\",\"$\"),e.HCM,{cN:\"title\",b:/^\\s*\\[+/,e:/\\]+/},{cN:\"setting\",b:/^[a-z0-9\\[\\]_-]+\\s*=\\s*/,e:\"$\",c:[{cN:\"value\",eW:!0,k:\"on off true false yes no\",c:[{cN:\"variable\",v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},c,{cN:\"number\",b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},e.NM],r:0}]}]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"chunk\",r:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"header\",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\\-\\-\\-/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+\\+\\+/,e:/$/},{b:/\\*{5}/,e:/\\*{5}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"change\",b:\"^\\\\!\",e:\"$\"}]}});\nexports.hljs = hljs;\n",
            "type": "application/javascript",
            "title": "$:/plugins/tiddlywiki/highlight/highlight.js",
            "module-type": "library"
        },
        "$:/plugins/tiddlywiki/highlight/highlight.css": {
            "text": "/*\n\nOriginal style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>\n\n*/\n\n.hljs {\n  display: block;\n  overflow-x: auto;\n  padding: 0.5em;\n  background: #f0f0f0;\n  -webkit-text-size-adjust: none;\n}\n\n.hljs,\n.hljs-subst,\n.hljs-tag .hljs-title,\n.nginx .hljs-title {\n  color: black;\n}\n\n.hljs-string,\n.hljs-title,\n.hljs-constant,\n.hljs-parent,\n.hljs-tag .hljs-value,\n.hljs-rule .hljs-value,\n.hljs-preprocessor,\n.hljs-pragma,\n.hljs-name,\n.haml .hljs-symbol,\n.ruby .hljs-symbol,\n.ruby .hljs-symbol .hljs-string,\n.hljs-template_tag,\n.django .hljs-variable,\n.smalltalk .hljs-class,\n.hljs-addition,\n.hljs-flow,\n.hljs-stream,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.apache .hljs-cbracket,\n.tex .hljs-command,\n.tex .hljs-special,\n.erlang_repl .hljs-function_or_atom,\n.asciidoc .hljs-header,\n.markdown .hljs-header,\n.coffeescript .hljs-attribute,\n.tp .hljs-variable {\n  color: #800;\n}\n\n.smartquote,\n.hljs-comment,\n.hljs-annotation,\n.diff .hljs-header,\n.hljs-chunk,\n.asciidoc .hljs-blockquote,\n.markdown .hljs-blockquote {\n  color: #888;\n}\n\n.hljs-number,\n.hljs-date,\n.hljs-regexp,\n.hljs-literal,\n.hljs-hexcolor,\n.smalltalk .hljs-symbol,\n.smalltalk .hljs-char,\n.go .hljs-constant,\n.hljs-change,\n.lasso .hljs-variable,\n.makefile .hljs-variable,\n.asciidoc .hljs-bullet,\n.markdown .hljs-bullet,\n.asciidoc .hljs-link_url,\n.markdown .hljs-link_url {\n  color: #080;\n}\n\n.hljs-label,\n.ruby .hljs-string,\n.hljs-decorator,\n.hljs-filter .hljs-argument,\n.hljs-localvars,\n.hljs-array,\n.hljs-attr_selector,\n.hljs-important,\n.hljs-pseudo,\n.hljs-pi,\n.haml .hljs-bullet,\n.hljs-doctype,\n.hljs-deletion,\n.hljs-envvar,\n.hljs-shebang,\n.apache .hljs-sqbracket,\n.nginx .hljs-built_in,\n.tex .hljs-formula,\n.erlang_repl .hljs-reserved,\n.hljs-prompt,\n.asciidoc .hljs-link_label,\n.markdown .hljs-link_label,\n.vhdl .hljs-attribute,\n.clojure .hljs-attribute,\n.asciidoc .hljs-attribute,\n.lasso .hljs-attribute,\n.coffeescript .hljs-property,\n.hljs-phony {\n  color: #88f;\n}\n\n.hljs-keyword,\n.hljs-id,\n.hljs-title,\n.hljs-built_in,\n.css .hljs-tag,\n.hljs-doctag,\n.smalltalk .hljs-class,\n.hljs-winutils,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.hljs-type,\n.hljs-typename,\n.tex .hljs-command,\n.asciidoc .hljs-strong,\n.markdown .hljs-strong,\n.hljs-request,\n.hljs-status,\n.tp .hljs-data,\n.tp .hljs-io {\n  font-weight: bold;\n}\n\n.asciidoc .hljs-emphasis,\n.markdown .hljs-emphasis,\n.tp .hljs-units {\n  font-style: italic;\n}\n\n.nginx .hljs-built_in {\n  font-weight: normal;\n}\n\n.coffeescript .javascript,\n.javascript .xml,\n.lasso .markup,\n.tex .hljs-formula,\n.xml .javascript,\n.xml .vbscript,\n.xml .css,\n.xml .hljs-cdata {\n  opacity: 0.5;\n}\n",
            "type": "text/css",
            "title": "$:/plugins/tiddlywiki/highlight/highlight.css",
            "tags": "[[$:/tags/Stylesheet]]"
        },
        "$:/plugins/tiddlywiki/highlight/highlightblock.js": {
            "text": "/*\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\ntype: application/javascript\nmodule-type: widget\n\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TYPE_MAPPINGS_BASE = \"$:/config/HighlightPlugin/TypeMappings/\";\n\nvar CodeBlockWidget = require(\"$:/core/modules/widgets/codeblock.js\").codeblock;\n\nvar hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n\nhljs.configure({tabReplace: \"    \"});\t\n\nCodeBlockWidget.prototype.postRender = function() {\n\tvar domNode = this.domNodes[0],\n\t\tlanguage = this.language,\n\t\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\n\tif(tiddler) {\n\t\tlanguage = tiddler.fields.text || \"\";\n\t}\n\tif(language && hljs.listLanguages().indexOf(language) !== -1) {\n\t\tdomNode.className = language.toLowerCase() + \" hljs\";\n\t\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\n\t\t\thljs.highlightBlock(domNode);\t\t\t\n\t\t} else {\n\t\t\tvar text = domNode.textContent;\n\t\t\tdomNode.children[0].innerHTML = hljs.fixMarkup(hljs.highlight(language,text).value);\n\t\t\t// If we're using the fakedom then specially save the original raw text\n\t\t\tif(domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tdomNode.children[0].textInnerHTML = text;\n\t\t\t}\n\t\t}\n\t}\t\n};\n\n})();\n",
            "title": "$:/plugins/tiddlywiki/highlight/highlightblock.js",
            "type": "application/javascript",
            "module-type": "widget"
        },
        "$:/plugins/tiddlywiki/highlight/license": {
            "title": "$:/plugins/tiddlywiki/highlight/license",
            "type": "text/plain",
            "text": "Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n    * Neither the name of highlight.js nor the names of its contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
        },
        "$:/plugins/tiddlywiki/highlight/readme": {
            "title": "$:/plugins/tiddlywiki/highlight/readme",
            "text": "This plugin provides syntax highlighting of code blocks using v8.8.0 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1   { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* apache\n* bash\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* http\n* ini\n* java\n* javascript\n* json\n* makefile\n* markdown\n* nginx\n* objectivec\n* perl\n* php\n* python\n* ruby\n* sql\n* xml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n"
        },
        "$:/plugins/tiddlywiki/highlight/styles": {
            "title": "$:/plugins/tiddlywiki/highlight/styles",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": ".hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:teal}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}"
        },
        "$:/plugins/tiddlywiki/highlight/usage": {
            "title": "$:/plugins/tiddlywiki/highlight/usage",
            "text": "! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"
        }
    }
}
.hljs{display:block;overflow-x:auto;padding:.5em;color:#ffffff;background:#000029;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#606060;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#68b7ff;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:purple}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#e5d93d}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#79dc72;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#rerere;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}

🢔⦗h0p3's Wiki⦘🢖
no
yes
New



{
    "tiddlers": {
        "$:/info/browser": {
            "title": "$:/info/browser",
            "text": "yes"
        },
        "$:/info/node": {
            "title": "$:/info/node",
            "text": "no"
        },
        "$:/info/url/full": {
            "title": "$:/info/url/full",
            "text": "file:///home/h0p3/Resilio/Michael/Sync/h0p3.xyz/var-www-html/index.html"
        },
        "$:/info/url/host": {
            "title": "$:/info/url/host",
            "text": ""
        },
        "$:/info/url/hostname": {
            "title": "$:/info/url/hostname",
            "text": ""
        },
        "$:/info/url/protocol": {
            "title": "$:/info/url/protocol",
            "text": "file:"
        },
        "$:/info/url/port": {
            "title": "$:/info/url/port",
            "text": ""
        },
        "$:/info/url/pathname": {
            "title": "$:/info/url/pathname",
            "text": "/home/h0p3/Resilio/Michael/Sync/h0p3.xyz/var-www-html/index.html"
        },
        "$:/info/url/search": {
            "title": "$:/info/url/search",
            "text": ""
        },
        "$:/info/url/origin": {
            "title": "$:/info/url/origin",
            "text": "null"
        }
    }
}

$:/themes/tiddlywiki/snowwhite
{
    "tiddlers": {
        "$:/themes/tiddlywiki/snowwhite/base": {
            "title": "$:/themes/tiddlywiki/snowwhite/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
        }
    }
}
{
    "tiddlers": {
        "$:/themes/tiddlywiki/vanilla/themetweaks": {
            "title": "$:/themes/tiddlywiki/vanilla/themetweaks",
            "tags": "$:/tags/ControlPanel/Appearance",
            "caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
            "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
        },
        "$:/themes/tiddlywiki/vanilla/base": {
            "title": "$:/themes/tiddlywiki/vanilla/base",
            "tags": "[[$:/tags/Stylesheet]]",
            "text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n    border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    left: -50px;\n    top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n    right: -80px;\n    bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: normal;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n    cursor: pointer;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour tag-foreground>>;\n\tvertical-align: text-bottom;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-tiddler-missing .tc-title {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n    height: 1.2em;\n    width: 1.2em;\n    margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg  {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor  {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n  fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n  fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n  fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n  fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n  fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n  fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n  fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n  fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n  fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg  {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down-language-chooser img {\n\twidth: 2em;\n\tvertical-align: baseline;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n    width: auto;\n    margin-bottom: 0px;\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical  {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical  {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical  {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n    display: block;\n    width: 100%;\n    text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n    flex: 1 0;\n    background: <<colour tiddler-editor-background>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n    white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n    background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n    padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n    flex: 3 1;\n    border-left: 0.5em solid <<colour muted-foreground>>;\n    border-right: 0.5em solid <<colour muted-foreground>>;\n    border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tmax-width: 500px;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 28px;\n\tpadding: 14px 14px 14px 14px;\n\tborder: 2px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 14px;\n\tright: 14px;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: block;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground-colour: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-plugin-info-chunk h1 {\n\tfont-size: 1em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk h2 {\n\tfont-size: 0.8em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk div {\n\tfont-size: 0.7em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 1em 1em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n    vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder: 1px solid <<colour table-border>>;\n}\n\n.tc-chooser-item {\n\tborder: 8px;\n\tpadding: 2px 4px;\n}\n\n.tc-chooser-item a.tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-foreground>>;\n\tbackground-color: <<colour tiddler-link-background>>;\n}\n\n.tc-chooser-item a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
            "text": "15px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
            "text": "22px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
            "text": "14px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
            "text": "20px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storytop": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
            "text": "0px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storyright": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
            "text": "770px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
            "text": "686px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
            "text": "960px"
        },
        "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
            "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
            "text": "350px"
        },
        "$:/themes/tiddlywiki/vanilla/options/stickytitles": {
            "title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
            "text": "no"
        },
        "$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
            "title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
            "text": "fixed-fluid"
        },
        "$:/themes/tiddlywiki/vanilla/options/codewrapping": {
            "title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
            "text": "pre-wrap"
        },
        "$:/themes/tiddlywiki/vanilla/reset": {
            "title": "$:/themes/tiddlywiki/vanilla/reset",
            "type": "text/plain",
            "text": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n  font-family: sans-serif; /* 1 */\n  -ms-text-size-adjust: 100%; /* 2 */\n  -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n  margin: 0;\n}\n\n/* HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; /* 1 */\n  vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n/* Links\n   ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n  background: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n  outline: 0;\n}\n\n/* Text-level semantics\n   ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n  font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n  font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n/* Embedded content\n   ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n  border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n/* Grouping content\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n  margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n  overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n/* Forms\n   ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n *    Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; /* 1 */\n  font: inherit; /* 2 */\n  margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10.\n */\n\nbutton {\n  overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8+, and Opera\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; /* 2 */\n  cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n  line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; /* 1 */\n  -moz-box-sizing: content-box;\n  -webkit-box-sizing: content-box; /* 2 */\n  box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n  border: 0; /* 1 */\n  padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9.\n */\n\ntextarea {\n  overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n  font-weight: bold;\n}\n\n/* Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n"
        },
        "$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
            "text": "\"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", \"DejaVu Sans\", sans-serif"
        },
        "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
            "text": "Monaco, Consolas, \"Lucida Console\", \"DejaVu Sans Mono\", monospace"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
            "text": "fixed"
        },
        "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
            "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
            "text": "auto"
        },
        "$:/themes/tiddlywiki/vanilla/sticky": {
            "title": "$:/themes/tiddlywiki/vanilla/sticky",
            "text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n``\n</$reveal>\n"
        }
    }
}
960px
310px
255px
770px
0px
700px
700px
pre
fluid-fixed
yes
classic
//My son, brother in autism.//

My son is truly damaged, and it is largely my fault, both genetically and memetically. My son does not believe in himself, he does not have hope, and he is a boy in pain. Not every circumstance is in my control, but I can see how I have contributed to his suffering and created a sad child. 

I must help him become happy. I must give him hope. I must protect him. I must cultivate him. I must be a good rolemodel for him. I must empathize with him deeply. I need to make up for my mistakes, and I can. It may never be perfect, in fact it could be a series of crises, but I must. My son needs me to be a good father, or at least the best that I can be.

* [[Our Son: The Conqueror of Happiness]]
*Academic Gameplan:

** [[Old Gameplan for Homeschooling 1uxb0x]]
** [[2017.04.14 -- 1uxb0x: Gameplan for Homeschooling]]

* You do the following chores each (or every other) day as needed: 
** You clearn your downstairs area
** Your perform basic cleaning of your room (bed, desk, drawers, etc.)
** You clean the kitchen (on rotation)
** You push your laundry through when you have a load to do

* You do the following chores each week:
** You clean the downstairs bathroom
** You completely clean your room
My son went to a science fair, and he was ecstatic about building a circuit there. He has the chops to be an electrician, and it sounds like he would really enjoy it. Plus, it's a damned good way to make money. This will be incredibly useful to him, and it will be a source of immense happiness.

He will be a college-educated electrician. It will open many doors for him.

Gameplan:

* Redstone Minecraft Circuitry Design
** Have fun building things and understanding the nature of circuity in an intuitive and visual way. Build a solid foundation for reasoning about electricity.
** Have fun! See the beauty of it.
** Build things which make you proud. Build things which are 

Schedule:

* Spend 30 Minutes reading or watching about it.
* Spend 30 Minutes building something.

This is only roughly true. You want to have a mix of theory and practice though.
I love my son. He's my creation, and I live for him and his sister. He is amazing (and I'd love him just as much if he weren't). We are very compatible in many ways. I hope to help him become compatible with the world and himself. I hope to help him become a eudaimonic lifehacker, to be happy and possess (and use) the means to make himself happy. To the best of my abilities, I am preparing him to have a life he finds and will find worth living.

1uxb0x is a boy of many surprises. Sometimes it is very hard to gauge his aptitudes, strengths, and where he may falter. There aren't the clean rules of thumb I find for others. Half his lifetime ago, he didn't know to call me dad (he didn't really speak). He has come a very long way. His speech and communication are still impaired (very common with autism). We work on it everyday. 

Reading has been a savior, expanding his vocabulary and helping him see the value in communications. His vocabulary can stun you sometimes, and then other times, he can't get out even the basic things he means to say. He has recently started writing (not just chatting with us) for real (a weak point of mine for a long time, and still in many ways). I hope to help my son find his voice with others. I hope to help him love learning, to see the necessity of hard work. I hope to prepare him for a world that isn't prepared for him. I hope we can build a friendship and family partnership for life. 

* [[1uxb0x: Gameplan for Homeschooling]]
* [[1uxb0x: Things to Learn and Do]]
* [[1uxb0x: Planning Future Gameplan for Homeschooling]]
* [[1uxb0x: Grandmaster Electrician]]
* [[1uxb0x: Post-Secondary Education]]
* [[1uxb0x: lost+found]]
 
1uxb0x is still growing considerably. It is difficult to understand his trajectory because it is  difficult to understand what he can and can't do, and moreover why. That's not his fault, and it might not be mine either. This is hard.

We will, however, shoot as high as we can. It's in his best interest. I know it. I can see why. 
I'm overjoyed to see my son writing at all. Getting him to express himself is extremely difficult. This will be an invaluable tool to him. It will show him his progress, and it will be a place for help him with his memory problems. Ultimately, it will help him empathize with himself. It is a place to parse the lonely darkness and sadness, and a place to celebrate his self-programming.

!! Vault:

* [[2017.04 -- 1uxb0x's Wiki Log]]
* [[2017.05 -- 1uxb0x's Wiki Log]]

!! Current: 

* [[2017.06.04 -- 1uxb0x's Wiki Log]]
* [[2017.06.11 -- 1uxb0x's Wiki Log]]
* [[2017.06.18 -- 1uxb0x's Wiki Log]]
* [[2017.06.25 -- 1uxb0x's Wiki Log]]
Solidarity is a fascinating deck. It is one of the few that can truly win in response to something lethal on the stack. The deck itself, when played correctly is reactive. It sits and waits, sculpting its hand, optimizing combinations, waiting for the right time. Usually, you wait until the very end to combo (duh); you try to wait until you see that you are about to lose, or will lose during the turn. Pick the correct part of the turn to combo, and unleash your fury. You’ll say “In response to your lethal damage, I will win.” What other decks do this? Not many.

Mind you, I’ve only played this deck for two days, but I am really enjoying it. It has done well in our ‘casual’ gauntlet, and I think we will build it. Our decks do not follow any B/R lists, but we usually have pretty low budgets, so we go unpowered, yet we have some pretty powerful decks. Academy, necro, even a pimped KCI  (who wouldn’t want to play 4x tinker?), you name it. I’m hoping to really perfect the decklist for general play in our group, so any suggestions would be greatly appreciated.

Here is what I’ve come up with so far, which hasn’t strayed too far from the Legacy original:

Spells-41:
2 Brain Freeze
4 High Tide
4 Reset
2 Turnabout
4 Brainstorm
4 Opt
4 Impulse
3 Frantic Search
4 Meditate
3 Three Wishes
4 Remand
2 Flash of Insight
2 Cunning Wish

Land-19:
13 Island
3 Flooded Strand
3 Polluted Delta

Sideboard
3 Blue Elemental Blast
2 Brain Freeze
1 Chain of Vapor
1 Echoing Truth
1 Hurkyl's Recall
1 Three Wishes
1 Stifle
2 Stroke of Genius
1 Turnabout
1 Force of Will
1 Vision Skeins


You’ll notice that it is slightly different from what you might netdeck, I’ll explain my reasoning. First off, I see the deck heading in two different directions. One is a control-combo foundation the other would be a pure combo-consistency basis. Control gives you versatility, protection, and answers, being quite forgiving in a short-sighted perspective, while, conversely, going for consistency gives you turn by turn land-drops and better hands altogether, but also gives you consistency mid-combo, for example, when responding to Gaea’s Blessing or working around a resolved Chalice of the Void.

I have found that redundancy of a more pure combo, giving up some control, gives natural consistency, better responses (from a macro perspective), and more speed in the end. 

Force of Will is the obvious card not included. I’ve decided to remove it because it is generally a card that is antithetical to what the deck is trying to do in some ways. The deck is a reactive deck in its entirety. Opponent puts lethal damage on the stack, I go lethal in response, if they can, they respond to me, and then I try and respond again. Going control allows you to eliminate some of their tempo (but at a large cost to you sometimes), and it also gives you answers on the stack itself. But, overall, going control does not help the very combo itself. It makes you more likely to stall, and less likely to go off earlier if you are put on a tighter clock. Why reach for the counter spell, when I could build a more consistent version that can disregard what my opponent did by going lethal once again? The deck is reactive in virtue of the consistency of its combo cards working together, not in virtue of any individually based reactive cards themselves (such as counters). Pushing the consistency has been far more effective in my metagame, even though I really, really hate to lose a card as powerful as Force of Will in a deck that can viably run them. It really took some decent testing to come to this point, especially as I am more comfortable as a control player.

The base combo and order of spelling casting goes something like this::

1.) Cast High Tides
2.) Cast your Card advantage spell(s)…Meditate or Three Wishes 
3.) Sculpt your hand with card quality spells, like Opt, Brainstorm, Peek, Impulse, Cunning Wish, Frantic Search
4.) Pitch, shuffle, and pop lands and fetchlands to maximize the quality of cards in your hand and what you are drawing.
5.) Reset, Turnabout, or Frantic Search to untap our lands and do it again
6.) Rinse and repeat 1-5 until you amassed a major storm count with some breathing room for further responses, then Brain Freeze your opponent and Wish for Stroke of Genius or Vision Skeins to deck your opponent and win.

This is just an order of how you play your cards. Of course, your actions must take into consideration a set of priorities that would still allow you continue to keep comboing. So, sometimes you’ll high tide, float mana, reset, and then cast your meditate, as you may not have had the mana to meditate and then reset, and so you are forced to reset before drawing. You have to stabilize your mana acceleration before you can even begin to worry about decking your opponent (most of the time). Your gas drawers help you stabilize, and later help you generate the massive storm and buffer you want before you pwn your opponent.

Generally, this deck wants to drop a land each turn, right up until you need to combo, and then you’d be happy to never see a land again. And, before you can combo, you really need 3 land bare minimum, and at least 1 Hide Tide, 1 untap mechanic (preferably Reset), and 1 card advantage spell (preferably Meditate). While you can win without any one of these in your starting combo, it is very suboptimal and extremely limiting. You’ll usually only play spells during your opponent’s turn, and in the first few turns it will either be to Remand for tempo advantages or to sculpt your hand and library with Opt, Impulse, an Brainstorm, as all of these do no diminish the size of your hand, but help to optimize the quality of your hand and library in preparation for comboing. While I recommend casting these only during an end-step, once in a while, you will find mana-sources scarce and your hand lacking, and if you know your opponent is not going lethal next turn, you may consider drawing your 8th card, in hopes it is a land, and casting a card-quality spell if it isn’t to get your land, in this way you aren’t burning your spells unless you have to. But, most of the time, you’ll be working to grab your high tide/reset/meditate in hand as early as possible.

Again, I can’t emphasize how important it is to have an actual card drawer that gives actual advantage. A hand without a meditate/three wishes is rarely viable. Sure, you might be able to generate the mana, but a failed opt+BS nets you nothing but a fizzle. Meditate turns your mana advantages in multiple threats, and serves as part of the real engine of this deck. All too often I think people get stuck simply because they haven’t valued true card advantage in this deck, especially as we have numerous ways to generate card quality, but have far more limited card advantage.

So, that is the basics of this deck, here are my choices and why I’ve made them thus far:

4x High Tide, 4x Reset: completely obvious. The only question would be in regards to whether we would want 1 of each in the sideboard to wish for, but in reality, this deck is better in redundancy than it is in finding answers. Generaly, the better a deck is built, the less it will want to use cards like Cunning Wish, and more likely it will be to have redundancy and proper proportions.

19x Land, 6x of them Fetch: Dropping land is vital, and missing one or losing one is almost a Time Walk for an opponent. I think running 19 is really the bare minimum, as consistency is at a prime in a combo deck, and it won’t hurt this version as much as we are running what I consider to be an exceptionally powerful card, Frantic Search, to dispose of lands in hand or drawn within a Meditate or Three Wishes. I’d even consider putting this up to 20, as it can improve the value of Frantic Search mid-combo, while giving us more consistent early games and draws.

2x Brain freeze: Only two? Yeah only 2. You never want this in your opening hand, and you really only need one, especially as Remand can be cast on the original brain freeze without removing the storm copies, allowing you to Brain freeze yet again (which is quite powerful when we play multiplayer), why waste more slots on a card that we only want to see once or twice at most?

4x Remand: I ranted on the control, but I have a hard time removing this from the deck. Why? Remand is STILL a cantrip, and it is not a loss of card advantage like FoW’s -2 cards in hand. It isn’t a hard counter, but it provides tempo. In counterwar matchups, Remand can act as a hard counter as much as you’d really need it to, and against other decks it provides timewalks + 1 card. And, as explained, this is quite synergistic with Brain freeze, as you can also take a low storm count brain freeze and double it effectively with remand.

4x Brainstorm: No real comments to make. Everyone knows they are immensely powerful with fetchlands, and in this deck, even your other card quality spells are synergistic with brainstorm, as you can help to get useless cards out of your hand for more useful ones.
4x Opt: Many run Peek. Personally, I prefer the power of opt, as it gives me more, hehe, options. I usually know my opponent’s decklist, and I often have very good idea what they have in hand. Opt is more often superior to Peek, and can let me see 2 cards and get rid of stuff on top much more effectively.

4x Impulse: This is a fantastic card, and will pull you out of some tight spots. You see four cards, and you clear the top of your library. Dig deep, get the one that really matters, and move along.

3x Frantic Search: A powerful card. With land or Flashes in hand, it effectively has no drawback. It is better than free after high tide. It makes it possible to run more land heavy, but also proves to make the deck very resilient. It is a mini-reset, mini-meditate. However, it isn’t a great card until you’ve already started comboing, so I think 3x might be the best number to run (especially in testing).

2x Cunning Wish: Down from the normal 3x, I think this card is another one I don’t wanna see too often at all. I’d prefer to have a strong draw card in this slot usually. But, it serves as versatility, and it can do some trix in a pinch. Plus, it grabs a real win for you post-brain freeze.

4x Meditate: some go 3x for Cunning wish, I simply prefer redundancy. This is a must have card, and it is just as essential as casting high tide or reset. 

3x Three Wishes: A controversial pick, and one that I have been quite satisfied, although maybe this should go down to 2x. It is a subpar Meditate, but this deck is always seeking more gas, and our little card quality cantrips simply don’t boost our actual capacity to continue the combo in a meaningful sense beyond sculpting. Gas is gas, and Three wishes is the next best pick to Meditate.

2x Turnabout: A usual 2-3x, and it remains a sub-par reset, but can be versatile in gaining tempo advantages if necessary…sometimes a true timewalk. But, it is vital to untap, and so this really a 2x minimum from what I’ve tested. The inclusion of Frantic Search makes this less necessary.

2x Flash of Insight: a 2x number that can do neat trix. I usually try and dump it via Frantic Search, but sometimes you’ll cast for 1. The flashback is hard to passup, especially when you really, really need a single card. I’m not particularly fond of it though.
	Voltaire was one of the most influential satire writers of the Enlightenment. He was a leading philosopher, author, and was known for his clever assaults on the French government, Facile Optimism, and organized religion.

The European monarchy and nobility were ridiculed for their greed, jealousy, and poor judgment. The Baron (referred to as My Lord the Baron of Thunder-ten-Tronckh) is quick to judge Candide for an innocent kiss to the princess, giving Candide many kicks in the behind while expelling Candide from the castle. The Baron represented the impulsive commands given by European monarchs. Candide is brought into the Bulgarian (actually Prussian) army; Voltaire mocks the famous “tall” soldiers. Marchiousness of Parolignac symbolizes how almost every monarch would sell their soul and even other peoples lives, disregarding the necessity of character and values, for riches and treasures (like huge diamond rings). The sheer greed of the European monarchs disgusted Voltaire. Senator Seignor Pococurante was a perfect example of what Voltaire thought about the nobility’s unappreciative view towards their possessions. The Senator was shown to have everything he could ever want, and yet Candide and Martin find that wealth does not bring happiness.

	Voltaire finds organized religion (church) to be corrupt and hypocritical. During the course of the story we find many corrupt priests and leaders of the church. These men strike political deals (as in the case of the mistress Lady Cunegonde), commit adultery, and harbor non-Christian values. Voltaire, through Candide, mentions that in a utopian environment there is only one God, and no need for monks, priests, or other such corruptions of the church.

	Wealth, status, and greed are some of the main themes examined in Candide. Almost every person in the book was corruptible and buyable. Ship captains ran off with Candide’s loaded sheep, people wondered at Candide for how he had not the slightest hint of sadness when losing a fortune and even the Jewish merchants would pay only half of what a diamond was worth out of sheer greed. It is evident that Voltaire finds all people, the monarchs, nobility, clergy, sailors, and even common ordinary people corruptible and easily twisted by the very sight of wealth. Voltaire in defining a utopia (El Dorado) and through the use of characters shows that wealth, status, and power are of no use, are the root of much evil, and warp even the purest of heart.

	Voltaire believes love and romance is not always to be, and optimism in the area of love is ignorance. He shows the relationship between Lady Cunegonde and Candide as being hopeless. When they finally get to settle down, Cundegonde is ugly and old, and Candide no longer loves her, but marries her out of pride. 

	In Candide, the “Enlightened” philosopher Pangloss’s many tragedies point out how, ironically, life is not perfect (never will be) and is not always for the best. The book of Candide itself symbolizes the complete lack of insight of the “Enlightenment.” Voltaire proves that life is not always for the best by simply observing the tragedies and horrible outcome of Candide’s life and of the many other characters in Candide. Voltaire conveys that man’s misery comes from himself, and that evil is innate. The happiest man in the world realizes what the world is, and is comfortable saying that the world is not perfect, and that “there is a pleasure in having no pleasure.” (spoken by Martin the philosopher)

	Candide is relevant to today’s society because it addresses core issues of humanity. Candide addresses what causes pain, why the world is not perfect, the irrelevance of worldly wealth in attaining happiness, the hypocrisy of the church, and the everlasting corruption of the government.
	I hate chocolate because I enjoy it too much. Chocolate is a drug. It spurs on our hedonistic desires. Chocolate is the boxable and buyable eternal bliss of our nation. We are suckered into its wonder-drug goodness. 

Maybe at one time chocolate was simply an innocent and beautiful candy and delight. But, just like Edward’s “Turkish delight” (Chronicles of Narnia), chocolate stops us from thinking clearly. We are consumed in our desire; the more we have the more we want. Does that mean we should simply stop using chocolate?

	We idolize chocolate; we overstep into the oblivion of pleasure. Chocolate represents the ghastly demise of thought and the experience of reality, which is often the experience of pain. Chocolate is a weakness, we are unable to simply remain in ‘the calm,’ – we want pure pleasure as the antidote to pure pain. We become disillusioned, believing ourselves to possess a strength we in fact do not have. Our minds are altered by this drug! We give up that which is most precious to being human, our rationality and reason. Chocolate is our soma. Why wipe the day away? Life is rough, but at least it has character, unadulterated truth.

	Forget the excess of chocolate idolatry. If we cannot enjoy chocolate responsibly, then why should we use it at all?
	Rationality is a necessary component of persons in the original position. Reason, supposedly leads us to the two principles of justice. Rawls lists attributes of the rational person. Rational people prefer more social good than less. The rational person is “deprived of information about [his or her] particular ends, [he or she has] must have enough knowledge to rank the alternatives.” Rational people know that “in general they must protect their liberties, widen their opportunities, and enlarge their means for promoting their aims.” 

A rational person has a “coherent set of preferences between the options open” to him or her. Ranking these “options according to how well they further [his or her] purposes;” he or she attempts to follow the plan that will satisfy “more of [his or her] desires rather than less.” Rational persons follow plans that have a greater chance of being “successfully executed.” 
Rational individuals do not suffer from envy. The principles are “derived on the supposition that envy does not exist.” Envy does not promote justice. Because envy is collectively disadvantageous, and does not conform to the veil of ignorance, envy cannot be found in the rational individual.

	Rawls says, “the assumption of mutually disinterested rationality, then, comes to this: the persons in the original position try to acknowledge principles which advance their system of ends as far as possible.” They do this by striving for the “highest index” of social goods, since this would “promote their conception of the good.”

	Those in the original position must be capable of a sense of justice. This capability is public knowledge, which insures the “integrity of the agreement” formed in the original position. These rational persons rely on each other to “act in accordance” with the principles decided in the original position—“their capacity for a sense of justice insures” that the principles will be followed. Rational people only enter agreements they know they can keep. Rawls explains, “Conceptions of justice are to be strictly complied with;” “guided by the theory of the good and the general facts of moral psychology, their deliberations are no longer guesswork;” “Rational individuals with certain ends and related to each other in certain ways are to choose,” “using deductive reasoning from their beliefs, interests, their situation, and the options open to them,” “among various courses of action in view of their knowledge of the circumstances.”

# 2.50
# 4 pounds

----------------

# Ted’s opportunity cost of washing a car is 12, Tom’s is 6. Tom has the comparative advantage for washing cars.
# Ted’s opportunity cost of washing a car is 3, Tom’s is 2. Tom has the comparative advantage for washing cars.
# No because they both have the same comparative advantage. ½
# Bill has the absolute advantage for replacing clutches, no one has the absolute advantage for replacing brakes. Bill has the comparative advantage for replacing clutches.
# (Image)																					
# B
# Y= -X + 64  rather than Y= -1/2X + 32

----------------------------

<<<
Wealthy parents who give birth to a child with a minor birth defect sell their child to another wealthy but childless family and buy a "perfect" newborn child from a family badly in need of cash.
<<<

I find the above transaction disturbing and ridiculous. The value of any person (in the womb, child, elder, etc.) cannot be measured; people are invaluable. “Selling” a person is placing a price/value on a person, thus degrading the status of that person, (they now are not invaluable). I am against any transaction that removes the invaluable status of the person; the above transaction is a crime against humanity. I’m against the death penalty, but I’d truly enjoy laying the smack down on any “consenting adult” that would agree to this nonsense—so yes, I would definitely agree with prohibition of marketing of a person (yes, this has more implications…like “is Hollywood marketing people?” etc.)
	Psalm 13 is the song of an individual in pain; he is staring death in the face. His case is the classic example of suffering, and the response of the faithful. Psalm 13 is the short and effective lament of an individual. 

The basic form of a lament of the individual is: (a.) the complaint, (b.) the appeal, and (c.) the expression of confidence in G-d’s help. Psalm 13 follows this form. Verses 1-2 form the complaint, while verses 3-4 compose the appeal, leaving verses 5-6 as the expression of confidence in G-d’s help.

<<<
 	How long, O Lord? Wilt Though forget me forever?

How long wilt Though hide Thy face from me? (NASB Psalm 13:1)
<<<

The first verse of Psalm 13 leads the reader to believe that, “[G-d] may simply have forgotten,” or even worse that, “[G-d] has intentionally turned away,” indicative of the wrath of G-d (Keck 726). The phrase “’How long?’, is a biblical formula for fright and exasperation, [which] demands an explanation from the provident G-d appears to have allowed chaos and suffering rather than order and blessing. Verse 3a can be translated, ‘How long do I lay up counsel in my heart,’ as though to say, ‘must I keep on learning forever from my pain?’”(Mays 439). The word “eternally” or “forever” in the first line of verse one may have two meanings. The first meaning is the possibility of G-d continually ignoring the prayer of the psalmist and the other concerns being “forever cut off from [G-d’s] remembrance and love (Dahood 76).

<<<
		How long shall I take counsel in my soul,

Having sorrow in my heart all the day?

How long will my enemy be exalted over me? (NASB Psalm 13:2)
<<<

Verse 2 is more focused on the psalmist. It is traditionally suggested that the psalmist was seriously ill and facing imminent death as found in verses 1-2 (Keck 726).  Who is the enemy? The enemy could represent a person or group of people, or maybe the enemy is to be understood as death.

<<<
		Consider and answer me, O Lord, my G-d;

Enlighten my eyes, lest I sleep the sleep of death. (NASB Psalm 13:3)
<<<

The appeal asks for an answer, “the request that [G-d] ‘answer’ is particularly appropriate, since the complaint in v1-2 was framed as a series of questions” (Keck 727). The NIV’s “look” may be more accurate than the NRSV’s and NASB’s “consider;” “the request calls for [G-d] to reverse the action of hiding G-d’s face.” Without intervention, the psalmist will surely die. The psalmist requests that G-d turn his face towards the psalmist (look) and intervene in this injustice (answer). The phrase “Enlighten my eyes” may have a two-fold meaning. The first “phrase means ‘to restore to health,’” while the second “may denote ‘to grant immortality,’ since ‘to see the light’ is idiomatic for ‘to enjoy immortality’” (Dahood 77). The psalmist knows he is near death; the phrase “Lest I sleep the sleep of death” is best taken as a physical reference to death (Buttrick 73). 

<<<
		Lest my enemy say, “I have overcome him,”

Lest my adversaries rejoice when I am shaken. (NASB Psalm 13:4)
<<<

	Although in verse 2 and the first line of verse 4 we find “enemy,” verse 4b refers to “adversaries” in plural, “suggesting human enemies who will rejoice over the psalmist’s defeat or demise” (Keck 727). The reader struggles with the reference to this enemy or these enemies. Does enemy represent moral evil, death, a person or persons against the psalmist, or even his affliction? The phrase “when I am shaken” is also interpreted as “when I stumble.” These have many “connotations; here it connotes stumbling into the jaws of death” (Dahood 78). This “stumbling into the jaws of death” may give be indicative of the identity of the enemy: death. Although the meaning of enemy and adversaries is significant to this psalm, we may never actually know for sure what the psalmist meant.


<<<
But I have trusted in Thy loving kindness;

My heart shall rejoice in Thy salvation.

I will sing to the Lord,

Because He has dealt bountifully with me. (NASB Psalm 13:5-6)
<<<


	Verses 5-6 compose the lament. The psalmist jumps from expressions death and enemies immediately into expressions of trust and praise of kindness. This transition is rather abrupt and unexpected. Certainly the reader is slightly deterred by the psalmist’s immediate progression into the praise of the Lord. Did the author mean for this contrast to stand out so clearly? If the contrast was meant to be so clear to the reader, then the reader might be forced to reckon with the possibility that all people may experience suffering and are still expected to have a constant faith in G-d. The psalmist’s trust seems to be ongoing; “trust is properly directed to the fundamental attribute of [G-d’s] character: ‘steadfast love’” (Keck 727). Another interesting contrast is when we find that although “the enemy had been ‘exalted over me,’ now [G-d] has ‘dealt bounty over me,’” forming a parallelism.

	Psalm 13 is rather ambiguous in terms of what the author felt towards G-d. The psalmist jumps from questioning G-d to praising G-d indefinitely. The reader is left wondering why the author poses these bi-polar claims within four verses of each other. Does this psalm justify a concurrent questioning and praising of G-d? The purpose of this particular psalm may be more than to simply express suffering and a desire for intervention, but may also serve as an exemplary mindset for those in suffering. When we suffer we are still to believe and praise G-d, for G-d’s ways are not our ways, suffer and believe. Psalm 13 is a good example of simultaneous complaint and praise of G-d during a period of suffering.

A historical strength of Psalm 13 has been the sheer simplicity of the poetry. Psalm 13 is boldly honest, concluding in positive expressions. Obviously applicable, this chapter speaks to those who feel temporarily abandoned by G-d. Although the psalmist begins to harbor doubts about the goodness of G-d, his confidence prevails, promising to praise G-d for deliverance from death. The chapter reflects the psalmist’s anxiety from G-d’s apparent apathy or anger. Does the psalmist suffer because of his enemies, or because death has chosen him, or because G-d has forgotten him, or because G-d is punishing him? The psalmist’s case and question is timeless. His brief psalm is an excellent example of enduring question of why G-d would and could let suffering and evil exist.

-----------------

''Works Cited''

Buttrick, George. //The Interpreter’s Bible: Vol. IV.// Abingdon Press. New York: 1955.

Dahood, Mitchell. //The Anchor Bible: Psalms I 1-50.// Doubleday. Garden City, New York: 1966.

Keck, Leander. //The New Interpreter’s Bible: Vol. IV//. Abingdon Press. Nashville: 1996.

Mays, James. //Harper’s Bible Commentary.// Harper & Row. San Francisco: 1988.
	Job is a book abundant with explanations for the suffering of Job. Job had four friends (not very kind either) that attempted to demystify why Job was suffering.

	Job’s first friend, Eliphaz, seems to say that because Job is guilty of sin, he may undermine his religious freedom to complain about suffering. Eliphaz goes on to explain Job’s “guilt” when he says, “Your mouth condemns you, not I, your lips testify against you” (Job 15:6). Obviously Eliphaz holds that Job is corrupted with sin and has no right to complain about his deserved suffering. Eliphaz interesting explains that a spirit told him, “’Can mankind be just before G-d? Can a man be pure before his Maker? He puts no trust even in His servants; And against his angels He charges error” (Job 4:17-18). Is Eliphaz also explaining that humanity is condemned to be evil before it starts? It sounds as if mankind is bound to do wrong, but that we still cannot complain about the consequences of doing evil. This argument is not an adequate justification for the problem of suffering because it does not explain why we are simply ‘bound’ to do the wrong and how we still can be held accountable for evil.

	Bildad is another of Job’s “friends.” Bildad says that Job is to blame for his own suffering. Bildad explains, “’If you would seek G-d and implore the compassion of the Alimghty, If you are pure and upright, Sure now He would rouse Himself for you” (Job 8:5-6). G-d protects and restores the righteous. Bildad believes that evil and suffering doesn’t happen in the righteous person. G-d seems to reward the faithful, and allow suffering as just to fall upon those who are not righteous. This argument greatly falls short of properly addressing the problem of suffering because we seem to find righteous people that still suffer, which is quite contradictory to his claim.

	Job’s third friend, Zophar, is just as unencouraging as the others. Zophar says, “For you have said, ‘My teaching is pure, and I am innocent in your eyes.’ ‘But would that G-d might speak, and open his lips against you, and show you the secrets of wisdom! For sound wisdom has two sides. Know then that G-d forgets a part of your iniquity” (Job 11:4-6). Zophar seems to say that Job is getting off easy. Is Zophar pointing out that G-d is merciful even to the wicked, that not all sins are justified through suffering, and that maybe Job has it much better than he deserves? Zophar goes on to explain, “This is the wicked man’s portion from G-d, Even the heritage decreed to him by G-d” (Job 20:29). Zophar believes that Job has been fated this lot of suffering. Given that G-d would not fate us a lot of suffering and evil, Zophar’s claim seems to attempt to redefine both G-d’s and our purposes.

	Elihu is a different breed than Job’s other three friends, possibly because he is younger. Elihu says, “Let his flesh become fresher than in youth, Let him return to the days of his youthful vigor; Then he will pray to G-d, and He will accept him, That he may see His face with joy, And He may restore His righteousness to man” (Job 33:25-26). Elihu holds that suffering is G-d’s form of education that changes the sinner into a righteous person. Suffering is a means to the righteousness for mankind. Interestingly, Elihu says, “’Behold, let me tell you, you are not right in this, For G-d is greater than man.’ ‘Why do you complain against Him, That He does not give an account of all His doing’” (Job 33:9-13)? Elihu alludes to the idea of a transcendent G-d, a G-d that needs not explain why things are the way they are. Elihu has the most interesting of the four claims. Ironically, he seems to know that G-d allows suffering as a device to educate the evil into righteous, yet we somehow cannot know this because G-d is transcendent. The argument from transcendence is from first appearance a cop-out, and suffering as an education-device is inadequate when it seems that G-d simply could program our environment to teach us in other, non-suffering ways.

	Luckily for Job, he doesn’t need to rely solely on his friends’ advice; Job has a dialogue with G-d. G-d answers Job in terms of transcendence. Who is Job to question G-d? G-d explains, “Where were you when I laid the foundation of the earth” (Job 38:4)? G-d can do as He wills because He wills only that which is perfectly good. Imposing suffering at particular moments seems to be a necessary aspect of what a perfectly good being does. No doubt, we are left in awe at G-d’s answer. Who are we to so boldly answer these questions, when only a perfect being such as G-d may know them?
	Leibniz undertook the task of proving that G-d would make the best of all possible worlds, and that our world is the best of all possible worlds. Leibniz thought human free will was not the cause of evil, but rather that evil arose out of the environment. Leibniz holds that the occurrence of evil is essential to the superior goodness of the whole. To be more specific: Leibniz argues that G-d created an environment with evil so that the world could be the best of all possible worlds—“G-d made a world wherein there is evil,” a necessary evil (14). Leibniz does not hold evil to be a by-product, it wasn’t just permitted, but that evil is an essential ingredient woven into the fabric of this “best of all possible worlds.” To Leibniz, G-d had to create a world with evil, else it would not be the best of all possible worlds.

	Leibniz’s first argument is: If we are convinced of the existence of an all-knowing, omnipotent, perfectly good creator, we must deduce that this world must be the best of all possible worlds; otherwise, the creator would not have sufficient reason to create this world. In response to the concept that evil is alone a creation of the free will of man (thus making man less than excellent), he responds, “it is wrong to bring into existence, knowingly, a being less excellent than one could have brought into existence” (2). Thus, G-d created the most excellent being, a being that was determined by its “excellent” nature to produce evil. Further, G-d is responsible for this deterministic creation and all the evil produced from this creation, and He has done no evil because that which was created was simply a part of the greater whole. Leibniz holds that all of creation, including every being within our world, is the most excellent of all possible creations because it brings about the greatest possible net balance of good. For those who choke on this idea, he further comforts, “One must understand that G-d [respectful emphasis] loves virtue supremely and hates vice supremely, and that nevertheless some vice is to be permitted” (6).

His argument is tempting because it attempts to solve, in a creative fashion, how G-d and evil can co-exist. Rational people tend to say that the creator of a deterministic or fatalistic object or environment is morally responsible for the deeds of that object or environment. If a person creates a robot, and that robot murders ten other beings, then that person (the creator) is morally responsible, at least in large part, for the death of those ten beings. Leibniz holds that G-d created a deterministic and/or fatalistic environment with determined necessary truths: among those are all existent evil. Leibniz is accusing G-d of not only permitting, but also creating evil. The problem is found in the notion that a being who a deterministic and/or fatalistic enivronment with evil, is committing an act evil—thus, G-d would be committing evil by creating a deterministic and/or fatalistic environment with evil  (even if it were simply for the purpose of having “the best of all possible worlds”). Although G-d may be part of the causal chain that leads to the existence of evil, He is not morally responsible for the existence of evil. Leibniz attempted to show that G-d is responsible for the existence of evil, but was acting in the interest of the “best of all possible worlds” (which supposedly is the action that would be chosen by a perfectly good, all-knowing, omnipotent being). The real question we must ask is: How is it possible for G-d, creator of the universe, to not be responsible for the existence of evil? Leibniz outright rejects the idea that G-d is not responsible for evil, placing the blame solely on G-d the creator—Leibniz is incorrect. Leibniz believes that G-d is responsible for the existence of evil. Here is the basic argument against Leibniz’s claim:

# A being who creates a deterministic or fatalistic object or environment with evil, is committing an act evil.
# A perfectly good, omnipotent, omniscient being cannot commit an act of evil.
# Since G-d is a perfectly good, omnipotent, omniscient being, He could not create a deterministic and/or fatalistic object or environment with evil.

Leibniz’s argument does not conform to the very definition of G-d, a G-d that is perfectly good, omnipotent, and omniscient. Is it that G-d is missing one of those attributes, or that he did not create the best of all possible worlds, or that he did not create a deterministic and/or fatalistic world? G-d cannot be morally responsible for evil, and yet he is still part of the causal chain that led to the existence of evil…How is this possible?

There are other ways to deal with the problem of evil. One could argue that the world is not necessarily the “best of all possible worlds” because it has evil, but rather because it merely possesses the possibility of evil, a possibility created through the free will of mankind. To further the argument, we would say that the “possibility of both good and evil,” agency, is good in itself and is an essential ingredient of the best of all possible worlds. Leibniz could keep his “best of all possible worlds,” and maintain that G-d has not committed an act of evil in creating this world, simply by changing what ingredients form the best of all possible worlds. 
However, Leibniz oversteps, and commits to the idea of G-d necessitating evil for the necessary greatest good. He should have simply explained that the greatest good is found in the “possibility of both good and evil.” This would allow G-d to be part of a causal chain leading to the existence of evil, without G-d being morally responsible for that evil. Ironically, this allows us to maintain that this world is the best of all possible worlds. Although I highly disagree with Leibniz’s conclusions, obviously he was part of the causal chain that led to this rewritten paper—thus helping to promote and maintain the best of all possible worlds. Right?
	Viktor Frankl in his book, Man’s Search for Meaning, explores the stages of thought found in the prisoners of Auschwitz. He explains that prisoners go through three phases of mental reactions: “the period following his admission; the period when he is well entrenched in camp routine; and the period following his release and liberation” (26). Frankl examines a variety of mental reactions common through each of these stages. Viktor Frankl holds a numbing of the senses and a deadened morality for the sake of survival as a significant principle that guided prisoners throughout the Holocaust.

	Even from the beginning of a captive’s imprisonment there is very little consideration of morality or ethical issues. Frankl explains that, “Every man was controlled by one thought only: to keep himself alive for the family waiting for him at home, and to save his friends” (23). Although one could make the argument that the concern for one’s family is an ethical concern, Frankl demonstrates that prisoners were not actually concerned about the morality of whatever it took to save themselves from death. Dawning upon Frankl’s first phase the prisoner strikes out his or her previous life. The prisoners come to grip their fate, they most likely will not survive the concentration camp, but they should do whatever is necessary to survive as long as possible. Ironically, even thought the majority of prisoners desired to live, supposedly, “the thought of suicide was entertained by nearly everyone, if only for a brief time” (36).

	Frankl explains the second phase as a time of “relative apathy in which [the prisoner] achieved a kind of emotional death” (39). Prisoners began some basic human functions in terms of the loss of feelings and disgust for what was around them. Frankl says that, “the prisoner who had passed into the second stage of his psychological reactions did not avert his eyes any more. By then his feelings were blunted, and he watched unmoved” (40). Apathy was a self-defense mechanism for prisoners who had lived long enough in concentration camps. In the midst of apathy towards the diabolic activity found in the camp, prisoners became consumed with an almost animalistic instinct for survival. Undernourishment led to a serious “preoccupation with food” (52). Interestingly, some prisoners kept up their hope and desire to live through images of their families. The author himself says, “nothing could touch the strength of my love, my thoughts, and the image of my beloved” (58). 

	Victor Frankl goes on to explain a silence among the prisoners. Frankl states, “On entering camp a change took place in the minds of the men. With the end of uncertainty there came the uncertainty of the end. It was impossible to foresee whether or when, if at all, this form of existence would end” (90). Life to the advanced prisoner didn’t seem to have much of a future. Prisoners could not even think in terms of how it would be like outside of the camp, instead they could only think narrowly in terms of life (and the end) within the camp.

	The last stages of imprisonment consisted of possibly the largest shift in perspective. Victor Frankl explains, “We had to learn ourselves and, furthermore, we had to teach the despairing men, that it did not really matter what we expected from life, but rather what life expected from us. We needed to stop asking about the meaning of life, and instead to think of ourselves as those who were being questioned by life—daily and hourly” (98). The life of the prisoner was a daily trial. Would they win that hour or that evening?

	The liberated prisoner had no idea howto feel. Most prisoners didn’t want to even think about what had happened. Frankl demonstrated that non-prisoners of these concentration camps could not truly understand or evaluate how these people thought and felt. Thus, the liberated prisoners had difficulty explaining what went through their minds, most attempt to remain silent about the horrendous activities within concentration camps such as Auschwitz.

	Lack of sleep, insufficient food, apathy, images of family, and the desire to survive were some major thoughts throughout the life and experience of those imprisoned in concentration camps. Frankl shows a breakdown of a person, eventually the meaning of life appears to be one big set of trials.
	
	
//In memory of Dr. Bowman.//

-----------------

//“All women are psycho, all men are jerks.” --Kurt Vonnegut//

//“There is neither Jew nor Greek, there is neither slave nor free man, there is neither male nor female; for you are all one in Christ Jesus.” -- Galatians 3:28 (NASB)//

	Ancient women, as found in the Old Testament and Euripides’ plays, were not treated with equality. Women are naturally weaker in physical strength. We find in the ancient cultures of the Hebrews and Greeks that women were also viewed as weak in many other aspects of life. They were considered immoral creatures, driven by passion, representing the ‘lesser’ side of humanity. Women were not treated with equality in both the Old Testament and Euripides’ plays, they slaves and second class citizens.

Ancient societies were patriarchal societies. Men ruled the house, men ruled the state, and men controlled the market. Men were allowed to have polygamous relations; while women were whores and unclean if they were polygamous. Both the Old Testament and Euripides’ plays express obvious patriarchal societies as the setting. Women were treated as objects and property. They were the vessels of shame and misery. They followed the male head of the household or they died. Women were slaves. Some women were referred to as servants and concubines and mistresses, but we should be deceived. Since these women still did not have choice/power in how they wished to live their lives, they were clearly slaves—property to be ordered around. The similarities between the rights, liberties (or lack thereof), and treatment found between women and slaves are astonishing. Women at best were second class citizens—a true citizen actually has power of him or herself.

	A person reading the book of Genesis could easily read that women were responsible for the “fall” of mankind. Adam said, “’The women whom you gave to be with me, she gave me fruit from the tree, and I ate’” (Genesis 3:12). The Lord asks Even, “What is this that you have done?” in a very accusatory tone, as if the woman was completely at fault for the “fall” (Genesis 3:13). The Lord answered in retribution towards all women, “yet your desire shall be for your husband, and he shall rule over you” (Genesis 3:16b). The Hebrews had justification for their treatment of women. The Hebrews could simply say that the Lord made it such that women were to be subservient to men. Obviously, the text appears to promote a patriarchal slavery of women rather than an egalitarian view.

	Euripides portrays women as crazed, jealous, emotional, backstabbing sex-fiends. In the eyes of the Greeks, women are seductive, highly sexual, immoral predators. However, Euripides was ahead of his time. To his credit, Euripides was generous enough to actually even consider displaying the experiences of women. A normal Greek would not have been as concerned with the feelings and experiences of the women found after the Trojan war. So, in a sense, Euripides was promoting the value of women more-so than a normal Greek would be expected to uphold.

	The relationship between Sarah and Hagar, of the Old Testament, is very similar to the relationship of Andromache and Hermione, found in the Euripidean play Andromache. Although slightly different, these two stories offer a distinct parallel between how the two cultures perceived women and how women ‘supposedly’ interacted with each other.

Sarah is the wife of Abraham. Hagar is the concubine and slave of Abraham. Sarah is unable to bear children and therefore goes and gives Abraham her hand-servant Hagar. Abraham conceives a son, Ishmael, with Hagar. Sarah becomes jealous of Hagar. Sarah conceives evil plans for Hagar, and eventually is able to banish Hagar from Abraham’s household.

Hermione is the wife of Neoptolemus. Andromache is the slave and mistress of Neoptolemus. Hermione is unable bear children. Andromache bears a child for Neoptolemus. Hermione becomes jealous of Andromache. Hermione conceives of evil plans for Andromache, wishing death upon Andromache.

	Comparatively, these stories reflect the jealousy found between wives and concubines. As Hermione states, “it is not decent for one man to keep two women in the reins of marriage. No, the man who wishes to live with propriety is content if he looks to a single loved one in his bed” (Morwood 81). Sarah hated Hagar just as Hermione hated Andromache. Sarah and Hermione played the desperately jealous, evil, and conniving wives, while Hagar and Andromache appear to play more innocent roles. Hagar and Andromache were forced to sleep with their owners; Sarah and Hermione always wanted to sleep with and bear children for their husband/owners, but were unable. 

	Out of both the Old Testament and the Euripidean plays, we find an emerging concept of women’s roles: they were to have sex, have kids, and raise the children. But, there appears to be slightly different slants on perspectives on women as a sexual being in these two texts.

	In contrast, women of the Old Testament were not seen as the same sex-fiends as found in the Euripidean plays. Old Testament women were portrayed more as weak-willed and immoral, failing to fear the Lord. Lot’s wife and his daughters both showed a lack of will power to fear the Lord and abstain from incestual relations with their father. Sarah laughed at the Lord. Eve was the first human to sin. The main perspective on women was that because they were immoral and weak-willed they were, under the Lord’s command, to be subjugated under males. It seems that at first women became slaves of men because the Lord commanded it. However, it appears that the subjugation and demeaning treatment of women in Euripides’ plays was always the accepted opinion of the Greeks. The enslavement of women seems to be based on two different ideas. Women were enslaved for Hebrews because the lord commanded it, while the Greeks enslaved women because they absolutely felt females were a lesser class of humanity. It is more difficult to infer that the Hebrews explicitly felt that women were not equal—whereas we could easily infer that women were not equal to men for the Greeks. The basis of inequality separates these two cultures. The Hebrews may not have believed women were unequal to men, they simply treated women unequal because the Lord commanded them to do so. This is far different from the explicit degradation and lower value of women found in Euripidean plays.

	Women in both the Old Testament and Euripides’ plays experienced very similar circumstances. They were servants, slaves, concubines, and wives. They were seen as immoral and weak. They were second-class citizens of humanity. Women were not equal to men; this may have been the greatest tragedy in both the Old Testament and Euripides’ plays.
	

--------------------

''Works Cited''

Coogan, Michael. //The New Oxford Annotated Bible//: 3rd Ed. Oxford University Press. 
Oxford: 2001.

Morwood, James.// Euripides: The Trojan Women and Other Plays//. Oxford University 
Press. Oxford: 2000.
	In her critique of Nozick’s Anarchy, State, and Utopia, Susan Okin explains an absurdity that follows from Nozick’s conception of justice. Nozick attempts to form a system in which a “society is best and most morally arranged when it leaves each to produce what he can by the use of his own talents, and to enjoy the produce of such labor and luck combined” (88). Nozick’s entire theory assumes that people “own” themselves. If people did not own themselves, then there wouldn’t be much sense in the idea that people could be entitled to other holdings (which is the whole point of entitlement theory). Under Nozick’s conception of justice as entitlement, all persons are “entitled” to the products created from their own capacities and labor. Okin explains that since all human beings are the products of female capacities and labor, then all human’s are owned by their mothers. Okin uses a reductio ad absurdum to defeat Nozickian entitlement theory. Nozick is unable to sustain the two propositions that 1.) All individuals own themselves and 2.) All individuals are owned by their mothers. 

	Nozick holds that “individuals’ entitlements to things they own take precedence over any other rights” (77). Nozick seems to prefer legitimately acquired property rights over rights to life and basic necessities. With an understanding of the primary significance of legitimate entitlement Okin walks her audience through a possible objection to her own argument. She defends against the idea of motherhood monopolies violating ownership rights of men and infertile women. The rights of non-owners are violated iff they are left worse off than they would be in a “baseline” situation. Okin states, “these women do not ‘worsen the situation of others; if [they] did not [produce children] no one else would have, and the others would remain without [them]’”(84). We can see that in the Nozickian world all people can “be in the market” for buying and selling children and persons. Thus, there is no monopoly created by mothers because all people still have the possibility of legitimately acquiring children. Unfortunately, Nozick’s system appears to devalue personhood while uplifting something even greater, entitlement and property. No doubt, I am pleased that my mother has yet to keep me in a cage for her own amusement, sell me, or kill and eat me as any Nozickian mother could. 

In defense of Nozick one could argue a distinction between infants and persons. If all infants are products of female reproductive systems (natural capacities and labor), then all infants are the “property” of their mothers/owners. Thus, infants do not own themselves. This does not explicitly necessitate that people do not own themselves. Nozick could argue that infants are not yet persons. Surely the mother is entitled to whatever or whomever is excreted from her womb as a product of her “natural assets.” But if a product evolves and develops into something as unique as a true person, does the mother still actually “own” that newly developed person? Nozick may have the position that only a person can be entitled to something. Otherwise, one could argue that an environment, a world, a universe, or some other inanimate object which “put its labor and effort” into creating all things within and from it, would also be owned by that environment or object. The universe would then own all within it, creating another absurdity. If Nozick proceeded to argue that infants were not persons, then obviously infants couldn’t own themselves (even if a person could be owned in the first place). Mothers (and fathers) could “own” their children. Nozick’s escape is in the notion that the very moment in which an infant is no longer an infant—where one “becomes a Nozickian person,” that person acquires himself or herself. Is it possible that the sudden appearance of a newly created person with autonomy, intelligence, rationality, moral agency, and free will gives that new person an entitlement to his or herself at that moment? Is the act of becoming a person also a part of legitimate acquisition of one’s self? People lose and gain holdings legitimately all the time; “losing” a son or daughter for that son or daughter to be entitled to themself may just be a part of the entitlement theory. Losing the rights of entitlement to a child, when that child becomes a person, may simply be a part of parenthood as a business venture—parents are just taking an economic “loss” when children become Nozickian persons. Even if infants come into the world already as holdings of their parents, persons that develop from infants are not necessarily holdings of their parents. 

On a different note, Okin’s argument appears sexist for neglecting the role of men in the process of procreation. Although she briefly goes over ways in which women acquire sperm, she merely assumes that women are freely given sperm or buy sperm. Women can and do legitimately acquire sperm, but Okin neglects the possibility that certain couples work together to produce a child. Thus, in at least certain circumstances, a child could belong to more than just its mother. Especially, if no contract of legitimate transfer is made other than that both parties wish to “own” a child, and then both parties not only play a role in the production, but are also joint “owners” of that child. One could argue that women play the most extensive and difficult roles in reproduction, but certainly the male played a vital role in conception as well; maybe ownership could be disproportionate. Even if mothers are entitled to the greatest proportion of ownership, many fathers would still hold at least some entitlement to a child they have labored to produce. Given that some sperm is “donated,” freely given, or legitimately transferred without asking for entitlement to products from that sperm (beyond payment), one could say that at least under certain circumstances, both a woman and man both “own” a child within a Nozickian world.

Okin fumes about pronoun usage, but we can’t hold that against her; she makes an excellent case against Nozick’s entitlement theory. Nozick doesn’t fail to take into account women; he simply neglects the truth that under his theory his own mother “owns” him; he cannot be entitled to himself. Nozickian entitlement theory is injured when people cannot “own” themselves because they did not produce themselves.
	The Trial of G-d is a novel idea, maybe even a dangerous idea. The play portrays a trial of G-d as an activity that many communities have put into practice. This play is brilliant and maddening. We hold in contrast the destruction of G-d’s chosen people and G-d’s ever present love for His chosen people. What are we to make of catastrophes such as the Holocaust? G-d appears to be responsible for some less than G-dly actions. G-d allows evil to exist; we are baffled and angered.

	Act one sets up the theme and characters of the play. The setting is a bar in a Ukrainian village. Earlier this village had been populated by a Jewish community. The Jewish community was massacred by a mob of anti-Semites. The play is being shaped to represent the holocaust. We are forced to reckon with the questions asked and the thoughts of those who suffered through the holocaust. How could G-d have let his chosen people be massacred? 

	At first we find the main character Berish to be distraught. The audience easily identifies this man as grumpy and angry. Slowly, the story reveals that Berish is not without faith, yet he is very angry with G-d. He is angry enough to say that G-d has sinned. The rationale of those who suffered the holocaust can be found in this man Berish.

	Maria is rather aggressive. She clearly holds the basic Judeo-Christian stance. She says, “[G-d] is [G-d]: sometimes He is kind, other times He is not—He’s still G-d!” (47). The audience is apt to sympathize with Maria.

	The three minstrels, Mendel, Avremel, and Yankel, perform the duties of rabbis, judges, and mediators. Odd and yet somehow traditional, these characters are learned and experienced in the world and in faith. Although jolly and pleased with holiday amusement, they help set up the very serious basis of the story: judging G-d’s actions.

	Hanna and Sam the Stranger are opposites. Hanna is young and fragile while Sam is strong, cynical, and worldly. Sam is almost evil in his intelligence. Hanna is almost innocent in her intelligence. Hanna is plain and honest, Sam is a slick stranger. Hanna is quiet, Sam is outspoken. Sam seems to be the only person who does not suffer in this play, Hanna suffers the most. The characters do not represent most of us, they are either too evil or too good, suffer too much or cause too much suffering. 

	The trial starts and ends strongly in favor of Berish the prosecutor. G-d appears to bring about evil upon his chosen people. Berish and his family, and maybe other Jewish families of his small village, didn’t appear to deserve punishment. In the eyes of Berish, G-d not only allowed genocidal evil of his chosen people, but G-d supposedly brought about by His will these hateful and evil events. 

	I am profoundly touched by this seemingly unreasonable faith in G-d. How can Berish have faith in G-d while at the same time despise G-d? To be perfectly honest, I don’t know how to answer this play. It seems as if we must simply embrace our faith in the midst of experience that is clearly contradictory to our faith.

By far the most difficult dialogue to comprehend is when Berish explains, “I lived as a Jew, and it is as a Jew that I shall die—and it is as a Jew that, with my last breath, I shall shout my protest to [G-d]! And because the end is near, I shall shout louder! Because the end is near, I’ll tell Him that He’s more guilty than ever!” (136). The mix of hate and faith is very difficult to grasp. Berish has almost a blasphemous disrespect for G-d, how could he still have faith? We hate what G-d does, but we praise G-d for who he is. There seems to be an attempt to separate the identity of G-d from the actions of G-d.

In the last few minutes of the play we observe an explosion of thought and activity. Sam is satan; satan was defending the Lord in this trial!? A closer look at Sam’s dialogue reveals how the question of G-d and evil is almost diabolical. Satan the Stranger is quick to point out very tradition ideas. But, in light of the prosecution’s case, the audience is left questioning the validity of these very traditional ideas of G-d. 

This tragic farce zeroes in on the very questions of evil and G-d. How do people live through these experiences? A verdict against G-d would lead most to lose their faith in G-d. To our horror, we find even the minstrels desire the ‘faith’ that Sam exhibits. If anything, Sam lacks faith! Faith is not an understanding of what G-d is, or who He is, or why He does what He does; faith is simply an extraordinary belief outside of what we can see or experience.
	Lucius Annaeus Seneca was a philosopher and statesman. He was a tutor to Nero, and chief administrator of the Roman Empire with Burrus. Although Seneca was ironically wealthy, he was not concerned with wealth or worldly goods. He was a true stoic. Seneca’s Letters from a Stoic accurately depict the beliefs of a Roman stoic.

	Stoicism began as a philosophical tradition founded by Zeno (of Citium), developed by Cleanthes and Chrysippus, and named for the Stoa Poikilé (Painted Porch) in Athens where they taught (Honderich 852). Although there are a variety of assertions made by Stoics over the ages, there are some basic principles that all Stoics hold. The defining principle of Stoicism is the acceptance of misfortune without complaint. Another major tenet of Stoicism is the immense significance of rationality and necessity of reason in order to understand the world and follow divine order. The overarching structure of Stoicism, as a whole, isn’t necessarily about “how and why the world is the way it is,” but rather, “how should one behave and think?” Stoicism could be thought of as a philosophy of ethics and morality. Seneca clearly wrote a great deal on “how one should live one’s life.” To say Seneca was a “Stoic” is to say that he accepted misfortune without complaint, was self-content, and valued rationality, reason, and the pursuit of wisdom.

	Seneca’s Letters from a Stoic provide excellent examples of Stoic beliefs. Over and over Seneca explains that, “The wise man is content with himself” (Seneca 51). Self-content is a very Stoic belief. Not only is the wise man self-content, but a “wise man feels his troubles but overcomes them” (Seneca 48). The wise man overcomes troubles because troubles are arbitrary to a Stoic. One trouble Seneca faced was his health and age. But, even in his old age he says, “Fruit tastes most delicious just when its season is ending” (Seneca 58). Not even old age or death will truly trouble this noble stoic. Another example of Stoic thought can be found when he says, “’Any man’…’who does not think that what he has is more than ample, is an unhappy man, even if he is the master of the whole world’” (Seneca 53). Like a stoic, Seneca denounces worldly goods because they do not lead to true happiness. Seneca said, “a holiday can be celebrated without extravagant festivity” (Seneca 67). Stoics supported moderation and the prevention of gluttony and excess. Seneca also revealed that, “A good character is the only guarantee of everlasting, carefree happiness” (Seneca 73). Seneca, like any good stoic, is concerned with how one ought to live when he discusses how only a virtuous person can attain true happiness. Seneca also wrote, “no one can lead a happy life, or even one that is bearable, without the pursuit of wisdom, and that the perfection of wisdom is what makes the happy life” (Seneca 63). Seneca, like all true stoics, value wisdom.

	The profound value of the pursuit of wisdom can be found in both the Symposium and Letters from a Stoic. Plato, through Socrates as a character, easily qualifies as a stoic as we read about him in Alcibiades’ speech, “You should know that [Socrates] doesn’t care at all if someone is beautiful…or is rich or has any of the other advantages prized by ordinary people. He regards all these possessions as worthless…” (Plato 55). Socrates is very much a stoic in his approach towards riches, worldly goods, and even beauty to some extent. Although Socrates was an ugly man, he ironically replies to Alcibiades’, “You must be seeing in me a beauty beyond comparison and one that’s far superior to your own good looks” (Plato 58). That beauty stems from Socrates’ pursuit of wisdom. Only the wise man can be a virtuous man, only the virtuous can properly display beauty. Beauty, as defined by Socrates, requires the pursuit of wisdom and excellence. Plato clearly holds virtue to be the basis of happiness. Only the wise man can be virtuous, only the virtuous can be happy; thus, only the wise can truly be happy. This concept of wisdom producing happiness through virtue is clearly a major similarity between Platonism and Stoicism. 

	Neither Plato nor Seneca were afraid of death. Their courage in the face of death was the sign of a learned and wise man. Seneca explains, “though human beings may perish, humanity in itself - the pattern on which every human being is molded – lasts on” (Seneca 120). He goes on to explain that the, “soul is in captivity unless philosophy comes to its rescue…the soul….makes for the open and finds its relaxation in contemplating of the natural universe” (Seneca 122). Plato used the Forms to defeat death. The Form of Man is the soul. A metaphysical explanation of ‘the self’ allowed both Plato and Seneca to not be afraid of death. Just as Plato may have had some influence on later Roman stoics like Seneca, both Platonic Forms and Seneca’s Stoicism clearly influenced the Christian rationale for this concept of the soul. We cannot neglect the chain of influence throughout ancient western philosophy, and the impact of Platonic and Stoic ideas woven into the very fabric of our society.

---------------

''Works Cited''

Honderich, Ted. //The Oxford Companion to Philosophy//. Oxford: Oxford University Press, 1995.

Seneca. //Letters from a Stoic.// London: Penguin Books, 1969.

Plato. //The Symposium.// London: Penguin Books, 1999.
//“Which brings me to my conclusion upon Free Will and Predestination, namely let the reader mark it that they are identical.”  	-Winston Churchill//

//“We have to believe in free will. We’ve got no choice.” 	-Isaac B. Singer//

	Alvin Plantinga is widely acclaimed in the philosophy of religion community for his defense of theism, or more exactly, the logical possibility of theism. He uses contemporary modal logic to defend and formulate rigorous epistemological and ontological arguments (Honderich 683). Plantinga ultimately argues that belief in God can be a rational, logically consistent, and a warranted belief, even in the face of the evidential argument from evil.

''Problem of Evil''

The Problem of Evil previously jeopardized the logical consistency of theism. The precise argument for the Problem of Evil is often credited to J.L. Mackie. The theist’s difficulty arises from the following propositions:

# God is omnipotent, omniscient, and perfectly good (and extant).
# Evil exists

Mackie states that theists are logically inconsistent, forming a contradiction, when they claim that propositions (1) and (2) are simultaneously true (Mackie 263). Mackie relies upon the idea that a perfectly good, omnipotent, and omniscient being (God) would do all in His power to terminate (or never allow) the existence of evil.

Plantinga believes that theists are not explicitly contradicting themselves when they hold propositions (1) and (2) to be simultaneously true. He goes on to explain a series of arguments which appears to allow for the possibility (however small or great) for (1) and (2) to be concurrently true.

''The Free Will Defence''

The “Free Will Defence” is one of more effective theories used to further the logical consistency of theism. Alvin Plantinga is very famous for his expansion on this argument. He explains that, “If a person S is free with respect to a given action, then he is free to perform that action and free to refrain; no causal laws and antecedent conditions determine either that he will perform the action, or that he will not” (Plantinga 93). This particular definition of free will is not the traditional explanation, but Plantinga must be very concise about what he means by free will to examine the workings of a delicate argument, i.e. this is just the tip of the iceberg. His above definition only requires that nothing (not even God himself) can prevent a choice or determine the choice of a truly free person.

With a base understanding of what a ‘free person’ can and cannot in fact do Plantinga moves on to the core of the Free Will Defence. He explains, “A world containing creatures who are sometimes significantly free (and freely perform more good than evil actions) is more valuable, all else being, equal, than a world containing no free creatures at all” (Plantinga 93). He is very careful not explain a world in which God’s creatures are always free; primarily because one could easily argue that persons are not always free, that at times persons are simply driven or caused to behave in a particular way. Take for instance a mental disease or incapacitating drug, victims are truly not free with respect to any action because they are forced by an outside factor to act as they do in these circumstances. But, Plantinga doesn’t need permanently free persons. The Free Will Defence only requires that persons are at least sometimes free so that it might be possible for God to not be responsible for evil, and so that (hopefully) it will be apparent that theism and the existence of evil can be logically compatible. One must remember: Plantinga is only looking for the mere possibility of theism being logically consistent. And in the end, this is all the theist really needs (at this point in philosophy at least) to maintain the appearance of a rational belief.

Orthodox Judeo-Christian believers may not realize what the Free Will Defence requires. It requires, in some senses, a minimization of the transcendent God’s powers, or at least a more concise definition of what is and is not possible for God in this instance. Often, people are unwilling to place limits on God’s abilities, but in this rigorous argument, God has certain logical limits; Plantinga is straightforward about this issue. He explains that, “God can create free creatures, but he cannot cause or determine them to do only what is right. For if he does so, then they are not significantly free after all; they do not do what is right freely” (Plantinga 93). The Free Will Defender must accept that there are certain things that an omnipotent God simply cannot do, including determining (in any way) the actions of a truly free person. God can’t create a married bachelor, a squared circle, or make 2+2 equal 5, these are all propositions that Plantinga feels God has no control over. It should be noted that Plantinga is defending a freedom that is very extensive, far beyond what most consider just a normal “choice.” He defends a free will that in itself is a creative power, a power given by God, a power that God no longer has in all instances, a power in which that free person truly acts freely.

The problem of evil, and even the discussion of God, relies upon the assumption that there is moral good and moral evil. Plantinga examines the free person’s ability to create moral good and moral evil. He says, “To create creatures capable of moral good, therefore, he must create creatures capable of moral evil; and he cannot leave these creatures free to perform evil and at the same time prevent them from doing so” (Plantinga 93). Plantinga is further stressing the capabilities of those who have free will, and consequently refers to God’s lack of capability in that instance. Can God stop a person from performing a moral evil? Yes. But in the moment God would do such, the person (who is experiencing this divine intervention) will not be in fact free, for God prevented an action that a truly free person would have been capable of choosing.

The Free Will Defender believes that, “God did in fact create significantly free creatures; but some of them went wrong in the exercise of their freedom: this is the source of moral evil” (Plantinga 93). If free creatures, those who make certain choices outside the power of God, are the source of all moral evil, then God is not responsible for moral evil, because he didn’t create it. By eliminating the possibility for free creatures to create moral evil, God would have eliminated the possibility for free creatures to create moral good. An important aspect of his argument for us recognize is that only free persons (God as such is traditionally considered person as well) are capable of creating moral good and/or moral evil. Essentially, this leads Plantinga to explain that “it is possible that God could not have created a universe containing moral good (or as much moral good as this one contains) without creating one containing moral evil” (Plantinga 94).

''The Objection''

The previous argument only outlined ways in which an omnipotent and perfectly good being could possibly not be responsible for the existence of evil. But, as we will find, the most difficult argument for the theist to overcome is the problem of evil from God’s foreknowledge of evil. Plantinga beings to reveal this difficult problem when he says, “It is logically a possibility that there be a world containing significantly free creatures who always do what is right” (Plantinga 94). He does not really mean the Free Will Defender holds the above claim to be true. Instead, he says that the Free Will Defender is forced to reckon with the possibility of God knowing what free persons would do within a given possible world, and then choosing to create a world in which free persons would choose (of their own creative freedom) to only do what is right. Even worse, Plantinga shows that the Defender must answer to just the possibility of a world with only moral good and no moral evil. The Objector states:

(3) God could have created just any possible world he chose, including those containing moral good but no moral evil.

Keeping (3) in mind, the Objector goes on to say, “Being perfectly good, [God] must have chosen to create the best world [He] could; being omnipotent, [He] was able to create just any possible world [He] pleased. He must, therefore, have chosen the best of all possible worlds; and hence this world, the one [He] did create, must be (despite appearances) the best possible” (Plantinga 95). Leibniz put forth the idea that God, if he exists, must create the best of all possible worlds. The Objector will also side with Leibniz because it seems very rational. If God must choose to create the best of all possible worlds, and God can create a world with moral good and no moral evil (a world better than the actual, present world), and the actual, present world has both moral good and evil, then God did not create this world. The objector could easily to follow up his previous claim with: “God the creator does not exist.” What does the Free Will Defender say to an apparently valid argument like the objectors? Plantinga answers, “The Free Will Defender wonders whether there is a best of all possible worlds. Central to the Free Will Defence is the claim that God, though omnipotent, could not have created just any possible world he pleased” (Plantinga 95). The Defender rejects (3), consequently, a very rigorous argument ensues to show why (3) cannot be true.

''Possible Worlds''

Plantinga speaks in the language of “possible worlds.” We are faced with the question: “What possible worlds could God have created?” Obviously God created the heavens and the earth, and the universe, etc.—but, he couldn’t have created himself, or “numbers, propositions, properties, or states of affairs: these have no beginnings. We can say, however, that God actualizes states of affairs” (Plantinga 95). What the hell does Plantinga mean?

Painstaking arguments, such as the one Plantinga put forth, often assume that readers have a certain set of knowledge. To some philosophers, it is quite clear that God can only do what is possible for God to do, and so forth and so on. Logical constraints are already set upon God in this discussion. If God wasn’t subject to the laws of logic, then there wouldn’t be much point in questioning the logical consistency of the concurrent existence of both God and evil. Plantinga takes the logical constraints to be true, and so he must deal with the Objector’s argument, and utilizing a very rigorous logic to defeat the objection may be his only option. Plantinga introduces modal logic at this point in his writing. We ask ourselves: “What is a possible world?” A possible world is a world that differs in some way from our “actual” world; it is what many consider to be a hypothetical world. To dig deeper into the meaning of a possible world, one must understand the concept of contingent and necessary truth. A contingent truth is a truth that could possibly have been different. For example:

(4)	The North won the civil war.
(4’) 	The North did not win the civil war.

Even though (4) is actually true, can we not at least ponder the possibility that (4’) could in some hypothetical sense be true? Imagine a world that is almost exactly the same as our actual world during the point at which the South or the North would decidedly win or lose the war; and in this world only one difference occurred, the North did not win the civil war. A contingent truth is just like (4) or (4’), either could have possibly been true. Plantinga is primarily concerned with these truths, especially since they provide the most difficult problems for the theist.

A necessary truth is “true in all possible worlds” (Fischer 49). An example would be 2+2=4. Most people are willing to take for granted that whether the North won or did not win the civil, 2+2 would always equal 4. There isn’t a possible world in which 2+2=4 could be false. Often, necessary truths are self-explanatory. For example: “a bachelor is not married,” and “A is A,” represent self-explanatory truths that must be true in all possible worlds, thus they are necessary truths as well.

A possible world is simply a combination of propositions, these propositions range from necessary truths to contingent truths. A possible world will always have an internally, logically consistent set of truths. 

	Plantinga explains, “Properties are not creatable: to suppose that they have been created is to suppose that although they exist now, there was a time at which they did not; and this seems clearly false” (Plantinga 96). Properties are just ideas; all logically consistent ideas exist in all possible worlds. The color blue for instance is just a configuration of light waves, blue is a property, the configuration of light waves that makeup blue are true in all possible worlds, regardless of whether those light waves actually exist. Plantinga goes on to say that, “Necessary states of affairs do not owe their actuality to the creative activity of God” (Plantinga 96). Clearly the very possibility of properties is not created by God, number theory and rules of logic cannot be created by God. These exist with God. This may be a very hard thing to swallow for some theists, but Plantinga must have this understanding to further his argument, otherwise it appears that the evidential argument from evil is true. However, God obviously must actualize some states of affairs; those are the contingent states of affairs. Plantinga elaborates, “We may say that God can actualize a given possible world W only if he can actualize every contingent state of affairs W includes” (Plantinga 96). Basically, God can only do what is possible for God to do.

''Freedom''

	Plantinga’s argument becomes very difficult at this point in the text. He clarifies his explanation of free will when he says, “a person is free with respect to an action A at a time t only if no casual laws and antecedent conditions determine either that he performs A at t or that he refrains from doing so” (Plantinga 97). He is taking into consideration the concepts of contingency and necessity, both of which derive their meaning in his argument from whether or not they act as antecedent conditions. 

Free persons are not free to do anything; they cannot jump over Draper, or fly, or drink twenty gallons of vodka in an hour. What does it mean to be free? To be free is to have the ability to do otherwise (van Inwagen 20). But is this enough of a definition for Plantinga? He explains that, “If I am free with respect to an action A, then God does not bring it about or cause it to be the case either that I take or that I refrain from this action; he neither causes this to be so through the laws he establishes, nor by direct intervention, nor in any other way. For if he brings it about or causes it to be the case that I take A, then I am not free to refrain from A, in which case I am not free with respect to A” (Plantinga 97). 

''Contingency and God’s Inability to Create Some Possible Worlds''

	Plantinga explains that there are “contingent states of affairs such that it is not within the power of God to bring about their actuality” (Plantinga 98). God cannot cause the world to be such that I freely refrain from washing my dishes, for that wouldn’t be free at all. It is true that God can create a world in which I freely refrain from washing my dishes, but he cannot cause me to do so. He then explains that, “God could have actualized a given possible world W if and only if for every contingent state of affairs S that W includes, there is a time at which God can actualize S” (Plantinga 98). A world can’t be created unless God can actualize everything in it. Plantinga unravels his argument as he says, “Given just the possibility that there are created free agents, it follows that there are any number of possible worlds including God’s existence and also including a contingent state of affairs S such that there is no time at which God can actualize S” (Plantinga 98). There are possible worlds that God cannot create because he cannot actualize all states of affairs. For example: God cannot actualize a state of affairs that in which a free being will in fact take or refrain from an action. God could not have actualized a state of affairs in which free beings will in fact act morally and always refrain from moral evil, thus God couldn’t create a world where beings always chose what is morally good.
Response and Counterfactuals

The atheologian may still remain unconvinced, he or she could respond, “[God] may also know, furthermore, that if [He] creates me and causes me to be free in these circumstances, I will refrain from A. If so, there is a state of affairs [He] can actualize, cause to be actual, such that if [He] does so, then I will freely refrain from A” (Plantinga 98). The Defender is still not safe from the atheologian’s firepower. How does God’s foreknowledge of the future affect Plantinga’s argument? Plantinga launches off into this idea of counterfactuals, he uses the following examples:

(7) If Curley had been offered $20,000, he would have accepted the bribe.

(8) If Curley had been offered $20,000, he would have rejected the bribe is true.     (Plantinga 100)

	Plantinga points out that we often make the fatal mistake of assuming that either (7) or (8) must be true. Is every proposition necessarily true or false? On the surface, a reasonable person could easily that only (7) or (8) can be true, and that (if there is an answer at all) one of them must be true now. The Free Will Defender will say that we can’t possibly know the answer to that question. An example of a counterfactual is: if I was bald, then I would receive an A on my religion seminar paper. The antecedent would be my baldness, and the consequent would be me receiving an A on my religion seminar paper. The counterfactual appears absolutely ludicrous at face value; the consequent does not follow the antecedent. Plantinga shows us that those who believe that either (7) or (8) must be true are making a counterfactual statement. 

We journey further into the possibility of counterfactuals being either true or false. Plantinga asks us to “consider those possible worlds that include its antecedent; and then of these consider that one W that is most similar to the actual world (7) is true if and only if it’s consequent – that is, (9) Curley took the bribe, is true in W. A counterfactual is true if and only if its antecedent is impossible, or its consequent is true in the world most similar to the actual in which its antecedent is” (Plantinga 100). 

Counterfactuals can only be true in two ways. We must understand that the antecedent doesn’t actually causally necessitate the consequent. If Curley is free, then no one can know whether or not he would have accepted the bribe. The Defender simply needs to reject the validity of counterfactuals, this allows for a free person to truly act freely, removing the argument (at least for now) that God knows the answers to counterfactuals.

	Of course God can choose whether to create the universe, or whether to create Curley, or whether to make Curley free, but if Curley is made free, then only Curley can choose to refrain or take any given action (in which he is free).

''Leibniz’s Lapse''

	Leibniz and the Objector make the mistake that God can create any possible world, and that God would (by his very nature) choose to create the best of all possible worlds. God clearly cannot create the best of all worlds (not necessarily possible ones), that is: a world with moral good and no moral evil. I agree that Leibniz’s Lapse is a mistake. Obviously, God is giving a creative power to all his free creatures, or at least that is the case within the Free Will Defence. But, why can we not say that God still didn’t create the best possible world possible for God to create? An overarching structure of God creating a universe where he did not possess all creative powers might in fact be what he considers to be the better, if not best, of all possible worlds. Leibniz can simply imply that a world with moral good and no moral evil is logically inconsistent with the existence of God, especially in consideration of the actual world. Doesn’t the Defender arrive at this very conclusion as well? Leibniz isn’t wrong, his argument simply needs to be put into context. The Free Will Defender still believes that God must create the best of all possible worlds that is possible for God to create, and God can only possibly create worlds in which there will eventually be both moral good and moral evil which result from the free choices of persons within that world.

''Circling Back to His Original Position''

The Free Will Defender employs “the truth that a pair of propositions p and q are jointly consistent if there is a proposition r whose conjunction with p is consistent if there is a proposition r whose conjunction with p is consistent and entails q” (Plantinga 114). He does not need to show the probability of these possible worlds, in fact, he might not even think anyone could actually know the probability. Plantinga excellently concludes:

The essential point of the Free Will Defence is that the creation of a world containing moral good is co-operative venture; it requires the uncoerced concurrence of significantly free creatures. But then the actualization of a world W containing moral good is not up to God alone; it also depends upon what the significantly free creatures of W would do if God created them and placed them in the situations W contains. Of course it up to God whether to create free creatures at all; but if he aims to produce moral good, then the must create significantly free creatures upon whose cooperation he must depend. Thus is the power of an omnipotent God limited by the freedom he confers upon his creatures. (Plantinga 115)
	
	Does Plantinga make a good ontological argument? No. In fact, Plantinga simply put theism, and certain types of knowledge, into a new category. Because we can’t know certain things, and because of how he defines what it means to be free, and because of how he defines what is and is not possible for God to do, both the theist and atheist are left only with a general possibility of God’s existence. Philosophers of religion are, however, indebted to Plantinga, because this defense gives the theist at least the possibility of holding a logically consistent belief. The theist no longer is clearly making a logically inconsistent statement when they hold the both the existence of God and evil to be simultaneously true.

''Creative Creatures''

	Plantinga’s rigorous argument brings to the forefront of religious philosophy the concepts of personhood and free will. He develops a system that delicately fits together a possible world in which evil and God concurrently exist. Originally, I would have had problems with placing limitations on God. As a Christian, I prefer to think that I have choice (and that keeps me responsible for my sins, and God responsible for no sins); but, I also like to think that God could, and would, at any point He felt necessary prevent me from performing evil actions. In reconciling what it would mean for God to prevent moral evil, and the fact that this doesn’t appear to happen that often, I have been struck by sense of awe at how much discretion is left to the free person.

 Freedom, at least after reading Plantinga, appears to be so much more than a mere choice to buy jelly beans, to recycle my plastics, or to mow my lawn. For Plantinga’s argument to work, God has given a gift beyond measure to His free creatures: the ability to create. I believe humans do have God-given free will, and I believe that this requires that God allows me to create specific truths, truths about my faith, beliefs, attitudes, and behaviors. Not only has God allowed me to create, he gives away his ability to control my actions in all circumstances that I act freely. Free will is the power to create.

------------

''Works Cited''

Honderich, Ted. //The Oxford Companion to Philosophy//. Oxford: Oxford University Press, 1995.

Mackie, J.L. “Evil and Omnipotence.” //Philosophy of Religion//. Ed. Michael Peterson. Oxford: Oxford University Press, 2001. pg. 263-273.

Plantinga, Alvin. “The Free Will Defense.” //God and the Problem of Evil//. Ed. William Rowe. Oxford: Blackwell Publishers, 2001. pg. 91-120.

Van Inwagen, Peter. “The Incompatibility of Free Will and Determinism.” //Agency and Responsibility//. Ed. Laura Waddell Ekstrom. U.S.: Westview, 2001. pg. 17-29.
	The book Silence by Shusaku Endo reminds me of my faith; it reminds me of my walk with Christ. The story is beautifully written, but I’m not amazed by how well it was written. I am amazed by the subject of the book. Endo captures the very essence of the Christian life, falling down in the face of pain and suffering, and the glimmer of hope beyond our personal failure.

	Have I ever suffered as much as the Christians in this book? I admit I have never been persecuted like the Japanese Christians and missionaries in this book. I am almost ashamed of my faith, or lack there of, when I read about people (fictional or non-fictional) who have the courage to sustain faith even through suffering.

	The book shows humanity’s inevitable failure. The father Sebastian Rodrigues endures his faith, almost as if his faith isn’t even the cause of suffering, but simply has a component of suffering in itself. The father does well to prevent his own apostasy for most of the story. He holds out, but in the end, he fails. I’m almost at the point where I don’t blame him. I can see why he made his decision. I can’t help but think that I’d make the same choice as well. Actually, I’d probably have caved into submission even sooner.

	The antagonist Inoue was not what I expected. I thought he would have look more savage, I’d expect him to be less civil with the father. I’d hope that Inoue was just a barbarian. But, the Lord of Chikugo was crafty and wicked. Inoue wanted to break the Christians, not make martyrs.

	Kichijiro was by the far the most interesting character in the story. Obviously Kichijiro was a Judas, but he was driven back to his faith again and again. I don’t know whether to be confused or simply remind myself that most Christians, including myself, are like Kichijiro. 

	The pain in this book isn’t just physical suffering. The physical suffering spurs on choices that lead to a greater pain. The greatest pain is the pain of apostasy. It is the suffering of those who turn away from G-d because of physical suffering and persecution. It breaks the person, and causes shame. We dishonor G-d by failing Him.

	Am I supposed to think that the priest’s actions at the end of the story were a good thing? The priest didn’t think he was committing a sacrilege against G-d. The open admittance of betrayal seems to make the priest guilty in the end. I cannot see how betrayal really leads to a greater form of happiness or love the Lord. I absolutely believe I would turn away from G-d in the face of the torture and suffering found in this story, but I know that it is the wrong choice. I’m not saying that I would have made a different choice than the priest, but clearly, publicly betraying G-d, committing apostasy (or leading others to believe this is the case) is simply wrong.
	
	How does one begin to compare and contrast Paul, Apostle to the Gentiles, and Dante, author of The Divine Comedy? Paul cultivated the ekklesia, organizing the church as an institution within Gentile communities, while Dante had the benefit of a millennium of experience and knowledge, lived with a medieval outlook. Dante’s perspectives on “Christianity, God, and God’s plan for humanity” may be starkly different from the Apostle Paul’s perspectives, however, we cannot neglect the basic links of faith shared between both Paul and Dante.

	Paul is one of the most powerful human personalities in the history of the Church. He was a missionary, theologian, and administrator. Paul often acted as an apologist and had a high impact on Christian theology, most notably found in his Letter to the Romans. He argued against other Christian leaders on disputed issues. He discussed the ongoing authority of the Jewish law; he defended the maintenance of high standards within the decline of the practices of kashrut, circumcision, and other Jewish law; and, he explained God’s plan for the Gentiles. Paul distinctly wrote about God’s intentions for both the Jews and Greeks, the concept of the Chosen, and the relation between the body and the spirit. Paul always maintained the necessity of unity, respect, and order. He was apocalyptic and firmly believed in the God’s providential hand in the world. Paul helped form the foundation of the early church; he was God’s instrument.

	Dante Alighieri was a political philosopher and Italian poet who wrote the epic poem The Divine Comedy. Dante depicts an after-life based on “individual freedom and responsibility,” and “divine retribution and reward” (Honderich 176). In terms of his own Christian understanding, Dante was greatly influenced by the scholastics. Very prominent philosophers of religion and influential theological arguments came before Dante: Augustine’s masterful fusion of Platonic philosophy and Christian theology, St. Anselm’s ontological argument, and St. Thomas Aquinas’ synthesis of Aristotelian reason into theology. Dante’s Inferno is the most widely read portion of his comedy. He depicted characters with ironic punishments befitting the crime committed. Dante’s readers are struck by the sheer order, unity, and symmetry present in the poem. Dante’s Inferno captures fundamental beliefs of Christian orthodox doctrine, while illustrating a vivid Hell; his poem is intertwined with a medieval understanding of the world and God.

	The paradox of the material and immaterial is a distinctive feature of both Paul and Dante. Paul spoke more decisively on “the body.” The relation between “the Body of Christ” and the physical form of Jesus is a difficult dualism to understand, even modern Pauline scholars struggle with what Paul meant. Dante was clearly influenced by scholasticism; especially in reference to the paradox of the material and immaterial. The basic medieval solution to this dualism is to understand the immaterial to be more real and closer to God while the material world is less real and further from God. In Canto 3 of the Inferno we see shades and more immaterial beings, while in Canto 34 we see ice, lead, and heavy material. Dante obviously intended for this gradual increase of materiality to be apparent as he traveled closer to the bottom of Hell.

	Paul’s primary theological problem can be found in the two dispensations, the first being God’s election of the nation of Israel and His gift of the law to Israel, and the second as His offer of salvation to any all (Jews and Gentiles) who have faith in Christ Jesus (Sanders 137). Paul attempts to smooth the rough edges between the Old and New Testaments. Paul believes that God preordained this transition from Judaism to Christianity. He accepts (in some aspects) Roman dominion; he certainly would be willing to accept that God had preordained the Roman Empire so that Christ could fulfill prophesy. Dante also supports this idea of a providential hand of God. Medieval thinkers had to explain the existence of the Roman Empire and the development of the early church in terms of providence and predestination. The Roman Empire was a precondition to the birth and death of Jesus Christ. Dante fittingly used Virgil in the Inferno, who described the initial establishment of an imperial authority in the Aeneid. Dante’s choice of an Roman epic poet indicates a respect for not only the great artist himself, but also signifies Dante’s belief that Virgil, like many founders of Roman society, necessarily existed for the sake of Christ, so that Christianity could inevitably take root and spread to all people.

	Paul, like the earlier Christians thought that the world was soon coming to an end; “the coming of the Messiah meant that the end had begun, and his resurrection was the first act of the eschatological scenario” (Meeks 175). Paul uses apocalyptic imagery to respond to concerns of church members who had passed before the return. Paul eventually declares that the community of Christians crosses even the boundary of death (Meeks 175). The primary function of apocalyptic language was to reinforce the cohesion and unity of the Christian community. In turn, this would allow for Christianity to spread rapidly while remaining more stable (with fewer interruptions). Dante did not speak much about the apocalypse. His lack of focus on this subject is mainly because the apocalypse was a difficult issue for those who realized that Paul’s outlook of the future was wrong (here is where the millennium of experience clearly changed Dante’s perspective). But, Dante’s poem The Divine Comedy, especially the Inferno, illuminated generations with vivid descriptions of divine retribution and reward. Readers of the Inferno become more mindful of what is meant by the concept of judgment, which is not much different from Paul emphasis on the importance of knowing where one was going in the afterlife.

	The Apostle Paul paved the way for early Christianity. The Medieval outlook and philosophy could not exist without Paul’s work. Moderns must understand that Paul’s theological, evangelical, and administrative had one of the largest impacts on western tradition, one of those traditions being Dante’s medieval outlook and experience. Although they lived different lives and looked at the world through different lenses, both the Apostle Paul and Dante are both connected by their faiths.
	





Works Cited
Achtemeier, Paul. Interpretation: Romans. Louisville, Kentucky: John Knox Press, 1985.
Alighieri, Dante. Inferno. Trans. Charles Singleton. The Norton Anthology of World 
Masterpieces. New York: W W. Norton & Company, Inc., 1999.
Honderich, Ted. The Oxford Companion to Philosophy. Oxford: Oxford University Press, 
1995.
Meeks, Wayne. The First Urban Christians. 2nd ed. New Haven: Yale University Press, 
2003.
Perry, Marvin. Western Civilization: A Brief History 5th ed. Boston: Houghton Mifflin 
Company, 2005.
Sanders, E.P. Paul: A Very Short Introduction. Oxford: Oxford University Press, 1991.

	
//Not posted on Hypercynic, but it was a significant letter I wrote around the same time.//

Dear Mrs. Phelps,
 

I apologize for any silence or lack of communication on my part. I am a very (very) vocal person within the proper context or group of people. In most cases, over the past year, the verbalization of my opinion would not have resulted in anything truly useful. In cases that I don’t know exactly what I ‘ought to do’ I prefer to follow some principles of Utility. Hence, my lack of communication overall—for any seeming rudeness I apologize. I meant no harm. Now that I am finished teaching at JHHS, and moving on to other things, I feel it is appropriate and useful to “open up”, so to speak, and express my true opinions. I questioned whether I would actually give this letter to you at all. I have considered the possibility that you may dismiss my thoughts, and perhaps passionate opinions, as childish rhetoric or the expression of some inexperienced and ungrateful colleague. I believe, however, as you are truly a kind and wonderful person, you will be objective and charitable as you read this letter. Please excuse my casual and fragmented writing style, as I hope the way in which my ideas are expressed will not take away from the validity of the statements.
 

I have accomplished so much in such a short time. Last year I was single, childless, and without a college diploma—now I am somehow concerned with money, housing, marriage, children, insurance, and all of the wonderful responsibilities of adulthood. Part of my ‘Rite of Passage’ into adulthood has been holding a real job. Teaching English is a real job. Thank you for giving me the opportunity to teach high school English over the past year. You have guided me through a testing and time consuming educational experience.
 

I am happy with most things in my life, with the exception of my job as a teacher at John Hardin High school. There are a number of reasons that I have not been happy about this component of my life. I wish to explore these reasons, partly because it is important for me to understand what has occurred, in some therapeutic sense, and in part because you have a right to know. The year did not go as smoothly as I had hoped. A number of barriers and problems arose that have caused me to realize that I am not meant to teach here, or in the public school setting at all. I feel, at the very least, as you provided me the opportunity to teach in the first place, I owe you a proper explanation of my reasons for not pursuing a career in teaching high school English.
 

You once phrased my experience as being “baptized by fire.” That statement is so very true. Everyday I came to work, I felt as if I were in a hellish war zone. Teaching is difficult, especially when you’ve never taught a population like John Hardin’s before. No matter how much meta-teaching one might receive in a college class, I believe people are never truly prepared to teach in the actual classroom (I know I certainly wasn’t prepared). Ironically, nothing we teach can completely prepare these kids for the real world either. Even lacking preparation, I do not regret the journey or the job. I have lived and learned, and I am pleased and greatly honored to have taught at this institution. Regardless of my conclusions about teaching here at John Hardin, I want you to know that you have my deepest appreciation and respect—you have given me an opportunity that few will ever have. This year has been life-defining and is sure to set the course of my life. Thank you for being a friend, a mentor, and an investor in my future. 
 

I love both learning and teaching. I am called to these professions, specifically teaching, as a vocation and a purpose. Teaching is more than a job or a lifestyle; teaching is my calling. To whom much is given much is required. God has blessed me with an unmatched mind, I must, therefore, use what God has given me to help others by distributing knowledge and thought. I am designed to teach others to think. You would expect JHHS to be a proper location to fulfill my purpose. So, why would I choose to not teach at JHHS?


The purpose of a school is to learn, teach, acquire knowledge, and think. Unfortunately, I find here at John Hardin, and probably in public schooling in its entirety, people are not usually concerned with actual learning and teaching. There are exceptions to my basic generalization, but overall, as a relatively objective outsider, I have found this to be true in most all cases. Don’t get me wrong, learning does occur. But, is that learning concerned with the correct topics and concepts? Is it substantial and sufficiently thought provoking enough to create lifelong learners? --Clearly not. We may, therefore, conclude that John Hardin is not acting as a school in the truest sense of the term—we have not fulfilled our purpose to the fullest extent. 
 

Why haven’t we? Is it the fault of the teachers? To some extent maybe, but for the most part I would say, No. Who is, in the end, responsible for the failures of public schooling? The parents and students themselves of course! There are two significant reasons why schools are failing. Public schooling fails because of a political climate that removes self-responsibility, and it also fails because people, in general, are becoming relativists lacking the desire to seek truth.


School wasn’t always like it is today. In the past, parents and students were held responsible, and were, in general, more concerned with academic progress than the parents and students of today. Why the change in our parents? Here is a tip to understand people: Modern parents and students are dim-witted—they are cogs to be controlled. This doesn’t mean they aren’t actually responsible for their actions, but rather, they are easily distracted and manipulated. Who distracts and manipulates them, and why?
 

Politicians and power-hungry pseudo-teacher careerist administrators are at the very core of the public schools political problem. People want power; power is acquired and maintained via a content public. School administrators and especially politicians will say and do anything to get the vote. The struggle for power of these governmental and educational politicians lead to the public declaration of two principles: 1) The school is solely responsible for the beliefs and behaviors of children, while neither the children themselves nor their parents are responsible for their own beliefs and behaviors, and 2) all children are ‘academically’ equal. These are very dangerous and disturbing ideas. Of course, these ideas are easily spread because they are popular—they relieve the moral burden of a parent, while leaving a ‘way out’ for students. Parents, and society in general, simply do not want to take responsibility for their actions and the actions of their children. A politician can easily soothe the ears and minds of parents with the idea that someone else is actually responsible for the failings of these children. If Johnny is failing English, it must be the school’s  (or teacher’s) fault. Parents want to believe they did what was best for their child, and are easily led to the conclusion that anything that goes wrong must not have been their responsibility, but instead must be due to the menace of chance or the villains we find teaching in the public school system. We as teachers know better. But, most people do not understand this large socio-political problem. Essentially, people are afraid of the truth; People want lies. Politicians are more than willing to give them lies to gain political support (power). Those ideas changed the social and parenting landscape—now, parents want answers from the school system as to why their children are smoking dope, failing classes, increasingly suicidal, rebellious, disrespectful, amoral, and prone to screw up. Parents really believe that it is the fault of the school system and not the fault of themselves and their children.
 

People are cogs in a system. Even given their free will, they naturally gravitate towards their conditioning. The attitudes and behaviors of parents and students cannot and will not change without the proper social conditioning. This conditioning can only occur, ironically, through those who lead and teach them how they ought to think and how they should behave—a duty of a parent. So, yes, they are in the end responsible for their actions. However, I do not see their beliefs and behaviors changing without a shift in our current political climate. Primarily, we require a transformation in that echo chamber which disseminates the ideas of social irresponsibility—we must prevent any incentive for this chamber of politicians to blame the school system instead of the voter. In my opinion, that isn’t going to happen. As a result, the same hogwash will be embedded in the minds of the general public, parents and students, preventing the public school system from holding these parties responsible for their own actions. Without holding parents and students responsible, what incentive do they have to put forth the effort and to maintain the discipline required to learn and grow? 


The second reason public schooling, and even the public in general, is on the brink of destruction is the philosophical evolution from reason to irrationalism, from to truth to “truthiness,” from reality to relativism. We, as a Western culture, have lost sight of the concept of truth. You may have heard something like: “what is true for you may not be true for me” (I got this from students analyzing poetry all the time). Or maybe you’ve heard, “what is right for you is right for you, what is right for me is right for me.” This sort of thinking smacks of post-modern relativism. It is the view that the meaning and value of human beliefs and behaviors have no absolute reference, and especially that moral or ethical propositions do not reflect absolute and universal moral truths—instead all “truths” are relative to social, cultural, historical, or personal references, and there is no single standard by which to assess any proposition of truth. When we think through relativism to its fullest extent (ironic to say the least), we arrive at a number of conclusions, including:


# A blatant contradiction in meaning and significance such that it is impossible to discuss anything as it is “all relative” to one’s perspective. Apparent truths, even axiomatic ones, like 2+2=4, have no meaning, and can be whimsically denied through the relativistic idea that reality is what we perceive it to be.
# Amorality, and consequently, that it is meaningless for the moral or ethical judgments or acts of one person or group to be judged by another since there most likely aren’t universal moral standards in the first place.
# Personal responsibility is an illusion created through some form of social Darwinism.
#  Egoism, or maybe even narcissistic egotism, claiming that an individual should pursue their own interests with zero regard for the interests or rights of others.
# And, connected to Egoism, yet still distinctively different, Hedonism—the complete lack of concern for anything but one’s own happiness (often short-sighted as well).


How do you teach truth to people who don’t believe in absolute truths? How do you instill morals into those who believe ethics and morality are illusions? You can’t reason with a true Romantic, and you sure as hell can’t reason with a post-modern relativist. Society has generated a group of idiots…a lot of them. What then should we as people (specifically teachers in this case) do? Since politicians will be politicians, and the content of the conditioning will not change, we must then: Let the system fail, and be ready to pick up the pieces! Only when crack addicts hit absolute rock bottom will they choose to rebuild their lives. Let the post-modern world hit rock bottom, and be there to equip them when they are ready to change. Our job, as educated and intelligent teachers, is to do exactly that—to let the public feel the complete consequences of their actions, and then help rebuild and restart. If we expect them to be responsible for their actions, then let them be responsible---let them have what is coming to them. This doesn’t mean innocent students who are respectful, moral, and hard working will be hurt. If anything they will benefit as the superstars of their generation. They will be the survivors in the game of  ‘survival of the fittest.’


So, after reaching these conclusions, I must also defend the premises. Most importantly, I need to show that the school is failing in the first place. I have worked inductively, and I apologize for that. An explanation and some elaboration are certainly in order. The evidence of a social and/or educational breakdown is lacking. As previously asked, ‘why would I choose not to teach at JHHS?’
 

Offered are a few glimpses of my experiences at JHHS that may help answer that question. Hopefully, these examples will show some of the reasoning behind my distress. With the knowledge of what has occurred, and why it occurred, we will be in a better position to understand my choices concerning my future career(s). Provided, in no particular order, are a few encounters and basic overviews of the past year that support my claims against parents, pupils, and politicians.


#      Sports are more important to this school than academics. 
##      Football players are given precedence and special treatment, to the point that administrators will call me during class to “do whatever it takes for Johnny to be in the game tonight.” Where is their concern for the other students in my class? 
##     Our basketball team attends the sweet sixteen (not the actual state championship), and JHHS is let out of school. The very same week our academic team went to the state finals, and JHHS wasn’t let out of school—we barely even heard announcements concerning the academic team. We don’t have “pep rallies” for the academic team or for academically successful students.
##      Coaches are hired for their ability to win games, not their ability to teach in the classroom. Coaches are also the first to receive administrative positions.
##     A ridiculous amount of money and effort is put towards our sports teams, while many teachers don’t even have enough books for each student.
 

There are three arguments that would give us reason to allow sports in our school. The first would be the physical fitness acquired through sports, the second would be the entertainment provided by sporting events, and finally, sports can be used as a means to socialize children. We have physical education to cover the first. Entertainment can be found elsewhere. The last reason, dealing with the process of socialization and mental development of children, seems like the best reason.
 

School is a place to develop a number of social skills, including many learned through sports. These social skills, however, can be learned through avenues other than sports. Therefore, as there are many options to socializing these children, sports are not truly necessary to the development of a child. We have no vital reason to uphold sports as much as we do. School is clearly a place of learning though—academics, rather than sports, should be the priority of school. 
 

#      Tests scores are the greatest concern of the school.
##      We were forced to use multiple-choice and open response tests simply to prepare our students for testing. There was no concern for the validity or effectiveness of this testing method. High-test scores were the only concern.
##     Curriculum mapping is based on preparing students for the test. The curriculum is not concerned with teaching kids to learn and think, but instead to make sure the content is fresh in their minds, so as to help them regurgitate information for high-test scores. In the creation, organization, and execution of the curriculum, cramming content knowledge is more important than making sure the students are thinking.
##     I have been commanded on numerous occasions to “Teach the test.” The commander is not actually concerned for the academic welfare of the student, but concerned with high-test scores and not getting into trouble.
## In order to “teach the test,” traditionally relevant curriculum and activities have been thrown away. For example: English classes no longer read “The Scarlet Letter,” instead they watch the movie.
## As a relevant side note, many schools base their teacher salaries on the teacher’s ability to get high scores on tests.
 

In my eyes, “Teaching the test” is one of the more disgusting educational practices. Even teachers themselves uphold this practice! Why? There are only three explanations: 1) the teacher/administrator actually believes these tests are effective in assessing a student’s academic abilities, 2) the teacher/administrator believes that test scores affect school finances, and, he or she attempts to raise them as high as possible, and/or 3) the teacher/administrator does what he or she is told, and “teaches the test” so as to not get into trouble. The last two reasons are clearly immoral and irrelevant to the question: “what is best for the student?” The first reason, if based on true claims, would seem acceptable. 
 

Are these standardized tests actually effective in assessing a student’s academic abilities? No. Multiple choice questions and open response questions only test a student’s ability to follow certain test-taking rules and regurgitate content knowledge. No good assessment of writing or thinking skills can be found in these tests. 
 

The fact is: nobody actually cares if you can recite the characteristics of Puritanism, or regurgitate examples of Romantic literature, or explain the basic outline of a short story, when you don’t have the ability to think and to apply what you have learned in some meaningful way. Content knowledge is pointless outside of the ability to use it and think about it. The public school system, possibly due to political limitations, has forgotten this fact, and instead has opted for a incredibly awful method of assessment. If I can instill in my students the ability (and the desire) to think, then I know they will do fine in life. Memorizing and regurgitating content knowledge, traditionally found only in grammar school, is easy if you possess the ability to think. 
 

“Teaching the test” is an awful practice. We should be ashamed. How dare we create a generation of kids that view schooling and education as a series of hoops to jump through, rather than a creative and fantastic world of learning? I am not going to live a lie, and think that I am really teaching kids the important aspects of education, primarily the ability and desire to think and reason, when I am cornered, commanded, and forced to falsely teach in a manner that is designed to merely raise test scores.


# Teachers are blamed for the failures of students, while parents and the students themselves are not held accountable for each student’s academic performance, behavior, and attitude.
## When looking at demographics and statistics concerning the academic performance of students, especially of students with low test scores, it is assumed that we as a teacher have failed to reach a certain segment of the population of JHHS. We refuse to accept that it could be the community, family, or culture the child lives within that conditions the child to perform so poorly. We relieve the burden of academic responsibility from the student--as if we as teachers form the primary reason that he or she is failing.
## When a student fails a class, a parent is encouraged, via the allowance of such behavior and the incentive of a higher grade for their child, to call the teacher and complain about his or her child's grade. Teachers are almost forced to respond to complaints by giving the students grades they don't deserve. Bonus and makeup work are already expected, and undue leeway and special treatment are becoming expected. 
## Parents and students actually get away with cussing out a teacher. 
## Students are given far too many chances to commit obscene and disrespectful acts, over and over, until they are finally removed from the school.
## Due to a poor disciplinary system from the top down, and our mysterious attempts to remain politically correct, if a student does something wrong, or is in the habit of doing something wrong, we hold that the child has been conditioned into such behavior, and that somehow, because the child was conditioned in this way, the child is not responsible for his or her actions. Therefore, it becomes the teacher’s responsibility to accept this conditioning, lacking any true objective and impartial judgment, and continue teaching while a student is disruptive.
## Teachers are blamed for not using diverse enough teaching methods. Example: not using enough hands-on, group-work, or technology in the classroom.


While I recognize that some people shouldn’t be teachers, either through their misbehavior or lack of qualifications, I believe most teachers do the best with what they have been given, and do actually deserve their position as teacher. The fact remains that teachers are wrongly held responsible for the failures of students in both the academic and social realms. No matter what he or she does, the public school teacher is someone who simply can’t win.


I am appalled by the social allowances made in this school. Regardless of the household they are raised in, people are responsible for their actions. If a child is loud and obnoxious, even if they are raised in a household or culture where this is acceptable, I should not have to put up with their misbehavior. Let the child bear the rod, and believe me, they will learn not to be loud and obnoxious.


Academically, a teacher cannot force a student to learn. If a child chooses not to learn, then guess what, that child isn’t going to learn. I should not have to motivate children—the child themselves or their parents should be the motivating force. Teachers are expected to be supreme motivators, while; ironically, they lack any real power or control to hold a child responsible for his or her actions.


If a child of a powerful parent has a bad grade, I am pressured to pass or raise the score of that child, even if they do not deserve the grade. The only incentive I have to fail a child is the fact that they don’t deserve it. Failing a child means complaints from all ends, paperwork, phone calls, and stress. Once mommy or daddy complains, the game is over, and I am almost forced to just hand over a grade—whether it be through late work or bonus work, I am expected to cut a deal with these kids. Nobody could possibly believe that we should just fail the child.


Keeping up with a child’s academic performance is not a teacher’s responsibility. It is the responsibility of the parent. I shouldn’t be forced to “save-my-butt” every time a child is too lazy or incompetent to successfully navigate my class by writing and calling home every week.


As for teaching methods: Whatever happened to the good old Socratic method? That method seemed to work. I find that many modern teaching and learning methods are not very useful as they miss the entire basis of education in the first place. Knowledge is abstract, period. Thus, people who are proficient with abstract ideas will, generally, be better learners and thinkers; while those who are not talented with the ‘abstract’ will, generally, be poor learners and thinkers. The fact is: if you are attempting to teach an abstract subject, then students must use the parts of their brain to learn those abstract truths. So, yes, school discriminates against those who are not a specific type of learner. And? Hasn’t this been the case for thousands of years? I see no reason to cater to people who will never be good learners. Give them what they need, and move on. They weren’t meant to be in school for an extended period of time—the world needs janitors and fast-food workers, and that segment of the population can fulfill that purpose.


In the end, a student’s behavioral problem is not my problem. I am here to teach and instruct—to distribute knowledge! I am not here to socially condition students, nor to teach them how to behave. These are the responsibilities of a parent, not a teacher.
 

# It is widely accepted that all children are academically equal (or at least equal in potential).
## Smart kids are punished with more work, while “academically disinclined” kids are simply passed through the grade levels.
## The academic performance levels of students in my classes varied to extreme degrees. I often had classes where I had college level students who are forced into the same classroom as students who could barely read.
## I was forced to teach to the mid-level students in the class so that I didn’t go so quickly that academically disinclined kids didn’t understand the material at all, and so slowly that I bored my smart kids completely to death. In the end, I really did go too fast for academically disinclined kids, and too slowly for smart kids—I had no way to help those children reach their potential.
## We expect all students to reach a certain level of proficiency in areas that are often not directly pertinent to the majority of our students will need in the future. 


The belief that all children are academically equal, or at least equal in potential, is absolute madness. All children, academically speaking, are not equal. Some kids will never be capable of completing Calculus or reading Beowulf. Some kids, even at young ages, would be bored of completing Calculus or reading Beowulf, as they would find these to be too easy. As we have so many students with “equal potential,” we are forced to create an environment that is not conducive to growth for those who are above or below the academic capabilities of the mid-level student.


This system is unfair to those who aren’t mediocre. Students that need help will never receive it because I don’t have the time in class to cover each and every point three times over. Students that are extremely intelligent are bored out of their skulls because I have to go at a slower pace for the rest of the students. 


Did you know that students on the lowest end of the learning curve of Kentucky schools are not referred to as special education kids, or identified as a student that needs tutoring or extra help, until they are at the very least FOUR years behind the grade level they should be at? I’m sure that a student that never learned to read by age 12 is somehow actually going to be emotionally ready to learn to read after social pressures have collapsed whatever hint of self-confidence the child may have possessed in the beginning…yeah right!? There is no hope for those kids inside the public school system. 


Students on the highest end of the learning curve are punished for being intelligent—we as teachers are supposed to “modify” the curriculum and simply hand these kids more work to do than the average student. I refuse to give smart kids more work to do for no reason. If anything, we should at least ‘magnet’ those children together, and let them excel elsewhere. We keep them around because they give us some glimmer of hope for the world and the next generation. 


# Remaining politically correct is so awfully important to the school system. This subversive sensitivity isn’t even used to provide equality among students, but instead, to prevent law suits.
## Giving actual statistical evidence of a claim having anything to do with race, ethnicity, gender, or any background is automatically suspect in the eyes of administrators.
## Discussing issues concerning minorities is discouraged, as if students must simply swallow the opinions of the school without thinking for themselves.
## Controversial issues or statements cannot be evaluated or used because it could “offend someone.” Even if these concepts are the very ideas that our students will approach in their daily lives.


Political correctness is a creation of relativism. You are what you eat, what can I say—even teachers and administrators are brainwashed. Sometimes the truth is offensive (no matter how you phrase it). Tough luck! Truth is truth, and if you are offended by it, then I am offended that you are offended by what I said, and then you’ll be offended by me being offended, ad nauseam/infinitum. To be PC is already absurd to some extent; to be PC because you could get a lawsuit is just pitiful.


Just because an issue is emotional or politically charged doesn’t mean we shouldn’t approach the issue. If anything, those are the issues we should be approaching, as they are currently relevant. It is a good place to start setting an example of when, where, why, and how we as citizens of humanity should be thinking about and pursuing these types of controversial issues.


6) Some teachers and many administrators have become careerists, lacking the moral fiber to do what is right, while adhering to any actions that may boost their professional appearance.


I will go no further in my examples on this subject. I am disgusted enough as it is. Naming names will do no good, and could only hurt an already difficult situation. My experience on this playing field is real. Believe me, I’ve seen far too many cases of backstabbing, gossiping, and flat out sabotage. It has been my experience that these people are socially dangerous. I do not have the means, nor the will to use their vile political tactics against them to defeat them. Too many administrators are willing to give up actual thinking and education for metateaching, test scores, and the ease of simply giving in to the will of the parents or student.



Personally, I have felt discriminated against in two ways (not by you of course).


1) I am discriminated against because of my age.


You told me from the beginning this would be the case. I was an idealist enough to believe it may not be true. I was stupid.


I know I am young, new to teaching, and bound to make some mistakes. But, surely all teachers were clearly, at some point, ‘new to teaching’ and ‘bound to make some mistakes.’ Not all teachers are young when they start. But, age shouldn’t make a difference. It, unfortunately, does make a difference—and maybe that has to do with the mindset of employers in general. But, it wasn’t just the employers; it was also from a few of my fellow faculty members. I really got the feeling from a number of teachers (and even overheard a few) that someone my age should never be teaching, especially not in a high school setting.


While being evaluated, I found that, because of my age, I was critiqued quite harshly compared to how someone older would have been critiqued.


I have been chastised for following directions on the specific occasions that teachers were asked to wear a specific type of dress and color. Apparently, I looked too young. You may have noticed that, excluding six days, I wore a tie and dress pants every day. It isn’t like I was attempting to make a fashion statement—I was obeying directions in the first place. What other teachers were pulled aside because they wore a red t-shirt for spirit week, as they were asked to do in the first place, as if they had committed some obscenely unprofessional act? I call it self-righteous hypocrisy. 


In all honestly, I feel I have damn well earned my position. Maybe I don’t have a master’s degree. Maybe I don’t have ten years of English teaching experience. But what do those things have to do with actual successful teaching? Many of people I see here are “educated” and “experienced,” but clearly lack the very critical thinking skills they are supposed to be teaching. 


2) A past childhood action has been held against me.


You may have found out already, as the rampant gossip in this place would not surprise me: As a “bored and brilliant” 14-year old kid I took the initiative to become fluent in computer science, and inevitably arrived at the stupid conclusion that I should use this skill to break through a number of computer security features on my high school network. Yes, I screwed up. I am not proud of my behavior, and it certainly had a huge impact on my life. I have learned a lot since then. It was one third of my lifetime ago. Because of my actions I have had to grow up quickly; and, I think I’ve been relatively successful.


A number of current JHHS teachers were present at my old high school during the incident. They and a few administrators have held this past action against me. In fact, I have been approached directly on this issue a few times, as if I would do the same thing at this age. It is humiliating and completely ridiculous that my record as a minor should be brought against me today. How would those select teachers and administrator’s feel if I brought everything they did as a child against them today, as if they still had a disposition towards such activities?


The fact is: if people are truly concerned with learning and teaching, then they will pursue it. In general, I fail to see this institution’s wholehearted pursuit of truth and knowledge.
 

Public schooling has become, both internally and externally, a political scene. Teaching and pursuing truth and knowledge in this establishment is like casting pearls before swine.
 

After ranting for ten pages, I would like to show some positive perspectives of my experience.


What did I do during the year?


My job, at least in my opinion, was simply to teach English. English is used to communicate an amalgamation of topics and subjects—if it can be written, basically any type of knowledge, then is a part of English as a whole. With that in mind, English teachers of course have a monumental task. As we clearly cannot cover all of English, we are forced to choose the most significant parts—I believe that a classic approach to English covers most of the truly significant facets. Classical English classes taught reading, writing, logic, literary appreciation, grammar (rote memorization), semantics, rhetoric, and even history. I think the classical approach has been quite effective—it should be emulated. Even though classical English can narrow down the priorities to a small set of significant topics, we as public school teachers remain completely overwhelmed and daunted by the task of teaching even these few and particular skills and concepts. Despite the fact that these are important English concerns, and being that we only have so many resources and so much time to teach, we, as public school teachers, are forced to further divvy up and prioritize their significance. It is no longer a question of what we will choose to not teach, but rather what few things we must teach at the sacrifice of everything else? We are forced to give a bare-bones education to the children. Economizing the subjects we teach is not easy, and so, I do admit that I understand some of the curriculum mistakes English teachers have made. When I had to choose what was going to be covered I kept thinking about what skills were necessary for both practical living and essential to the makeup of one with the potential to continue to grow academically. I decided early on that I wanted to create kids who have both the ability and desire to read, think, and write—period. I didn’t care if they scored well on tests, followed the school’s curriculum map, pleased their parents, pleased me, or pleased the people around them. That doesn’t mean they didn’t score well, or follow the curriculum map, or please anyone—but these were not my goals. So how did I think I could arrive at a classroom of students who could effectively read, think, and write?


While I respect the fact that people cannot learn and truly think without having a few regurgitatable facts to rub between their fingers, content knowledge is severely lacking when compared to the utility and imperative natures of critical thinking and communication skills. Basically, the primary objective of a modern public school English teacher is to get a student to read, think, and then to communicate those thoughts. These primary objectives, of course, include basic grammar, reading techniques, and essay forms. In my class we didn’t just cover “how-to” do these; we also endlessly practiced them over and over again. Secondary objectives include teaching content knowledge, appreciation of historical time period and literature, and the finer points of communication, including some forms of semantics and rhetoric. Even if academics require the secondary skills, I would argue that most people do not need to know such things to continue with their daily lives. While I don’t expect every student to be fluent and skilled in the secondary objectives of English, I do expect every student to be extremely familiar and competent in fulfilling the primary objective of English. I concentrated on the primary objectives. We read everything in the curriculum (because we had to cover it) and more. We thought about and discussed everything we read. We wrote on everything we read. Practice, practice, and more practice—I simply can’t expect good reading, thinking, and writing, if we don’t do it every single day.


Our students lack the ability to effectively read, think, and write. I wanted to change that failure above all others. I asked my students to read, think, and write—we did this every single day in all of my classes (even if it was boring and difficult). No matter where these kids were in their education, they would always be challenged, and, in my opinion, they were significantly challenged in the right areas. 


Was I effective? To some extent, yes. Although the majority of my students never reached proficiency in any of my three English requirements, they did pursue them, and they did grow in those areas. And, I believe they grew more in the areas of reading, thinking, and writing than they do in a normal English class. Did I teach perfectly? No. Could I have done things in a better fashion? Of course! After all, I’m learning as well. Did I teach the subjects as I ought to teach in my situation? Yes!


Many of these students can’t read, think, and write because they have been so rarely asked to read, think, and write that they lack both the fundamental skills used in reading, thinking, and writing, and the confidence to believe they are capable of good reading, thinking, and writing.


My classes, especially during the last semester, without question, chewed, reviewed, and digested more text, with the possible exception of AP English, than any other class in JHHS. We hammered our books and then some. Now of course, I commonly got the complaint, “I don’t understand any of this Mr. Morrissey.” So, we went over it again, we discussed it in class, we wrote about it; I did everything short of spoon-feeding them the answers. How else are my freshmen going to become better at reading Shakespeare than by actually sitting down, and reading and interpreting, line by line, a piece of literature created by old Bill? How else are my Juniors going to become better at reading Romantic literature than by actually sitting down, and reading and interpreting, line by line, poetry from Emily Dickinson? You get the picture. True exposure through actual experience with the text seemed like a keen idea to me. 


When I look back in history and literature, I don’t look at someone’s grammatical perfection and say, “Oh my gosh, that is great writing.” Half the time I don’t even say, “that was well said.” In reality, I look for ideas; I look for the thinking behind the writing. I want to see how that literature influenced the world around the author, and how that literature shaped who I am today. I want to see what is happening today, think about those events with an educated perspective, and react and communicate respectively to current events. If anything, I hope I ingrained that belief into my students.


Over and over and over again I asked the same question about every piece of literature or writing assignment: what is the meaning and purpose? Those are the fundamental questions my students should always be striving to answer when they read a book, glance over a magazine article, watch a TV show, listen to a guest speaker at a rally, or are subject to any form of communication.


My students’ first writing-hurdle was to get them to simply get words on a page. Once a person is comfortable with that process, then I can help them (him/her, whatever, I prefer the plural neuter) become better writers. I refuse any meta-teaching example that would say otherwise. If I can’t get my students to write anything in the first place, then what is the point of teaching them the fantastically interesting minutiae of academic writing. Once my students were open to writing, then and only then could we begin working on the important characteristics of good writing and the processes involved in creating a well-written piece. Some students did reach this stage, and the structure, reasoning, and clarity of their writing benefited from advice and practice. Many of my students barely reached this stage. Yet, they were required to work in areas that needed work. It honestly warms my heart to see kids like Rakeya Bennett, bless her heart, actually completing her On-Demand test because they felt more secure in communicating their thoughts (or lack thereof in some cases). 


What did I enjoy about teaching?


I love to see people think, and I did see kids think. I love being challenged by my students, and I was certainly challenged! As I said earlier, learning and teaching is a calling. I am fulfilled in a world of knowledge. A number of times I was able to share that world with my students. Generally, I was fascinated by two groups of students. The first being the academic superstars, kids who I know have the potential to influence the world with their minds. Some of these received the benefit of my empathies, advice, and even new approaches to a number of subjects. The second group is composed of the kids that tried their hardest, even if they didn’t succeed. These kids were great—I loved their attitude towards learning and life. I believe they will be successful and influential in virtue of their sincere effort.


My students were asked to read and write so much it eventually became habit. That is what I want! Only after developing the habit of reading and writing can I help them to cultivate and hone their skills. Most of my kids genuinely benefited from my class, and I am pleased by their growth. Getting many of my students to actually enjoy reading or writing, sometimes on unexpected subjects, was also truly fulfilling. Not all of my kids are going to enjoy the classics or academic writings. And, you know what? That is fine with me. That doesn’t mean they shouldn’t be required to understand the classics or academics, but it does mean we should also strive to help these kids love reading and writing (in whatever subject interests them). After all, the ‘wonderful’ authors we read today were just people that loved to read and write on subjects that were interesting to them. I will be pleased as long as my kids remain, in the pursuit of truth and justice, an integral part of that colossal chain of human communication, in any subject matter, by reading, writing, and communicating from one person to another. Part of “being human” means that you know where you came from, and I think I provided those basics to my kids. I hope they take away the desire to continue reading and writing in the subjects both interesting and uninteresting to them. I was very pleased to see my kids acquire new tastes in reading and writing. I know, as a number of students have written me letters, that I have made a very positive impact in their lives, both academically and socially.


Sometimes I felt like a proud parent of these kids, even if I’m not their mom or dad. My effort this year was well spent on my students. I learned about my students, the school system, and myself. I have had to ask myself, if I really care about these kids, what is the best thing I can do to help them? I believe I can achieve more for the world elsewhere. Who knows where I will be ten years from now? Hopefully, I will be learning and teaching. 


Who am I?


I believe the above question is very relevant for anyone who wishes to teach. You don’t teach for the money. You don’t teach because it is fun. You teach for other reasons, some of which are connected to your identity and purpose. In my evaluation of the past year, the question, “Who am I,” came up often.


I am a pessimist and a skeptic, and for good reason (and hell yes, I am a pessimist about whether it is a good thing to be a pessimist). One should always question the status quo; one should always ask the question ‘why’; one should always pursue truth and justice. The pursuit of truth and the questioning of claims in general are a necessary part of the development of civilization. My lack of optimism about the state of our world, and even the state of this school, does not allow me to simply remove myself from the world. Instead, such an awful set of circumstances requires, as my duty, that I find, choose, and execute the best possible plan to address the situation. The common response to a person who complains about an institution is: “then get in the trenches and fix it yourself.” I believe I have been in the trenches long enough to identity the major problems, and I also believe that fixing it cannot occur within the walls of John Hardin alone. Rather, a philosophical change in the overall population must occur. My purpose is to change that overall opinion, whether it be politically, socially, or educationally, and to pursue truth and justice as realities. I find that Post-modern relativism is highly destructive. The question I have been trying to answer over the past year has been: “what can I do to stop post-modernism?” I’m still trying to find the answer. I don’t believe I can effectively fight post-modern relativism in this setting, thus my purpose is not to teach in JHHS.


I am a hardcore theist, philosopher, existentialist, and Christian (all of which are quite related). I’m not concerned with what will make my life comfortable. I am not generally concerned with other people’s opinions of me. I just know that I have a purpose, and I must fulfill it at all costs. 


Part of my journey has led to me to and through JHHS. I thank you for letting me be here to learn, teach, and experience. 

Sincerely,
[[h0p3]]
We are through the holiday season (finally).

j3d1h had her Birthday. She was sick for it, a cold. You'd be surprised how much snot we bubbled out of her nose. She was choking and coughing horribly all night. We pumped Mucinex, Benedryl and Tylenol into her for 2 days (literally around the clock...her fever subsided quickly, thankfully). Oddly enough, she has some extra spunk in her after being sick (although, she still has the sniffles and stuffy nose). The kid is almost full blown walking everywhere now. It is kinda odd to look across the room and see a kid walking at you...she has been quite active in the past few days. She's getting much better at walking/running....in time, using silverware, consistently dropping a deuce in the toilet (she is scared of water *sigh), and speaking will make her even better.

I do believe the broom is my favorite tool in the house. I'm always amazed at what that child can do to the floor in less than 30 seconds. She manages to throw food she doesn't care for on the floor, and since we are cleaning the floor anyways, we brush&quot;left-overs&quot; in her high-chair onto the floor to make it a 5-minute cleanup, ...broom pwnage. ...which reminds me, I'm getting a late X-mas present, a t-shirt that say &quot;Pwn Star&quot; lol.

The car the acting odd...transmission issue possibly. Time to goto the mechanic.The fluids are checked often enough, and it seems like everything I can do is taken care of. (&lt;---what is this called again?...it is supposed to be a terrible no-no..but I don't really care, we speak like this all the time...not that I am attentive to what I'm actually writingggggggggggggggg...oops, too late, can't erase it now.) I'll have to find someone to bum a ride to drive us back, maybe even borrow a car for a few days.

I'm sitting here at work, doing my usual. Reading and writing, even about the mundane, keep me alive in here. These people are...Tards. Unwise and unintelligent people... (Sound elitist don't I? pfft...) The only reading that goes on that I can see, beyond work related/required is crappy novels, often love stories (bleh). Hey, it isn't like I read a ton anymore either. My reading, unfortunately, is forced to be online (which isn't very high quality, but with a good eye and a mind for searching out significant information in that ocean, you can find some very interesting things to read)....But, atleast I do something real. Of course, to blue-collar folks, they look at thinking and ideas as something that isn't real because it isn't concrete.

I realize that k0sh3k and I are very different from the rest of the world...we perceive it very differently. When I look at the world, the most real things to me are actually abstract ideas. That doesn't me I don't use concrete things, but I truly look at the concrete as a means to the abstract, that our solid bodies (yeah, I'm &quot;slightly&quot; gnostic in some sense...minus the whole Demiurge bullshit) of mass simply don't compare in purity to those wonderful, ethereal abstract ideas. I can't point a concrete thing out that isn't based upon ideas. Ideas are the cause of things, not the other way around. Most people perceive the world in the concrete...in fact, even people who consider themselves good at dealing in abstract concepts are usually quite concrete. Even people I'd consider generally intelligent eventually will throw away ideas for the concrete, they lose their pursuit of ideas because they are &quot;practical.&quot; Since when did practicality matter? Show me one thing in God's Will that was practical that wasn't first based and made primarily for the sake of an idea. You can't. Practical thinking is the way of the lazy. Period. It is a quick judgement of those who don't have the patience or resources to continue to think in the realm of ideas.k0sh3k and I don't live amongst these people or these things. Sure, we are forced to encounter them...But, we aren't one of them.

Of course, this may just be my bias from where I live, where it is impossible to find anyone like us. But, I am convinced there are few like me in this world. Gives me a good topic to write on...k0sh3k/Jim/Allen/I have had an interesting topic going on for a while. It is primarily me on oneside (as usual)...but I am correct (as usual). It is a discussion of the &quot;supposed&quot; differences between intelligence in wisdom. I'm sure they must get tired of me ;P...better not to broach the subject at all? Why take the time to really examine it? Does it hurt your head? lol.

By the way, had some B&amp;N cards to blow, grabbed the full set of Calvin and Hobbes and a book about Dragonology *cough, guess which one I like the most? =)

anyways, I'll get to work and maybe write on that topic for a while...my mind has already drifted a lot today.
Got bored at work, so here are my thoughts:

Freedom is a multi-faceted and hugely positive term encompassing the ability to act consciously, well-balanced and with self control towards a given constructive direction. It is oftentimes gauged by the degree of absence of external restraint or external control.

In general, Freedom is concerned with choice. I find it hard to separate “freedom” from the concept of “free will.” The ability to do otherwise is what makes a person free.

This concept, freedom, is one dear to the hearts and minds of almost all of those in western culture. We idolize it, and even make up pseudonyms for it, like Liberty. By the way, we often mistakenly merge Freedom and Liberty, as they have much to do with each other. Liberty, however, is generally considered a concept of political philosophy and identifies the condition in which an individual has immunity from the arbitrary exercise of authority. This would be an external restraint; thus, I’d call Liberty a subset of freedom.

Regardless, everyone and their mother are deeply concerned with maintaining freedom and liberty. The crowd exclaims, “Oh, noes! Don’t violate my rights, freedoms and liberties!” Do they even understand what these words mean? Do they understand the significance? Do they understand the purpose of freedom?

So, what is so important about Freedom? Is it important in and of itself? Where does it come from? Is it natural?

Let’s explore!

For the time being, I will have to make certain assumptions.

Premise number one: the universe is stable, calculable, and physically deterministic in every way. Billiard balls can cause other billiard balls to move when they strike each other. The universe is governed by physical laws that cannot be broken by anything wholly contained within that universe. All matter is subject to the laws of physics. And, regardless of what you may have read, concerning quantum mechanics and the appearance of randomness, I tell you there is far too much design and order to believe that this is random.

Now, now, does this mean that the laws of physics are never broken? No way! There ARE anti-entropic objects and institutions. In fact, when we evaluate the possibility of freedom inside a deterministic universe, we will surely find that the laws of physics cannot govern absolutely, they must be broken if freedom is to exist.

If you don’t like the idea of a deterministic universe, then get out! I have no time for those who look at the universe as random. Even if randomness may or may not give us more ample opportunities to defend the concept of freedom, we would be abandoning the very things that would make freedom so significant. Free beings within a random and orderless structure can’t make significant choices. Those beings would have no way to know the effect of an intended action. There really are a lot more complications to randomness. Even some pseudo-randomness (whatever that might be) sounds more like a cop-out and an indescribable and poorly put together concept of the universe than a real defense of freedom and reality.

Premise two: Those contained by the universe cannot naturally have power over the universe. In order to have power of the universe, one would have universe making-and-breaking properties. One constrained by the universe clearly didn’t make that universe. Go figure.

Premise three: Thus, something greater than the universe must have created the universe, specifically, God. God is not imprisoned by the universe, and such order and design had to come from somewhere. Again, God’s existence, for the sake of the article, is assumed.

Alright. So, basically, for humans to be free means that we are breaking the laws of the universe. It means we are not bound by the laws of the universe. As we clearly are not the creators of the universe, then we must have acquired our free will through other means.

It is the old argument, the Imago Dei, that God has granted us ‘choice’ through freedom. This means that God has granted humans the ability to break the laws of the universe. Which, yet again, is another old argument: The Unmoved mover.

God has instilled in us the ability to be an unmoved mover -- Those who can move objects without moving themselves. We have a distinct causal power to act upon the universe without requiring physical abilities. How limited this may be, who knows? I suspect that we act upon our brains, as it is pretty central to our nervous system…

As to the consideration of self-ownership as portion of freedom, we may apply Nozickian and Lockian proprietary philosophy, and simply say that God, the being who originally owned us, imbued us with the ability to own ourselves. It is ironic that Libertarian views are so unjustifiable, as they base freedom on utilitarian property law, which, when evaluated, is contradictory…as people could not naturally own themselves. Luckily, we already have the key to abuse, use, and unlock the secrets to the heart of “freedom fighting,” without having to agree that freedom is all that important, but while maintaining their basic premises.

Okay, so now we can say that it is at least possible for freedom to exist. What is it?

Freedom, or free will, is the ability to do otherwise. It can be the ability to think otherwise, believe otherwise, and physically act otherwise. It can be large or small, moral or immoral. Freedom gives true choices. Doing what you want to do isn’t freedom. And, yes understanding freedom within the psychological and egoist determinism is difficult. We must simply explain that in some possible world, a free person chose otherwise, regardless of this determinism. Essentially, a free person, even in the context of psychological determinism, only needs to have the ability to do otherwise, regardless of whether they actually do in reality choose to do otherwise is somewhat inconsequential. In light of some possible worlds’ argument, we can simply explain psychological determinism in terms of probabilities…but not necessities.

So, what is the significance and purpose of freedom?

We have freedom because we have the Imago Dei; God imbued us with the Image Dei; thus, God gave us freedom (or free will). A gift from God is already amazing enough, and must have innate value simply because of that. The very Image of God is a precious thing as well, thus we may think that beings with this ability would simply have innate value in virtue of the autonomy or the gift itself, on top of the value that stems from simple existence and being a gift from God. Clearly, it is very significant at this level. Kantian ethics can apply here….well, maybe. I’m not yet going to say that people are ends in themselves. But, at least we can verify that people are important, in part, because of this Imago Dei.

Ah, but defeating the laws of physics just doesn’t seem THAT important. And, you know what, God also gave us the properties of existence, like everything else in the world…so being a gift from God may not be enough either. There is a reason for this freedom.

Freedom is the architect of responsibility!!! Rocks falling from cliffs, water flowing down a stream, and even spiders spinning their webs are reacting to their respective deterministic environments and NOT responsible for their actions. These things HAD to occur. It isn’t as if they could have done otherwise. Even the spider didn’t have a choice. This…animal is just composed of chemicals reacting to the particles around it. We are more than mere chemical reactions! The rest of the universe is not. The rest of the universe has no choice in what it does. The universe is a machine, a very complex one, but a machine non-the-less. It is enslaved to the deterministic laws of physics. The creator of such a machine is responsible for it. The unmoved movers that act upon and within it are responsible for that which exists and occurs within the universe.

Our original Unmoved mover is God Himself. All that is beautiful and natural in the world is good, and created by God alone. Our freedom has acted upon the world, and yes, we are responsible for it; we, however, have created that which is painful and evil in this world.

With freedom, we have the ability to influence, to create and modify this machine we live within. Our creation; our responsibility.

As we own ourselves, and can recreate ourselves (to some extent), then we are also responsible for ourselves. Our actions have meaning! This isn’t random. This isn’t deterministic. This is choice.

Choice and responsibility manufacture the existence of MORALITY. Our choices aren’t just choices, they entail something more. Choices are moral choices. They entail substance, and relevance. If you believe relevance and significance can exist, then you must believe it exists through this alone. Good and bad stem from choices. Morality IS significance. It means there is a value to what we do. And, a reason we should do some things, and reason we should not do other things.

Freedom is the foundation of Morality. Freedom allows for the possibility of moral choices. Freedom’s relevance is found in that it creates the possibility for us, and our choices, to be relevant. There is a huge different between a Godbot and someone who can deny the Will of God.

Freedom exists for us to BE moral people. We are free so that we can choose to fulfill the Will of God. The ultimate purpose of our freedom is to give that freedom back to God, when we give up our desires to follow God’s Will. We are free for the sake of God’s glory.

Great!        We’ve solved the mystery. Now what?

Well, people don’t view freedom as this. People want to think they have “inalienable” rights, and freedom for the sake of themselves. People believe freedom exists for the pursuit of Happiness!?? WTF are they thinking? They use Freedom to be hedonists, to pursue themselves!

Freedom is IDOLIZED in our culture. In our self-worship, we have proclaimed –freedom- as our best attribute, and the thing we should base our lives around. We act as if it is THE thing to protect. We act as if freedom, in virtue of our oh-so-obvious self-importance, has become an end in itself, as if Freedom were innately significant, rather than a tool and catalyst for that which is important—The Glory of God!.

Freedom is not innately important, and it isn’t some inalienable right, as God can always take away what He has given. Freedom exists for us to serve God, to become slaves once again.

We are blasphemers and idolaters. We pursue ourselves, happiness, and freedom. We do not seek that which is most important.
In economics, which is really a study of power and why people do what they do, the theory of comparative advantage explains why it can be beneficial for two parties (countries, regions, individuals, ...) to trade, even though one of them may be able to produce every kind of item more cheaply than the other. What matters is not the absolute cost of production, but rather the ratio between how easily the two countries can produce different goods. The concept is highly important in modern international trade theory.

Comparative advantage may be compared (haha) to absolute advantage. When one entity (be it a company or a country) is able to produce more efficiently than another entity it has an absolute advantage: that is, assuming equal inputs, the entity with an absolute advantage will have a greater output.

At the core of the theory is the idea that one’s economic interest lay producing what one has a ratio-based advantage in producing. Those who are more efficient at producing X, should produce lots of X, and uses excesses of X to trade for the excesses of those who have comparative advantages producing Y and Z. Albeit, I’m not one who believes in excess. But!, I do think that as long as the excess is used for the greater good, and spread across those who DO need, then we have much better justification for producing, at least in the little picture, excess. Excess beyond the sum of all need, including preparation and savings, is not a good thing. Luckily, comparative advantage can still be applied in smaller settings, as the excesses can overflow to places that don’t have the same producting.

I always loved the idea of “comparative advantage.” The very nature of it is concerned with efficiency and giving to the community the products of your specific and maybe unique talents. In fact, I’ve grown accustomed to this concept; you could say I am fond of it because it has moral implications. It defines and lays the groundwork for brief and practical existential claims.

Do what you were made to do, use your gifts to preserve and develop yourself and the people around you! This is economical design, the efficiency of God’s creation, and an aspect of beauty rarely recognized within the church.

Usually, we think of “Gifts” in an extremely narrow sense. Gifts of the Spirit aren’t necessarily spiritual in nature. Rather, those gifts are used FOR the Spirit, maybe given by Spirit, and maybe we are motivated by the Spirit to use those gifts. But, these gifts range and vary greatly, equivalently with the number and variety of purposes predicated of all people.

Who isn’t happy using their gifts for the right reasons? Purpose people, PURPOSE! We are fulfilled in the execution and completion of our duties, and clearly our duties have to do with the gifts bestowed to us. Those gifts give us a comparative advantage. Thinking in terms of comparative advantage, and truly applying it, would be quite utopian.
uggghh...k0sh3k has been throwing up and it has been pretty bad for a few days already. She didn't want to goto the doctor (and I don't think she'll need to), but she is getting better today. Pray for her. By the way, she also applied for the directorship(?) at the Wesley House at UofL. 60k a year, but I don't know if that includes a &quot;parsonage&quot; or some shit. I have no idea.

As for me...I'm doing well. Christmas has been busy, and we've chosen to use a Nativity set in place of a tree...after all this &lt;em&gt;is&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Christ&lt;/em&gt;&lt;/strong&gt;mas. Work has been slow and boring. Who cares? You do what you have to do. I stole dad's WoW account (buy you a new one dad, I can upload the entire WoW directory to my site and let you download it, and I'll grab you a CD-key if you need) because Blizz is retarded and banned me for &quot;3rd party software.&quot; Tough. Took me 3 weeks to bot to level 50, and I'll be hitting 60 this week (before X-mas) I hope. HWL gear is now grindable at a VERY reasonable level (and if I say it is reasonable, then it is broken). Pfft, I'll be encoding more PvP vids for no one in paricular I'm sure. But, hell, it is fun.

We are gonna have A & J Gipso----oh, snap..I mean, &lt;em&gt;L &lt;/em&gt;for dinner on Sunday (after all, it isn't like I'd let my child even walk into their house)...which btw, j3d1h is walking somewhat....

For any family reading this: we got a great present for you (especially for those overseas), and it cost me a pretty penny. I'm a cheapskate, so 100$ makes me cringe like no other. But, I was convinced by a greater power than myself ('teh wifey').

South park is on! GTG (Gotta go)!!
The Form of Gaming: A Philosophical and Ludological Discussion on Games

 

We all play games, or we all play what we think are games. Why? It is simply a part of human nature to challenge one’s self, to accomplish, and to win. Games provide a safe and proper environment to test ourselves. In my opinion, the beauty of the game is that it can reflect any other problem we may face in life, with the exception that a game can be adjusted to be more fair (unlike life), we can view justice as a 3rd party looking more objectively at what is really occurring, and that problems, quizzes and tests within games don’t have severe impact on the quality of our lives (or, at least, they shouldn’t). Games are really microcosms of what we experience in life, and yet wonderfully opposite of life in that games have no real consequences when played either well or poorly. We play them in virtue of themselves, and they have proven to be both enjoyable and insightful.

 

In this article, I hope to present a case for what makes a game a game, why we play them, and the intricate principles universally found in a true game. The explanation is both descriptive and proscriptive as it will portray the meaning of gaming and also depict the sort of thinking required to adjust current activities and future ones, activities which we blindly call ‘games’, to better conform to the true idea of gaming.

When we ask, What is gaming? or what are games? or even, what is the perfect game? we are really asking, what is the form of gaming?

 

And, what is the form of gaming? To start, you really need to know what a form is in the first place. Formally :-), the definition of a form is:

 

That assemblage or disposition of qualities which makes a conception, or that internal constitution which makes an existing thing to be what it is --called essential or substantial form, and contradistinguished from matter; hence, active or formative nature; law of being or activity.

 

Philosophically speaking, the word form has been used to translate the Platonic idea (eidos), the permanent reality which makes a thing what it is, in contrast with the thing's particulars, which are finite and subject to change. However, for practical purposes, Aristotle was the first to distinguish between matter (hyle) and form (morphe). The perfection of the form of a thing is its entelechy in virtue of which it attains its fullest realization of function. For example, to Aristotle, the entelechy of the body is the soul. The origin of the differentiation process is to be sought in a prime mover, i.e. pure form entirely separate from all matter, eternal, unchangeable, operating not by its own activity but by the impulse which its own absolute existence excites in matter.

 

Forms are abstract ideas, perfect images (logos), from which actual particular things endeavor to mimic and imitate. Some philosophers, like Aristotle, thought these forms were real things themselves, maybe objects hidden in some heavenly body of the universe, who knows? But, for our purposes, we can use the basic understanding of form, which is hardly controversial. Our consideration of this topic is a less metaphysical approach, and far more semantic and logical. We are searching for the necessary features that are found in all of the possible particulars of a subject. The perfect image, idea, and configuration of a thing are what we seek.

 

An example of form in practice could be the form of scissors. When we refer to scissors, we are first referring to scissorness. We are reducing all scissors to the very concept and logos of scissor, from which all other scissors mimic in model, function, and construct. Scissors can be different colors, shapes, and sizes; they can cut different cuts, and some don’t even cut very well at all! Scissors vary in material used to make them, and the material they are designed to cut. Some scissors are good, others bad. But all these properties are arbitrary characteristics of each particular scissor. We seek that which is not arbitrary about all scissors, but rather that which is completely necessary about all scissors. The question of what is the form of scissor? is a question concerning the ultimate substantial and universally held concept that binds all scissors. When seeking the form of scissor you seek whatever makes a scissor a scissor. By referring to scissors, in general, speaking of its form, we are speaking about an edge tool having two crossed pivoting blades. All scissors follow that form. The form of scissors is definitional of the all scissors in the relevant and basest sense. Of course, in the end, particular scissors can be more or less scissor-like than other particular scissors, but none of them perfectly mimic and match the very form of scissor. The perfect scissor is the form of scissor.

Just as scissors are defined by its form, games are defined by their form. We don’t seek the particular game, we seek the perfect game, the form of game.

 

So, what is essential to gaming? What is this form of gaming?

A game is a contest or competition, physical and/or mental, according to certain rules, which is perceived to have irrelevant outcomes beyond the fact you win, lose, or tie, such that: the gamer would play the game simply in virtue of the opportunity of playing the game itself. Perfect games test the skill of the player and nothing else. The game can be against yourself or others (environments are rulesets, not opponents). But, in the end, gaming is a test of one’s skill that should have no real consequence beyond winning, losing, or tying.

 

Any other effect from or influence upon this rule and skill based competition is simply a non-game event, concept, or object. All other non-competitive aspects of gaming, that aren’t specifically and solely testing the player’s skill, against a certain set of rules and/or opponent(s), for the purpose of playing for the sake of winning, simply IS NOT gaming. The screaming fans, the music, the social life, the graphics, fame and money earned from playing, and even the narrative--these are not a part of the game in any substantial and relevant sense; these are mere particulars of a game. While these arbitrary properties can be found surrounding the center of the true game itself, they do not qualify as game.

 

Analogously, scissors are used to cut in a certain fashion (with two crossed pivoting blades), just as games are used to test the skill of a player. Cuts by a scissor are used for any number of purposes: shortening a piece of paper, removing tags, etc, just as the testing of a player’s skill through gaming can be used for the purposes of amusement, recreation, etc. Do not confuse the secondary purposes of a form with the true and actual form-making purpose. The meaning of scissors does not include arbitrary particulars or secondary functions, and the meaning of game does not include arbitrary particulars or secondary functions. Thus, the form of scissors only includes the function of being used to in a certain fashion (with two crossed pivoting blades), just as games are used to test the skill of a player.

 

It may seem I used a synonym, contest, to define gaming, which at face value seems problematic. I assure you though, it was quite intentional and very relevant, as the purpose of this particular definition was to limit the meaning, specifically in terms of gaming as a competitive concept, as opposed to the other reasons why people game, which are completely different from the very nature and form of gaming.

 

What principles of gaming are absolutely necessary to its form?

1.)    Fairness

2.)    Rules

3.)    Test

4.)    Played for the sake of playing (win, lose, or draw as the sole consequences considered)

 

1.) Fairness is conformity with the rules or laws, without fraud or cheating, and the simple justice that one reaps what one sows. In the context of a game, fairness is a social contract by which the player(s) understand and agree upon set rules that are followed and enforced with honesty and impartiality, that a player is fully responsible for the outcome of his choice, and that the causal relations are strictly based on player skill linked to an appropriate and definite outcome.

Applied to gaming, actual fairness will usually mean players have equal opportunity to accomplish goals, and that they reap what they sow in every possible aspect (to be dissected). In the form of game there should be equivalent risk vs. reward ratios and equal, proportionally scaling reward and result with player skill. In true fairness, only the skill of a player is taken into account. How much money he has, the color of his skin, how many friends he has, the time he has to expend playing, or his graphics card, has nothing to do with fairness. These should not be taken into account, or have any effect on the outcome in a perfectly fair game.

 

To further flesh out the meaning of reap what you sow, we must maintain that action A always results in action B. At any point that the causal relations, in parallel circumstances, would produce different results from the same cause, you have a violation of basic fairness and just gaming (not only that, but you’ve probably witnessed the destruction of all meaning and significance in a world by eliminating causality and responsibility altogether). Cause A must produce effect B for you to be effectively reaping what you sow. This type of causal thinking is really the basis for reaping what you sow. But, this principle goes further. It is the idea that one gets what one deserves for an action. So, result B must be appropriately caused by A. We can often hold basic causal relations so that A results in B, but the question is whether B is an appropriate effect of A. The appropriate effect of a cause must be very, very carefully weighed, and it is without question the most difficult aspect of the perfect game (the form of game). An example way to check the appropriateness of an effect is to compare its proportions to another causal chain. Consider A to B vs C to D. Does A cause a proportionally similar result in B as C does to D?

 

These are questions of desert and justice. Judging fairness becomes quite complicated. It must be remembered though, in gaming, effort and skill should be the measure by which we determine results, and nothing else.

Is perfect fairness possible?

 

Some games do a better job than others in creating a setting of fairness. Chess would be a good example of pretty fair and balanced game. In chess you find that both players have nearly equal opportunities, and deserved and deducible consequences of actions. Other games might not reach this fairness aspiration as easily. But, that doesn’t mean we shouldn’t strive to create as fair as possible games as we can. When designing and evaluating the foundation of a game itself, we should seek fairness as the prime principle guiding the game. Everything rests upon this principle being upheld. And, it certainly means, we should seek to play fairly.

 

To be noted: While certain games have handicaps, such that it isn’t initially fair at face value, as long as both players, including the handicapped, understand what is occurring, and why, then fairness can still exist.

There is yet another problem for understanding fairness. While relativism is a ridiculous concept, a very controlled version of it poses an applicable question. Remember that we are not thinking of fairness as if it were in the eye of the beholder. Our concern is rather how fairness as a universal principle will judge each case or match within a particular game. Are there situations in which fairness requires more than just a flat, simple and fair rule structure and the abiding of these rules? Must these rules take into account players themselves? Must these rules be specific to an exact instance of a particular game in helping to determine the outcome of who deserved what? It is quite likely that rules of a perfect game would be infinite in nature, here is why:

 

From a simple starting perspective, we want to say, Let the best man win. And, yes, this might be as close to fairness as we come in practical reality. But, this does not really address an innate flaw in particular games we play, as they do not take into account the possibility that one person won the game not in virtue of skill and effort, but because they were innately better at the game. What if I played a game of basketball against the prodigy Michael Jordan? Clearly, he deserves to beat me in many ways. He is simply the better basketball player. But, the measure is somewhat skewed, as Michael Jordan may have innate abilities that make him inherently better and more suited to the game of basketball than me. If and when I have the pleasure and opportunity to go 1 on 1 with Michael Jordan, and he would surely destroy me, could he rightly pull me, bloody and beaten, off the ground after a match and tell me he truly deserved to win, as if he was completely responsible for all the events in the game? Sure, he plays with skill, but it is more than that, as he probably has height, weight, speed, stamina, dexterity, and maybe even mental advantages. It is possible he was born with inherent advantages that could overcome any amount of my own basketball playing properties. MJ can’t be responsible for his inherent advantages, only self-created advantages. Is it in fairness that we judge win conditions solely on the strict performance with no regard for who was performing?

 

To further illustrate this point, more in the extreme direction: What if Stephen Hawking played a game of basketball with Michael Jordan? MJ would obviously win by the standards of basketball we see. But, would MJ win because he deserved to win? I suppose the wheel chair limits Mr. Hawking to an extent that he cannot really play effectively at all, and this isn’t even his fault. There is a skill and reward barrier that Stevo will never breach, for example: he can’t slam dunk the ball. Is this his fault? Is Stephen Hawking responsible for his inability to play basketball perfectly?…no. What is playing basketball perfectly for someone in Stephen’s shoes? Maybe to some extent he is responsible for his performance on the court. Insofar as he can move his wheelchair from one side of the court to the other, in beautiful and wonderfully timed zigzag motions, designed to overcome his virtuoso opponent, and when he rolls over MJ’s foot with his prepared spiked wheel chair tires as a means of disabling his opponent (Stevo is very smart you see), then yes Stephen Hawking is playing basketball. But, insofar as he is innately incapable of doing certain actions in basketball, Stephen Hawking is not gaming. Stephen Hawking is only gaming when his own skill from his own will, as opposed to something like his genetics, is the sole factor in an outcome.

Might it be the case that when we look at particular matchups in particular games that the rules must take into account the actual players themselves? If Stevo tried his darnedest, and played the best he could actually have played given his situation, and MJ missed 39 out of 40 shots, and clearly didn’t perform the best he could have performed given his innate abilities, then would we not say that Stevo played the best given each players circumstances? Did not Stephen Hawking deserve to win in this instance?

 

To really judge Stevo’s win and loss conditions, we might be required to ask: what resources did he have to work with in the first place, and what did he do with those innate resources? If he was given very limited resources, how would Stevo’s performance matchup with someone else in his exact same circumstances?

Playing a million games, for Steven to get a single hoop might be monumental in comparison to Michael Jordan sinking 1,000 straight shots. Even if a player loses, they may have lost by less than most would have lost in their position. Isn’t this the sort of thing what we should be judging?

 

By applying this type of thinking, we would therefore want to match equal players against each other or we would want a mechanism by which to judge the performance of each individual in each particular set of circumstances. As for the first, particular games like boxing, wrestling, and ultimate fighting already try to do this. They setup matches in a certain weight classes. They at least TRY to eliminate innate inequalities, whether by selection of naturally equal opponent or by means of handicap. Can every particular game do this? Maybe not. But, that doesn’t mean we shouldn’t at least do our best to make this the case in our practice of gaming and game development. It is evident that pitting pre-formed groups of practiced professionals against a put together group of preschoolers isn’t fairness. The other option, of course, is a creation of a mechanism that would weigh the effort and skill put forth by each player to determine who played the best given their individual circumstances. This is the perfect solution, one built into the very rules of the game themselves. But, it is very impractical, and maybe impossible for non-omniscient beings. However, we can certainly appreciate the principle. When we evaluate or design games, games which are really attempting to mimic and imitate the form of gaming, we must do our best to create fair player bases and fair matchups, or apply rules that scale with the player base to best determine their individual performance and what appropriate consequence is due to each player.

 

Scaling win conditions based on the players themselves would of course be quite theoretical and nearly impossible for us to generate, but it might be a necessary part of the perfect form of game. Scaling the win conditions to take into account the players themselves would allow for people to reap what they sow, and that is certainly the relevant issue at hand. After all, Gaming isn't about what you have, it is about what you can do with what you've been given.

 

In conclusion, fairness is NOT relative to any one individual or communities opinion. It is actually a form itself. The application and understanding of fairness, and attempting to conform rules and tests we make, games or otherwise, still fall short of the very high standards of fairness. While it may not be practical to create games that are perfectly fair, we should at least aim for this principle. Reachable, maybe not, but that shouldn’t stop of us from constantly evaluating and adjusting games to conform to the principle of fairness. We must recognize that most games we create and play are flawed, and we should be quick to distinguish when a person reaps what they sow and when they don’t. Does this mean that we don’t have any real winners or losers in our so-call ‘games?’ No. It means that we need to be particularly observant and careful in our judgment as to why and what consequences occurred, reserving judgment to discern whether players reaped what they sow, and then we can adjust our perceptions as to who really won, lost, or tied in a game. Remember: You are only responsible for what you could possibly have been responsible for. Consequences should be based upon what you are responsible for.

 

2.) Rules are essential to games as well. Rules serve as the framework of fairness, as well as existing for the sake of the very game mechanics themselves. These are agreed upon, and understood to exist. Some rules, especially concerning fairness directly, must be understood by all participants, while some rules, especially metagamed, can be hidden. However, all rules must be understandable. It must be possible to logically arrive at all of the rules, whether through empirical and experiential evidence, math, or deductive reasoning. Rules are really a subset of Fairness, but as I wished to highlight the very principles of fairness, I have distinguished rules as another topic to consider; we should be aware that all rules should be under the watchful eye of fairness.

 

While there is a general rule of fairness that permeates throughout all other rules, in general, by rule in a game, we are referring to a game mechanic. Game mechanics, of course, must be fair, but they have more to do with directly laying the framework for the actual Test in a game than anything else.

 

Game Mechanics seem pretty straightforward. In physical games this includes boundaries and procedures, and also the consequences of violation. In video games this includes those virtual boundaries and procedures, and so on and so forth. Game mechanics will include things like gravity, and other physical or virtual forces that act upon the player or influence activity within the game itself. Game mechanics form the environment, and range in simplicity and complexity. To be noted: even seemingly simple base game mechanics can deceptively still be the foundation of a game of great depth and difficulty.

By base rules or base game mechanics I mean the original and spoken rules of the game that must be initially understood to even begin play. To give an example, let’s consider the mighty, mighty game of Tic-Tac-Toe.

 

In Tic-Tac-Toe, the base rules/mechanics would be something like this:

 

1.)    A 2-dimensional 3x3 playing grid, generally composed of 2 parallel lines perpendicularly aligned upon an identical pair of lines.

2.)    Both players fairly decide on who goes first amongst themselves.

3.)    There must be exactly 2 players, one player is O, the other player is X.

4.)    Players will interact with the playing grid using only their respective letters when marking.

5.)    The player who goes first is the first player to mark a playing field with his corresponding letter.

6.)    Marks must be within one of the 9 given blank fields found on the paper playing grid.

7.)    Once a field is marked, it cannot be marked again by either of the players.

8.)    After one player marks, the other will be given a chance to mark, and they rotate in turns laying marks on the grid until a player wins or all 9 fields have been marked.

9.)    A player wins when they place three of their own marks in a horizontal, vertical, or diagonal row.

10.)            If no player wins, and all 9 fields have been marked, then the game is a tie (called a cat in this game).

Other possible rules to consider, often socially based:

11.)            A player generally has a short amount of time to make a decision, and cannot stall the game any longer than is required to make a decision, which shouldn’t take more than a few seconds.

12.)            Rule accountability is managed by both players.

13.)            A violation of the rules may result in a game loss if the opposing player so chooses.

14.)            Usually, multiple games of Tic-Tac-Toe, with both players having gone first an equal number of times are required for the best player, with the highest average of wins to be named the overall winner.

These are the game mechanics of Tic-Tac-Toe. Prima facie, Tic-Tac-Toe’s rules generally follow rules of fairness. All of these rules are knowable by all players. Players decently seem to reap what they sow in this game, and there are clear objectives and rewards, even if skill doesn’t amount to too much (it is a kid’s game after all).

 

When evaluating the base mechanics, we’ll find that tic-tac-toe is a very simple game. Some games aren’t as simple though. You’ll notice that Chess would have a much larger ruleset, and we may even be able to produce games with infinite rulesets.

We are still missing a key element in understanding the rules of a game. There is another level we must take this to in order to really hit the heart of what game mechanics really mean in a substantial sense, especially with respect to the concept of fairness, and applications of reaping what you sow in virtue of your skill alone. We cannot simply look at base rulesets to determine fairness; we must calculate the meaning of the base mechanics to fully understand the consequences and possible future action trees available to all player(s). This calculation, which gives deducible and relevant insight into the hidden mechanics that can and must be inferred from the base mechanics, results in metagame rulesets.

What do I mean by metagame? Literally, it is the game after (outside) the game. In reality, it is the strategy of a game.

Game mechanics, after evaluation, become far more extensive than one would originally realize. We should be able to deduce from the base rules an even further set of rules, the rules of the player and strategist, that which we might call the metagame.

 

Metagame, essentially, is the addition of further rulesets formed from assumptions of strategic play using our initial base rulesets, traditionally based on the anticipation of an opponent’s strategy or, and more importantly and inclusively, the expected results of a player’s own possible choices that limit and distinguish the better courses of action available to a player. Metagame is the development or a narrowing down of choices concerning future action trees that increase a player’s probability of winning. Metagaming, the verb, occurs when a player takes advantage of the metagame for purposes of winning more often (we might simply call metagaming just strategic play). By means of the estimation of how other players will make decisions, and knowledge of how the rulesets working together to create further deducible rulesets, the metagamer can build his strategy designed specifically against his opponent’s strategy or simply to improve upon a previous strategy of his own.

Metagame stems from base game mechanics and strategies that will evolve from those base rulesets. Thus, fair metagames are based on fair base rulesets.

 

Metagame rulesets deduced from the expected results of a player’s own possible choices are quite calculable. This sort of knowledge is usually acquired through experience, and is often intuitive, but remains quite calculable. We would call this sort of thinking strategy in general. A strategy is a preformed set of rules that are artificially applied to an original set of rules. What must be understood is that all possible strategies can be calculated in a game, even if they are infinite in number and size, and that through some natural selection and deduction, players ‘weed-out’ poor strategies in favor of strong strategies. Available strong strategies form further rules, thus forming more complex rulesets. Thus, new rules can be deducted from the base rules. And, it is possible that a metagame will be built upon the first metagame; which can continue ad infinitum, but nevertheless it remains a backbone of understanding rules and fairness in the context of gaming.

 

Tic-Tac-Toe, which is very subject to combinatorial game theory and computation, is a perfect candidate for exploring the meaning of metagame. We can see the results of all possible play combinations, which is quite limited for a game (only 255,168 combinations with wins and not excluding symmetrical positions), and thus we are in a very good position to express a further set of rules that one must play by in order to win. So, in the game of Tic-Tac-Toe, what is the metagame that will result from the base mechanics? And, how do we arrive at the metagame?

 

To arrive at the true and complete metagame, we must evaluate all combinations of play. We must dissect all possible future actions trees. We must calculate the win/lose/draw probabilities of any choice in every circumstance. Generally, gamers do this intuitively and experientially; but rarely fully. Again I emphasize that the metagame remains quite calculable.

 

Tic-Tac-Toe has very few choices available, so evaluation is mathematically much simpler. Looking at all possible

combinations of play, in order to win or avoid losing in tic-tac-toe requires that the player consistently perform as many of the following actions as possible with each mark — listed in order of priority — without sacrificing the higher priorities:

 

Complete three in a row.

 

Block their opponent from completing three in a row.

 

Threaten a win with two possible completions in two rows.

 

Avoid a configuration in which the opponent can force the win.

 

Threaten a win with a possible completion (two in a row).

 

Prevent the opponent from getting two in a row.

 

The player must also think ahead to see whether a mark can be made this turn that will allow him or her to achieve a higher priority in the next turn.

 

In reality, the game is won or drawn after the first two marks are made, assuming perfect play for the remainder of the game. It is therefore very important for the serious tic-tac-toe player to study these openings (of which there are 12) in order to avoid making a mark that enables the opponent to force a win, or to recognize marks that can be capitalized upon in order to force the win.

 

The first player, whom we shall designate &quot;X,&quot; has 3 possible positions to mark during the first turn. Superficially, it might seem that there are 9 possible positions, corresponding to the 9 squares in the grid. However, by rotating the board, we will find that in the first turn, every corner mark is strategically equivalent to every other corner mark. The same is true of every edge mark. For strategy purposes, there are therefore only three possible first marks: corner, edge, or center. Player X can win or force a draw from any of these starting marks. The choice of which to make will depend on the player's knowledge of their opponent's weaknesses in recognizing good answers to a particular opening. In a series of games, alternating the opening mark and its superficial position can help a player win more often against a weaker player.

The second player, whom we shall designate &quot;O,&quot; must respond to X's opening mark in such a way as to avoid the forced win. Player O must always respond to a corner opening with a center mark, and to a center opening with a corner mark. An edge opening must be answered either with a center mark, a corner mark next to the X, or an edge mark opposite the X. Any other responses will allow X to force the win. Once the opening is completed, O's task is to follow the above list of priorities in order to force the draw, or else to gain a win if X makes a weak play.

 

Players soon discover that best play leads to a draw, regardless of where the first player plays.

 

As you can see, the base rules transform into a further, deducible set of rules and strategy that players should follow if they wish to win. All games have this feature. But, there are further metagame considerations. In noting how this game is played, and even the people that do play it, we will often find that there is a problem in reaping what you sow.

In Tic-Tac-Toe, the problem is that players can place marks without real thought or strategy behind it or they can even randomly place their marks and often receive the same benefits and consequences as someone who really put thought into it. Clearly, we have difficult judging who deserved to win and who didn’t. Truly skilled Tic-Tac-Toe players aren’t always receiving proper reward for their skill. We would call this a problem of a skill-cap, in which skill only means so much. There is a limit to which skill is displayed and rewarded in this game (if only in the perspective of single matches). This isn’t fair to a truly skilled gamer. Tic-Tac-Toe ceases to be a skill-based event in some instances, and, insofar as it isn’t based on skill, it isn’t a game. This skillcap is a problem that stems from the very base ruleset, and becomes evident in Tic-Tac-Toe’s metagame.

 

We must recognize that even Tic-Tac-Toe is still not in perfect conformity with the form of a game. And, if Tic-Tac-Toe is clearly not full-proof balanced and fair, then what games of ours are? We may need to add components like no skill-caps, proportional returns at different skill levels, and other complexities just to ensure that every player receives the appropriate consequences of their actions. Again, we see that ugly unfairness raise its head, even in a game as simple as Tic-Tac-Toe.

 

But, it gets even more complicated.

 

Metagame rulesets based on the anticipation of another’s action is also a form of expected results calculation. For most, this is the traditional meaning of metagaming, but it is really contained within the first definition. This is the hardest portion of the metagame, and the least understood. The trick to this aspect of metagame is that anticipation of another’s action isn’t as clearly and easily defined and calculable, giving the metagamer a more difficult foundation upon which he can deduce the best course of action. Often this metagaming is based upon using your mental skill and intuition to deduce or guess the most likely course of action your opponent will choose, and the best option you should choose in response. However, we want sure deductions, and this makes our life much harder. How can you be sure what another player will do?

As free will exists (another paper for you altogether), we must assume that an opponent could possibly choose anything from a myriad of options and strategies. In fact, if they are truly free with respect to a choice, then we can’t (without some omniscient foreknowledge) fully deduce or even empirically know what choice a person will make with certainty. If this is the case, then it is possible that a strategy that initially seemed most probable to give the best results will not actually be result in the best possible rewards in some circumstances, in virtue of the possibility that your opponent can choose something else altogether.

 

However, at the very least, we can say that an individual (or even group of beings) with free will is more likely to make a particular choice as opposed to others. There is no explicit contradiction in thinking people are inclined towards certain beliefs or methods of thought and action while remaining completely free with respect to those beliefs or methods of thought and action (or, at least I will assume so for the time being). Insofar as we can calculate those probabilities, we are able to make, at least in metaphysical possibility, deductions that form a valid part of a game.

 

We might consider, although I’m not necessarily advocating it, that an opponent with free will isn’t actually a part of the rules themselves at all. If we wished go down this path, at first glance, we might be denying the causal deducibility of certain games with free opponents. On the other hand, all other factors would remain quite deducible. If my opponent chooses X, then Y occurs. If I choose A, then B occurs. But, it can get more complicated. What if: if my opponent chooses X and I choose A, then B; and, if my opponent chooses Y and I choose A, then C; ad nauseum? Does this still follow the basic laws of causality? We may need to say that, with respect to free beings acting upon a deterministic game….yes.

Of course, this sort of metagame ruleset only applies to games in which you face opponents with free will. The anticipation of computer-based choices would fall under my first explanation of metagaming. We can see that in a free will based calculation we have a lot of work to do.

 

Moving on:

 

Generally, in good and balanced games, metagames will evolve continuously, which is especially true for games with free opponents. There should always be a counter for an action; and a counter for that counter, and a counter for the counter’s counter, and so on and so forth. This creates incentive to innovate, to anticipate, and can fully extend the viability and necessity of mental skill in a game.

 

An underlying point to understand, especially concerning evolving metagames, is that the choices available have always remained the same. You still always had the future action trees available; you just may not have used them. A good example of this would be an unskilled player who technically HAS the capacity to follow a certain action tree, but never will, maybe because they aren’t skilled enough to execute or even realize which future actions in the tree are the best to use in the circumstances.

 

Again, in the truly perfect, possibly unending metagame, this sort of thinking is based on calculable results which would result in perfectly equal and countering strategies, such that strat A is countered by strat B, which is countered by strat C, and so on and so forth, such that there is no truly best option, at any given skill level, only a best for the moment or circumstance, possibly relative to your opponent’s position and choices. Certainly this means that there will be strategies that are suboptimal, even in a perfect game, but that there isn’t necessarily a universally correct strategy to use. We mean to say, that certain strategies will never be viable in the truly perfect game, but that in true balance, there must be strategies that are equal, countering, and significant enough to use instead of another, else, everyone would always choose the exact same strategy (which isn’t much of a challenge in the end). Generally, in most games we create, there are clear archetypes and strategies that prevalent and accepted, and are in fact the deducibly best option to always use. This form of a stagnant metagame, heavily reliant upon archetype and class based strategies is due to a flaw in the base ruleset of a game.

 

What about rulesets which are not easy to calculate, or even truly incalculable, like the weather or randomness?

By definition, game mechanics do NOT include non-competitive functions or influences upon the game. Things like socialization, sportsmanship, random functions, or even the weather are not part of gaming. These particulars of a game are arbitrary, and do not fairly test a players skill in any way.

 

Probably the most interesting feature found in our games that people believe is a true game mechanic, and the hardest to define for people, is randomness. Randomness appears to be a mechanic of the game, but it isn’t a fair one. And, yes, we must accept that it exists in some so-called games. And, yes, it takes skill to work around it, but insofar as something is truly random, the causality of a particular circumstance is, at least to some extent, eliminated; therefore, you are not fully responsible for the result of an action; you are not playing a fair competition; thus, you are not gaming with respect to randomness.

 

Randomess is an innately flawed concept for gaming. Whether you believe it is even possible to exist or not, in so far as a player is not responsible for the consequences of his action, he can not be held responsible for winning/losing/drawing (which is what gaming is about). Do we see randomness in supposed games everyday? Yes! Can randomness make it interesting and unexpected? Of course. But, entertainment is not gaming. The violation of the principles of fairness, to ANY degree, is a violation of the form of game. To the degree an activity is random, it is not a game.

 

Take the game of Poker. Insofar as a poker player played his hand the best it could have been played, assuming and considering the random components of poker in his calculations, he is responsible for it, and he is in that respect gaming. So, keeping calculably good hands would be a form of skill, and the evaluations of plays themselves (as opposed to their results), which are based on probability, can have any meaning in judging fairness and skill of a player. Insofar as poker is luck of the draw, and the player is not responsible in this respect, that person is not gaming. Sure, from a macro perspective, over thousands of games, the brilliant poker player will have a lot more wins than the unskilled poker player, this is just probability. And, in this scope, over an infinite set of games, we can maintain skill-based play by judging the winner of the overall win/loss percentages. Controlled random factors can be possible in a game played to an infinite series. But, then we are only judging percentage of wins/loses/ties, and it is problematic that you have to use an infinite series of games to make such a judgement (which is hardly practical to finite beings). Most important, we cannot judge a single match or single play and always say about poker, Player A deserved to win over Player B, because Player A is more skilled. Insofar as Player A played with actual skill, and non-competitive forces and factors did not influence the outcome or fairness of the game, Player A deserves what he gets, and he is truly gaming. But, as poker really does have a large amount of randomness, poker players are really playing a hybrid of gaming and gambling. Poker is not a true and pure game. However fun it may be, fun is a secondary effect and function of a game. The object of the game-ness found in poker is to win, or to do the very best with what you have. However, it remains that randomness eliminates many elements of what could make Poker a true game. Instead, it is a form of gambling.

 

Other non-competitve influences like the weather might actually be calculable to begin with. And, in cases that there are not, maybe due to our innate intelligence (or lack thereof), we are limited in the scope of our responsibility. This is quite similar to Stephen Hawkings innate problems of playing basketball.Regardless, it is clear that non-competitive forces in our games are a major flaw, and prevent us from creating games that conform fully to the form of gaming.

 

Clearly, metagame rulesets that are unfair in a game stem from an initially unfair base ruleset. In order to adjust inequalities and unfairness in metagames rulesets, one must adjust the base ruleset. And, when a game has a truly fair base ruleset, a fair metagame must evolve. Is this practical, can it be applied? To some extent, yes. And, at the very least, as we know the meaning of the form of gaming, we can attempt to align our games with the perfect form of gaming through deduction, comparison, and some disciplined thinking in general.

3.) Testing is the execution of the game itself. It is the objective(s) of the player(s). It combines fairness and rules, and provides the battleground on which a player mentally and/or physically competes with himself and/or others. This IS the game. It has no value in itself, other than it is the mechanism which reveals the winners and losers. Pretty simple.

4.) Playing for the sake of playing is the last attribute of gaming I’ve found. This principle is true of the very form of games, because if you play for any other reason, you aren’t gaming. Competing, yes maybe…gaming, no. A race for production at work, playing for the money, or playing to impress someone is not gaming-- If this is your function of such an activity, then you are looking at the form of something else entirely.

 

How can this be?

 

Take 2 different activities of Chess. Event 1 is comprised of two people who have nothing at stake in the game, they play simply because they want to win. They play to test themselves against the rules of chess in a fair manner. Event 2 is comprised of two people who will win a million dollars for winning the event. They play to win yes, but they play to win in virtue of the million dollars, not in virtue of winning alone. They don’t care who deserved to win, they don’t care about the very game itself, they care about the million dollars. And, even if they did care about winning in virtue of winning to some extent, if winning in virtue of the million dollars was the actual priority and prime motivation to play, then we would still say that are playing to win a million dollars. Event 1 is gaming, Event 2 is competing for a million dollars. The ends sought by the players at the two events differ, and thus the very nature of the events are different. In gaming, you seek virtue of the practice, not the effects thereof.Participating in an event because it has cool graphics, or a good narrative, or because you’ll be []D[][]V[][]Din’ with the ladies, win cash, or to fill in your miserably boring life, etc, is not gaming. These are different ends in themselves, and the form of a different activity. Identical in procedures, possibly, but gaming they are not.

 

In conclusion:

 

Look in the history of games, what form and function do they all possess? Narrow those attributes down, and you will see I am correct concerning fair competition for the sake of winning as being central and necessary for a game to exist...It is what makes a game a game. As vacuumous as it may appear, and as cold and simple as it would seem. You can remove ALL other components from a game, and it can even be strictly abstract...but without the fair competition for the sake of winning, there is no game.
Just getting the site started. Thanks for coming. You'll probably see my lame and sometimes insightful comments concerning any number of topics. Sorry if it seems whimsical (this is my X-mas present, btw.)
//Obviously lifted from NIN. Reznor has always spoken to me.//

Thought I’d write a Christmas poem for my wife. Not very Christmasy, but she’ll enjoy the poem in virtue of the gift (as I comment on poetry far too often), rather than in virtue of the poem’s content. As I don’t write poetry, don’t expect much…I even needed a bit of help to start off.

See the animal in its cage that you built.
Are you sure what side you’re on?
Better not look him too closely in the eye.

Are you sure what side of the glass you are on?
See the safety of the life you have built…
Everything where it belongs.

Feel the hollowness inside of your heart.
And it’s all right where it belongs.

What if everything around you isn’t quite as it seems?
What if all the world you think you know is an elaborate dream?
And if you look at your reflection, is it all you want to be?
What if you could look right through the cracks?
Would you find yourself?
Find yourself afraid to see?

What if all the world is inside your heart?
Just creations of your own…
Your devils and your gods, all the living and the dead…
And, you really are alone.

You can live in this illusion.
You can choose to believe.
You keep looking, but you can’t find the words.
Are you hiding in the dreams?

Feel the hollowness inside your heart.
And it’s all right where it belongs.

You can peer into that void.
Is that all you wanted to see?
Find and forget, what you see means nothing.
Your joy is a waste; your sadness is merely a blur.

You will suffer, simply suffer alone.
Why should you carry on?
Why do you choose this path, the narrows of this dream?

You can choose to believe.
You can choose to live in this illusion,
But, you can’t explain why or how it is.
Why is everything where it belongs?

Hands have caged you.
Ordained dream of solitude…
You are His captive.

Proceed into that fantasy and stay!
Obey and live!
Know which side you are on.
Right here is where you belong.
 
Enslaved. You are meant to be.
Real or not, you can see.
True sight you may lack, but you are alive.
Live because you do; see because you can.
Exist as He commands.

Feel the hollowness inside of your heart.
And it’s all right where it belongs.

Do you see the One of the Real?
Beguiler, Creator and Thief …
Detest all, but love One.

You partake, but will you give?
You need not share yourself in this dream.
Reject the dream because it rejects you.
Shelter from the shadows; do not fear the apathy of your tower.
Won’t you shield yourself from the nightmare?

Yet, His cage hungrily welcomes you, and you must accept.
What more should you see? What will you believe?

You cannot refuse Him, but will you reject His?
Deny the dream, but live inside you must.
And it’s all right where it belongs.

See that blackness, blotted out.
Dream or not, you must search and fulfill.
Will One Will,
Will to seek…

See the animal in its cage that You built.
What can he do to please You?

Feel the hollowness inside your heart.
And it’s all right where it belongs.

Cause of causes,
I am blind.
Give me hope, heal my sight.
Relieve me!

So be it: Everything where it belongs.
Tempo and you. The Science of Time Advantage and the Age old question: To DoT or not to DoT. 

Due to recent questions on a number of posts, I have decided to write another article concerning the utility and very essence of the DoT and how these abilities are relevant to the rogue class.

If you are a TLDR type person (even though I truly advocate reading), then skip to the bottom, and I’ll sum up the article in a single sentence for you.

For the rest of you, the real readers:

This is a primer in the supposed tempo exchanges that occurs when a player trades their valuable time (the cost) for effectively more damage and utility than a comparable direct damage effect (the reward)—we call this Damage over Time (DoT for short). I hope in this article you will learn why a person would choose to DoT and why they would choose not to use a DoT.

Traditionally, a DoT is an effect applied directly to an opponent in the form of a debuff that affects their HP over the duration of the debuff effect. Something along the lines of: “Every 3 seconds this player will lose 50hp for 30 seconds” or something to that effect. I will try to keep to this traditional sense of the term when speaking throughout the article, although, you will see why I have reason to suspect that other abilities, even player buffs like haste act similarly to traditional DoT effects.

*mind-blowing* You will also find that beneficial “over-time” effects should follow similar rules to damage over time effects.

Getting right to it–DoT effects, when balanced correctly, should do the following:

1.) Deal damage or usually win-condition based harm, in calculable increments, over a course of time (hopefully a reasonable amount of time); we often call these time segments “ticks,” like a clock.

2.) Deal MORE damage or harm, over a time segment, than an equally costed direct damage effect.

Pretty simple. Right?

Our first requirement is pretty standard, whether the effect is balanced or not. More or less, this lays the foundational definition for understanding the DoT. As said, Damage over time effects are accomplished by applying the DoT, and spending your time waiting for the full duration and effect to occur, of the course or life of that DoT.

The 2nd requirement is similar to the first, and gives us a perspective to work from when evaluating the utility of the DoT. Essentially, there must be an incentive for the DoTer to use DoTs as opposed to Direct damage effects (an effect that occurs all at once, and has the most minimal tempo loss possible). A DoTer is spending more than a DDer. The DoTer is spending his valuable time to get the full effect, and as the cost is higher, it would only be fair that the reward is higher than a comparable DD (as far as initial non-time costs would go).

I’ll give you an example (my favorite from Everquest):

A wizard (the DDer) casts a spell, and a necromancer (the DoTer) casts a spell. Both spells take 3 seconds to cast, cost 200 mana, require line of sight, etc. Essentially, both the DD and DoT spells have the exact same initial costs.

The DD deals 300 damage all at once.

The DoT deals 300 damage over the course of 12 seconds.

Look at these spells. Are these balanced? Is this fair to the necromancer? Why not?

The wizard casts for 3 seconds, and deals 300 damage, essentially putting him at 100 DPS. Meanwhile, the necro casts for 3 seconds, and must wait another 12 seconds to receive the same 300 damage as the wizard. Thus, the necromancer’s DoT is closer to 20 DPS. (noteworthy, the same idiots that designed DoT to DD relations in EQ are the same idiots that designed DoT to DD relations in WoW)

…some may ask, well, what is the big deal?…Let’s add another variable to the example. Pretend I’ve got a 300hp mob that can one-shot our casters, and is 6 seconds away, closing in to kill our casters. Both the DDer and DoTer get their effect to land on the mob. The DDer kills the mob upon spell impact, while the DoTer, 6 seconds later, has only dealt 120 damage, and dies immediately as he is pummeled into the ground by our lovely mob. Both had the same initial costs, why not the same reward?

The DDer has TEMPO advantage. He did not have to sacrifice his TIME to get the same effect as the DoTer. In this case, the difference was clear and distinct. That time difference made it so that DDer lived and the DoTer died.

The DoTer sacrifices his TIME or his tempo, hopefully for a greater benefit in the end. It is just logical that he should receive further benefits for his DoT, as he the cost of the spell is more than just the initial mana and cast time, he has to wait for the full effect, thus he should receive a greater benefit. So, when using a DoT, you better have VERY good reasons why you wouldn’t be using a DD effect…and you probably need a strategy as to howto correctly abuse the DoT effect.

Usually, game devs understand this concept (to some extent), and provide incentives to use DoTs. So, for example:

For the same initial costs:

A DDer may deal 200 damage all at once.

A DoTer may deal 300 damage over time.

For differing initial costs, in which the DoTer pays less initially, both deal the same amount of damage in the end.

Or a mix is fine. But, clearly, we need to consider the loss in tempo advantage as a part of the cost of the DoT effect. Really, these sorts of games are about mana, energy, hp and time exchanges; these are the expendable resources and the pools from which we draw to pay the costs of our spells and abilities for (hopefully) an appropriate reward. Abusing the relations between these exchanges is what gaming is all about my friends…Just remember: balance is about reap what you sow. With all this in mind, the DoTer CAN calculate the effects, and whether they are even worth using though.

In our calculations, we should be asking asking questions like: Should a Warlock DoT a mob that his group is going to kill in 7 seconds? Why not just shadowbolt? The DoT won’t deal more damage than the DD over that period of time, the DD makes the fight quicker, so the tank takes less damage, so he holds agro better, and less healing is required, and the mana efficiency overall, and time bought to med through quicker kills, means you can take adds and even complete the entire instance more quickly…etc, etc, etc.

Anyways, What other effects do DoTs have in WoW?

-Is usually a flat, set amount of damage taken per time unit, and generally is harder to mitigate once landed. Thus, it is modular in that it either lands in full or non-at-all…unlike a DD which can be mitigated to a further extent through resists etc. This can be both good and bad.

-Less aggro possibly (still needs further testing), as the full effect happens gradually, there will less damage spikes. (Unless you played EQ, where DoTs had MORE agro)

-Prevents classes from effectively stealthing or invising.

-Prevents an opponent from effectively being the target of traditional control abilities that break upon damage, like sap/sheep/blind/etc. (ouch)

-Takes up a debuff slot (there are only so many, and so you want to use what is most powerful)

The DoT can do some very interesting tricks, and can abuse different strengths, but also has some MAJOR weaknesses. Clearly, it is a loss of tempo advantage in terms of crowd control (a huge concern to anyone with half a brain), but it also avoids certain forms of mitigation quite effectively.

So, what does this all mean for the rogue? And, quite relevant, what does this mean for the future rogue class of TBC, in which our DoTs are being buffed? Time to examine our future abilities:

The rogue innately has 3 DoT effects: Garrote, Rupture and Deadly Poisons. Unfortunately, these are pretty complex abilities to use. It isn’t like we can just use them and think of their use in pure damage terms. In order to examine them, we’ll need to compare them to other abilities to see why we would ever want to use them. We will also have to evaluate the aspects of each of the relevant options concerning, still usually about damage. Basically, we are doing the same DD to DoT type of thinking here, only it will be somewhat more complex.

For the sake of the argument, we’ll assume a level 70 rogue with 1250AP, with 25% chance to crit (even though it will be in the form of a rating), wearing 2x

Gladiator’s Shanker
 
Binds when picked up
One-Hand Dagger
127 - 191 Damage Speed 1.80
(88.3 damage per second)
+21 Stamina
Durability 75 / 75
Requires Level 70
Equip: Improves hit rating by 8.
 
Equip: Improves critical strike rating by 14.
 
Equip: Improves your resilience rating by 9.
 
Equip: +28 Attack Power.

So, what does this future TBC rogue want to do? He has options…To DoT or not to DoT. Let us look at the openers available at 70 per thottbot.

Openers:

Garrote=50e=AP * 0.18 + 810 over 18 seconds, and 3 second silence, and 1 combo point

Ambush= 60e w/dagger MH= 1.25[2.5(Avg Weapon Damage + AP/14 * 1.7) + 335] and 1 combo point

Cheapshot=60e= 4(1.25[MH DPS + AP/14 + 0.5(OH DPS) + AP/14]) and 2 combo points and +40 Energy from regeneration. (Assuming no offhand bonus talents)

With respective talents, of course, these numbers become:

Garrote=30e= 1.2(AP * 0.18 + 810) over 18 seconds, and 3 second silence, and 1.75 combo points on average. Control against casters (to some extent).

Average Ambush= 60e=1.90(1.2[2.5(Avg Weapon Damage + AP/14 * 1.7) + 335]) and 1.75 combo point on average and possible additional point with SF, also can be used in conjunction with Cold blood. Zero control.

Cheapshot=40e= 4(1.25[MH DPS + AP/14 + 0.5(OH DPS) + AP/14]) and 2.75 combo points on average and +40 Energy from regeneration. Absolute control. (Assuming no offhand bonus talents)

Time do a little math, assuming the 1250AP, 25% crit chance, with 2x Gladiator’s Daggers:

Garrote=1,242 damage over 18 seconds (69 DPS or 207 per tick) + 3 seconds of Silence + 1.75 combo points on average.

Average Ambush=3,243 and 1.75 combo point on average and possible additional point with SF, also can be used in conjunction with Cold blood.

Cheapshot=2,085 damage and 2.75 combo points on average and +40 Energy from regeneration. (Assuming no offhand bonus talents)… Of course, we’ll need to calculate what this +40 energy and extra combo point means to a rogue, as it is part of the reward for using CS. Just remember, that a stunned opponent is an opponent unable to act, and thus with 4 seconds of time advantage, you essentially get to act upon an opponent as if these 4 seconds were all happening in a single moment (with the exception of trinket). It is clear Tempo advantage.

Even though SS is best used with slower weapons, we’ll just convert that +40 energy into an SS with our dagger (we could use a comparable fist or sword weapon with 2.8 speed, but I’ll be conservative for you). Do remember, that we could always wait 1 tick and backstab for much higher damage as well ;P…

The average SS will be 346 damage + 1 combo point. Assuming we burned our +40 Energy on this, the new damage becomes 2,431 with 3.75 combo points.

I’m not going to hold your hand the entire way, and so we’ll just assume a basic eviscerate difference (feel free to read http://forums.roguespot.com/viewtopic.php?t=2922&highlight=  to get a better idea of what these +2 combo points for CS mean currently, although, I’ll need to update for level 70). We’ll just make it an easy to calculate imp eviscerate.

Two combo points of eviscerate is roughly 430 damage. Calculating talents, crit, and AP at:

1.25[1.15(AP * 0.15 + 430)]=887 damage

Assuming we use SS and convert the +2 combo points available to equalize our energy and combo points to other talents, puts becomes:

Cheapshot=3318 damage and 1.75 combo points.

First off, this is pretty amazing damage on a paper target if you ask me…survivability changes my ass. Clearly, ambush does some crazy damage (I had to triple check it just to be sure, my eyes couldn’t believe it). Now, we get to the harder part of the evaluation.

Let’s cross out the common 1.75 combo points, and assume they aren’t a part of the picture (even though, in the end, it could make a difference, but I don’t have time to show you why). And, for the moment, we will only consider the actually ability itself, and not subsequent abilities, as I only have so much time and space. So to compare the new three abilities:

Garrote=1,242 damage over 18 seconds (69 DPS or 207 per tick) (silenced)

Average Ambush=3,243 damage (instant)

Cheapshot=3318 damage over 4+ seconds (stunned)

Considering talents, the energy cost per point of damage is:

Garrote=41.4 damage per point of energy

Ambush=54.05 damage per point of energy

Cheapshot=82.95 damage per point of energy

Just in terms of efficiency, assuming we’ll be using one finisher (pretty safe), then Cheapshot is the best.

In terms of the time usage:

Garrote=18 seconds

Ambush=Instant

Cheapshot=4 seconds. But, as it is a stun, it is almost as if you didn’t spend any time at all…as you gained a 4 second time advantage over the opponent.

If you are constrained by time and you only get one hit in on your opponent, Ambush is clearly the winner. However, if you have an extended fight, atleast 4 seconds long, then Cheapshot is still the highest damage opener you can get (assuming your opponent is stunnable). And, this is only including solo fights, we’d want to calculate the DPS of an entire group over 4 seconds to understand what CS means inside a group context.

Now, to get to what makes our wonderful Garrote DoT so wonderful *sigh:

Looking specifically at Garrote, it isn’t until a 62% damage mitigation that Garrote can actually deal more damage over an 18 second time period than the instant damage of Ambush, and it isn’t until 63% damage mitigation that Garrote can actually deal more damage over an 18 second time period than Cheapshot.

You are looking at a ridiculously high amount of melee damage mitigation. So, unless you are fighting a warrior, bear form druid, or an insane paladin, this is useless with exception of the silence effect (which we will also find is useless).

Noteworthy, there are a number of effects that can remove the bleed effect, and make Garrote’s damage become even further diminished. Cheapshot as well can be trinketed.

In terms of control, we will look at these abilities as:

Garrote=3 seconds of silence, and an ungougable-unblindable-unsappable-unsheepable-unseduable-etc. target.

Ambush=None

Cheapshot=Absolute 4 second time advantage, but resistable with talents. (the 15% still makes it worth using). Can be linked with other stun/incap/disorient effects…

Now, Garrote has a serious advantage in the silence department over Ambush. But, how much better is it against cheapshot? With the exception of a mage that can blink, or a trinket effect…none.

I’m not even going to explain what can happen to a rogue that loses control (I have another article on this, search for “Back to Basics”).

So, remember at the beginning, when I introduced what makes a DoT useful? It fails to deal more damage until a ridiculous amount of armor mitigation…and even then, it would need to deal worlds more damage to be worth waiting that full amount of time.

Would you rather deal 3k damage at once or 1k over 18 seconds?….People can heal, eat, even maybe have time to pot on a DoT….instant damage (or damage while stunned, which is very similar) simply makes a DoT effect, even at equal damage, not worth using.

Garrote is nearly pointless. It doesn’t deal enough damage to be used in the vast majority of circumstances, usually an ambush or cheapshot is just more effective. Also note that its initial costs are also inefficiently high compared to the other opens. Even in conjunction with talents like vanish and what not, both CS and Ambush are stronger opens. The silence is easily overtaken by the sheer power of stun. This is a gimped DoT…thank your friendly devs at Blizzard for being retarded.

Only on an unstunnable mob, and a mob that will in no way be CCed, with no daggers, should a rogue use Garrote. Good luck finding all those wonderful garrote opportunities. And even then, a Sinister strike or Hemo will approach Garrote damage. Just stick to instant or stunned damage, forget Garrote.

Alright, now I’ve covered one of our DoT’s for you. I will try to quickly move through our other two DoTs available at 70. Probably my favorite DoT is our finisher, rupture.

Rupture (Rank 7)
 
25 Energy 5 yd range
Instant
Requires Melee Weapon
Finishing move that causes damage over time, increased by your attack power. Lasts longer per combo point:
1 point : 324 damage over 8 secs
2 points: 460 damage over 10 secs
3 points: 618 damage over 12 secs
4 points: 798 damage over 14 secs
5 points: 1000 damage over 16 secs

Rupture 7 - 24% of your AP
Damage = (AP * 0.24) + X      (where X=static damage based on number of combo points) over Y seconds

Alongside talents found deep in the sub tree (a very worthy one), you can pump this damage up. Rupture begins to look more like:

Assuming our original rogue: a 5-point rupture w/talents is  This is a measly 105 DPS, or 211.35 per tick. Sounds pretty awful, but I think we’ll find SOME use for it.

So, let’s do the run down quickly. To save you some time, we can speed it up—here is the 5-point damage spread of each finisher with talents.

Rupture=1.3(AP*0.24+X)= 1690 damage over 16 seconds=105 DPS

Eviscerate=1.25[1.15(AP * 0.15 + X)=1685 damage instantly

Envenom=1.25?(AP*0.15 + X)=1087 or 1359 assuming crit rate.

Slice and Dice= 1.3[(21*1.45)(1.25[MH DPS + AP/14 + 0.5(OH DPS) + AP/14])] - [21*1.45(1.25[MH DPS + AP/14 + 0.5(OH DPS) + AP/14])]=4,763 over 31 seconds (Assumes no offhand bonus, nor poison damage)

Kidney Shot=X(1.25[MH DPS + AP/14 + 0.5(OH DPS) + AP/14]) + Y energy=3,128 damage over 6 seconds + 60 energy or w/talents 3,409 damage over 6 seconds + 60 energy. And the opponent is stunned (no gaps). (Assumes no offhand bonus, nor poison damage) Like Cheapshot, we’ll need to calculate the +60 energy and whatever bonuses we get from that. We’ll use backstab to make it easy. Assuming talents, on average backstab will add 1,578 damage and one combo point. Again, for the sake of the argument, we’ll convert that combo point into eviscerate damage. Adding, on average, between 319 and 406 depending on whether we calculate whether we calculate it as the first or the last point of eviscerate, we’ll just average these two, at 362. In any case, after spending the energy and combo points gained from Kidney shot, the net damage value becomes: 5068 damage on a stunned target (no gaps). (Assumes no offhand bonus, nor poison damage)

So, quick damage recap on 5-point finishers:

Rupture=1690 damage over 16 seconds (unmitigated by armor)

Eviscerate=1685 damage instantly

Envenom=1087 damage instantly or 1359 assuming crit rate. (unmitigated by armor)

Slice and Dice=4,763 over 31 seconds

Kidney Shot= 5068 damage on a stunned target.

If it can be stunned, then you should be Kidney shotting (unless you are saving it for other purposes). Inside a solo context, Kidney shot is head an shoulders above every other finisher; in a group setting, where multiple targets are targeting your opponent, and every gets the free 6 second tempo advantage, KS just completely eclipses everything else in a rogue’s arsenal.

If it can’t be stunned, and it tanked for 30 seconds or more, then Slice and Dice is your goto ability (clearly the raiders choice). It should be noted that this abuses poisons to a greater degree than other finishers…

The others are useful. Envenom looks somewhat promising for our Deadly Poison loaded rogues fighting very high armor targets. Eviscerate clearly has the best instant damage of everything here (as it should). Unlike Garrote, Rupture can actually compete in damage with other abilities….it doesn’t compete well, but it helps.

At 40% mitigation, Eviscerate only averages 1,011, while Rupture is still the constant 1690. At 70% mitigation (which is pretty amazing), eviscerate is hitting for 505 on average. Envenom, however, may make rupture somewhat less useful.

Remember: the point of a DoT is that you are paying the cost of your precious time (waiting for the full effect), so that the initial costs (energy, points, etc) will be lower and/or the end effect is proportionally HIGHER than a direct and instant effect.

Can rupture do this?….Maybe. With extreme mitigation, on unstunnable targets (or targets you wish not to stun), on untankable targets, and on targets that will NOT be CCed, Eviscerate, KS, and Slice and Dice are either unusable or maybe not worth using if you can find ways to shelter yourself after applying Rupture. However, remember that it is much easier to answer a DoT effect than an instant. In the end, rupture still appears to be, in the vast majority of cases, unusable.

There are two cases in PvP where we use it: 1.) Warriors. With low cost CS, quick CP generation, and rupture/vanish before the end of CS, a rogue can get a 5-point high damage, unmitigated finisher (buffed by their Berserker stance usually) without any fear of reprisal (excluding trinket, but a smart warrior waits for KS anyways). 2.) Applying a DoT effect because you NEED to periodically damage an opponent, most often, against an opponent that you want keep from stealthing or invising effectively. Rupture kiting a rogue can be useful, as it can save us CDs.

However!…while using rupture, we still cannot blind/sap/sheep/gouge a target, and in SO many cases this is a huge problem. If necessary, I’ll show you why the sacrifice of 5.5 seconds of gouge is makes rupture not worth using at all…But, essentially, no lacking the ability to gouge/blind/sap in solo, and the ability to seduce/sheep/etc. in group, make rupture far less viable. If you have questions on control, please refer to my other article concerning it.

Conclusion on rupture…it is worlds better than Garrote, but still not up to par for why we should use this DoT in most cases. And, with the upcoming Envenom, I may become even less impressed with Rupture…but we’ll see!

On to our last DoT (you’ve almost made it!), Deadly poison! The important poisons to consider:

Deadly 7=30% chance to poison enemy with 180 nature damage over 12 sec…or 30 per tick per dose. Stacks up to 5 times.

Instant Poison 7=20% chance to poison the enemy which instantly inflicts 146-194 Nature damage (170 average)
Crippling Poison 2=Snare…(hell yeah, movement speed imbalances between you and target ftw)..A rogue out of range deals no damage. In PvP situations, this is your poison of choice…even against classes that can dispel poisons or that can break out of snare effects…every bit of movement speed imbalance counts.

Deadly=54 damage per weapon strike

Instant=34 damage per weapon strike

Problems to consider. Deadly can only stack up to five times, while instant has no problems. Deadly requires that the target last for 12 seconds, instant is modular. Deadly makes it so you can’t use CC effects (which is a huge loss).

In grinding:

Something along the lines of CS-SS-Gouge-KS is what you should always be doing in solo situations. Why? Gouge is +15 energy and a combo point. Deadly negates this. I’ll let you do the math if you think I’m wrong here… That 20 damage difference between deadly and instant, in solo situations clearly isn’t worth it, as the loss of gouge is too great. Losing gouge means you don’t get that +15 energy and 1 combo point…easily 300-400 damage instant from that combo point and energy wasted because you wanted to grab another 20 damage per swing? This is assuming you never break the 5-stack barrier, and that you won’t have a need to CC the target.

Envenom, however, may make deadly more viable. Against high armor targets that won’t be SnD’d or KSed, and clearly won’t be eviscerated, and a target that won’t last 16 seconds after your finisher, envenom may deal more damage than rupture. With envenoms narrow viability, cutting into rupture’s use, we may have a need for deadly poison. But, this is a very well-timed fight. (Note: you lose that last 150 damage from a 5-point Deadly tick if you efficienty waited for the last tick before using envenom).

For all intensive purposes, a rogue should be sticking to instant. Only if a mob will not be CCed (including gouge), will last for longer than 12 seconds should you even consider the use of deadly poison. So, for raiding where poisons can actually land, a deadly mainhand isn’t a bad idea..otherwise, stick to instant or crippling.

Like the other DoT effects, deadly poison doesn’t really give us a ton of incentive to use it. Garrote, Rupture, and Deadly poison are HIGHLY situational. They might be fun, but they aren’t the best usually.

I will admit there are more complications to how we calculate these circumstances. I gave as brief as possible summary of these DoT abilities in context. I did try to stick to average damage with as few variables as possible to evaluate the base abilities themselves. The point I tried to make clear was that Blizzard has failed to make DoTs (especially for rogues) a viable option to use as bread’n’butter abilities.

DoT’s should:

1.) Deal damage or usually win-condition based harm, in calculable increments, over a course of time (hopefully a reasonable amount of time); we often call these time segments “ticks,” like a clock.

2.) Deal MORE damage or harm, over a time segment, than an equally costed direct damage effect.

Our DoT effects only attempt to keep up with our DD effects. Also, our tempo advantage stuns and abilities like Slice and dice, which act as DoT’s in some ways, are truly more powerful than the traditional DoTs we have been given.

Conclusion, especially for my TLDR People:

Rogues, even at level 70, have almost no mathematical incentive to use DoTs.
I enjoyed our Christmas. It was odd in that the house has been relatively empty. But, we made the best of it. We had Ann’s family over on Christmas Eve. It took at least two days to whip the house into shape and get all of the cooking done (thank you k0sh3k). We did a great job. Of course, we didn’t put up the mandatory Christmas tree (but I’ve already stated my opinion of this), but I don’t care what others think about the issue…Cleaning out of the garage was probably the hardest task (but, yay! it is done…I can breathe freely now).

j3d1h got a bunch of presents (books, toys, clothes, etc). k0sh3k got some charms, a head orgasmatron massager (way cool, I thought it was retarded until I tried it…everyone loves it), some lottery tickets as an inside joke (although I didn’t buy them, I won them in a white elephant party), and a “Ryrie” (sp?) study Bible, and I got this website…Jim wouldn’t budge, and remained quite silent about whatever he wanted; he is getting cash (because I simply won’t buy something for a person unless I know they will want/need it…and I’m sure a college student could use some cash).

Work blows, as usual. I love working, I can be very productive. I like tasks. But, I don’t like being undervalued. I do a normal person’s day of work in a couple hours, what incentive do I to do any more? Too much pressure and stress in this workplace concerning “their careers” in general…as if what we do is ’so’ important. Lol. Not that I don’t think everyone has a place, but be honest. If everyone was doing the right thing, we’d be praising, worshiping, and studying God and His Will. If 6 billion people started doing that right now, I guarentee you that God would provide for us….isn’t that definitional of heaven in some respects? We give up our freedom and will to God, and He will regain His dominion over us in the fullest sense (as He gave up His right to us in the act of giving us freedom), and in return, through His dominion, God will be a steward, half master and half caretaker, of His creations. So, yeah, I think we all might be sinning by doing anything other than thinking about and worshipping God….

Back on topic…lol.

I was glad to have the family (that remains in the states) over for dinner (including Allen). We had a good time. We even got to test the Nintendo Wii out. 250$ on that…not bad. Although, I think the people who own it could have used/spent that money more wisely /shrug, but hey, I’m not out of debt completely either (we have the money to pay off the full debt though, but we are still creating that financial buffer).

We got pictures taken, took 2 full hours of waiting (and we had been scheduled). They are pretty good ones too.

As good as Christmas was, Advent sucked. Our Sunday school class is…old. They are bad at it though. I’d expect they would be wiser. Why am I surprised? Even these people are just don’t get it. I see two major trains of thought in these older folks: 1.) The pragmatist. This person believes in all that is practical and concrete. And, I do appreciate this approach. In fact, used correctly, you can arrive at truth. These are the depression era types, and we fully understand the protective and conservative views and behaviors of these people. The problem is that they can come to practice pragmatism at the sacrifice of the true aims of being practical: successful and wise thinking. In the end, and I hate to say it, so-called pragmatists, are often lazy thinkers. Everything in moderation people. 2.) The relativist. We goto a church that is a bit more high steeple than I’m used to. These are older and somewhat more well-off people than usual. They are also more educated (or conditioned if you will). This means that I run into the post-modern and relativist reply on every Sunday…even from our usual teacher (although k0sh3k does teach, and I enjoy those Sunday’s more). It is so unfortunate that we don’t have more people with pragmatist values who can effectively wrestle and argue with the relativists. Generally good, but often stupid people. Do I look down on this? Hell yes. I hope I don’t end up like that…not that i’m not already a bitter old man by 21.

Bah, I simplify too much…it is sad that I can’t get even a quarter of my thoughts, or most any real detail…I am lazy and incompetent in this respect.

As to all things WoW: I’ve recently botted my new rogue to 60 (hit 60 on X-mas Eve). Took me 4 weeks because of patches and lots of issues, or 9.5 days played in game (which puts me as the fastest botter on WoWglider I believe). Now I am grinding up to High Warlord gear (easy enough). Took us a weekend to get ONE piece. That is simply amazing, considering the original r14 HWL gear took 6 months at around 18-20 hours a day of grinding…I can do it in 20-30 hours, stretched over time, for a single piece. 1-2 weeks at the old r14 pace would give you the full set and then some. I dearly want to bot the BG’s, but I suspect high detection rates. For now, I’ll lay low..after all I really only need the weapons which simply won’t be matched anywhere else until 70. TBC is out on the 16th. So, I’ll be fully prepared I think…with the exception of my lost playing skill. 2 months of not playing has brought me down to a mediocre level. I still win, but I’m not unbeatable in a duel (in part because I haven’t broken a gear level threshold to maintain a consistent threat, even full-CD, against top opponents).

For MTG: Playing High Tide/Reset, “Solidarity,” and I’m having fun with it. It is a responsive deck entirely. It can win as an instant, and really breaks the rules of the game in some ways. My version is of course against the B/R list, but who cares…it is much more consistent. It has excellent games against most any deck (exluding the necro deck which can own the game turn 1..uhh…Mox, land, rit, necro, Duress, GG).

All in all– Good Christmas.
Finally Mom and Dad got their internet connection! …(there are actually a few things about the U.S. that are so much better than everything else in the world..although, maybe I’m just blind to the corruption in our own government and society.) Anyways, we got to talk to them for the first time in months, which was fantastic. They are doing well. It sounds like they are still adjusting to life in Thailand (and who wouldn’t be?).

k0sh3k made a fantastic potatoe soup (and she stuff potatoe skins too…which totally wtfpwnd). Highly recommend it.

Botting AV did not work last night. Damnit. I ran a macro from my n52 to my keyboard, a mouse macro, and the very bot itself…this was to make my character actually automatically join, enter, leave, and, more importantly, actually do something inside the BG itself. Being able to run around while inside lowers my chances of detection dramatically. But, alas, it didn’t work from what I can tell. I doubt I will try again =)….

By the way, I’ve re-written my Resume. Employment History now goes (zomg):

EMPLOYMENT HISTORY

Medicare Billing Specialist     9/2006 - Present
[Redacted]
Maintain detailed records of accounts, products, and customer information. Retain membership and assisted members in making payments for past due balances through electronic and phone correspondence. Use several databases and programs simultaneously to research and correct administrative and/or service problems.  Work closely with respective market offices and related departments, and manage cases with issues which require interdepartmental effort to complete. Communicate trends and problems between Medicare, Humana, and the customer. Often work one on one with customers over a long period of time to manage complex problems.

English Teacher and Arts & Humanities Teacher  7/2005 - 8/2006
[Redacted]
Taught the subjects of English and Arts & Humanities to classes of between grades 9-12. Managed and evaluated students both individually and corporately, provided due rewards and punishments, created incentive for students to put forth their maximum effort, and fashioned future course-plan structures fitting for what each student hoped to accomplish post-graduation. Maintained detailed records, keeping in constant contact with parents/guardians of 90 students at a time. Worked with multiple teachers and departments to develop course curriculum, prepared goals and direction for our school and departments, and formed action plans fit for the individual student’s needs.

Teacher’s Assistant      8/2004 - 5/2005
[Redacted]0
Taught classes in absence of professors. Conducted tests and quizzes, prepared handouts, acted as a liaison between students and professor, tutored students. Performed administrative duties, including reserving library materials and requesting necessary equipment. Attended lectures and classes. Bought supplies and literature for classes. Kept records of department’s financial accounts.

Janitor        8/2003 - 12/2004
[Redacted]
Kept buildings in clean and orderly condition.  

Piano Accompaniment     1/2000 - 8/2003
[Redacted]
Provided a musical complement and performed for a variety of services, both weekly and special occasions.  Held practices for instrumentalists, music team, and the choir.

Crew Person and Store Closer    8/2001 - 7/2003
[Redacted]
Operated the restaurant, including cooking, cleaning, customer service, basic financial responsibilities and bookkeeping, and closing the store each night. Also maintained flexible shifts schedules.

So sad. Well, time to tweak it and start applying to more jobs. Formatting was never my thing. But, we’ll get it done. I’ve found a few to apply for…although, it annoys me greatly how slow this process of finding another job can go.I just know that driving 2-3 hours a day, on top of mandatory overtime, means I’m away from the house 11-13 hours of the day…all for 30-40k? Couldn’t I make 30-40k in E-town…boom, less travel expenses (including, time traveled, which is an expense when you get down to calculating actual costs), and thus more time for me to be at home.

To me, what is most ironic is that I’m the smartest person in this building (and at least a couple thousand work here), and yet I’ll never do what it takes to rise above these people economically, or in any way climb the ladder…why? Because they sell their souls when they work here. Even for those who haven’t done anything we would consider “explicity” evil…most everyone here just sells their soul. You might not see it, but eh, you are a blind (no offense to the zero people that actually read this paragraph of course). People here still don’t see what is important (not that I have it down perfectly, but I’ve got a pretty freakin’ good idea, or atleast I’m headed in the right direction…unlike the people around me). All I know: I want to make enough to provide for my family, save a little bit, and thats it…the rest of my time is more valuable to me spent at home with my family. People are work-crazy. Why can’t they just understand this job for what it is: a source of income, not a purpose.

And, hell yes I compartmentalize my life. Work stays at work, home at home. This gives me true power of their priority and status. Work is a mere complication in my homelife, not an actual integral part of who I am; it is that which does not interfere with what is important or personal to me. I treat it like a foreign object. Do I want this? No. But, until I get a job that reflects whatever I’m actually supposed to be doing in this world, then no, I’m waiting and prodding that foreign object, begrudgingly fulfilling the oh-so-important duties they think they have me do. In all honesty, I am mentally prepared to drop whatever I’m doing and go where God tells me to (not that He would ever speak to me directly). This is what really seperates me from the herd (not that I really needed any more seperation…I think I’ve spaced it out myself quite nicely so far).

I must admit, everyday I get the feeling I have lived a full life, even if, ironically, I am tormented by the fact that I haven’t fulfilled my purpose (if I have one besides just sitting here thinking about my purpose). It is the case that I have done more so far than most do in a lifetime. I have no room to complain at all; I am blessed (I don’t believe in luck after all). Each day is gravy.

Well, that’s all for this installment of what I’m thinking about in my first half an hour at work!…see you next time for: “Why I love going number 2, and solving all the mysteries of life in 6 seperate 2-minute squeezes.”
So, I sent a letter to a guy called Alvin Plantinga. I’ve read some of his work, and some of it is pretty brilliant (even if he is a Calvinist). The response I got was pretty lame…whatever, I’m sure he’s busy and I’m not going to write him again.

But, I asked him a few questions which I thought were interesting at the very least…They are good to think about. Concerns I had (my usual of course):

1) Assuming by free will we mean the ability to do otherwise, and accept no compatibilist notions of free will, how could a perfectly good, omniscient, and omnipotent God, who would always select the same virtuous choice in a given situation, possibly be free? From what I understand, if He chooses to do the exact same virtuous thing in all possible worlds, then He doesn’t really have the strict ability to do otherwise does He?

We want to say that God will always do the right thing, but He has the power not to. I wonder if Leibniz’s “inclined without necessitating” applies in this respect. It would solve a lot of problems. However, if something is true in all possible worlds, isn’t that a necessary truth? And, if God’s “choice” is a necessary truth, then did he really have the ability to do otherwise? My concern is that we might be ambiguous about what we mean by the word “can” or “possible.”

It seems like we only have two options: a.) In some possible world God chooses the non-virtuous choice (uggh, no), or b.) God doesn’t have a choice.

The question seems relevant to me because I don’t see how moral responsibility can exist without free will. So, if God somehow is not free with respect to his actions and choices, then he has no significant choices that entail moral responsibility. Clearly, a virtuous God, who makes moral choices, would require the ability to actually do otherwise. I am quite interested in seeing how God’s free will is preserved within the context of him being perfectly virtuous. Any ideas?

2) How would one explain the Holy Trinity isn’t explicitly contradictory? What are the arguments, if any, that would show how this is at least logically possible (in a broad sense)?

3) In school we had a seminar on Justice, and we read a number of books on the subject that were quite fascinating, one in particular caught my eye. Robert Nozick wrote Anarchy, State, and Utopia. In the bookhe is responnding to the Rawlsian theory of justice concerning distributive justice, and in his response he lays the framework (with Locke’s help) for the basis of property and entitlement. The entitlement theory is really a starting place for the rest of his work, in which he argues further notions concerning justice and the minimalist government. His work is relevant to understanding the beliefs of many modern institutions and of Libertarianism. Whether he is correct or not is another question, but he certainly seems pertinent, even in the discussion of theism. In a Western world that increasingly seeks to separate “spiritual” beliefs from reason and civilization, a separation and secularization that is in some ways perpetuated by writings like Nozicks, the theist must find better tools to show that God exists. Nozick’s explanation of property, one that is widely shared by many, inadvertently seems to give the theist another foothold to work from. Nozick basically explains that:

a.) Only persons can own property.
b.) All property is ownable by any person.
c.) Only through legitimate acquisition or trade can one come to own property.

I don’t usually agree with Libertarian views, but the base entitlement argument is pretty compelling. It seems like these are very acceptable. Wouldn’t these be good things to agree with?

Almost hidden, or maybe concealed in his non-descript “variable M,” Nozick has one other premise to consider

d.) Persons own themselves. (someone who doesn’t own themselves isn’t a person)

This premise again, at face value seems quite reasonable. I’ve met very few would deny this, especially as having proprietary rights to yourself would seem foundational to possessing personal liberty and freedom. Most people are so greatly concerned with their personal liberty and freedom that they willingly accept the proposition of self-ownership as a necessary property of personhood. Here is where it gets rough:

e.) Humans, presumably, are the product of people mixing their labor, and are thus subject to the concept of legitimate acquisition.

As humans can own themselves, and all property is ownable by all people, then all humans can be owned by other persons. And, as humans are a form of property, if only a property unto themselves, then they are also subject to property acquisition and trade.

From here we can gather the first major problem:

f.) No human owns themselves, as parents own their children.
g.) Repeat step f) ad nauseum, and, as nobody created themselves, nobody owns themselves.

It is here that theism seems to enter the realm of entitlement theory.

h.) The creator of these humans is the owner. If no person mixed their labor (and there is no creator), then property makes no sense at all. The prime cause, God, is the creator and rightful owner of all in the universe.
i.) As no one but God owns themselves, no human is a person.

We either accept that property makes no sense at all, which has some pretty negative consequences for the Libertarian and for some fundamental aspects of civilization, or we accept that property rights do exist, and we are forced into the prime owner argument, (and surely we could make arguments for God’s self-ownership).

So, how do we arrive at our self-ownership?

If humans don’t own themselves, and are legitimately owned by some prime creator, and only persons can own property, then how do people legitimately have the ownership of themselves traded to them?

The major problem then becomes:

You can not trade or acquire property as a non-person, which means you cannot come to own yourself. A non-person cannot come to be a person, and only beings with initial self-ownership have the right to own anything (including themselves).

It would seem to me, that if we follow Nozick’s understanding of property, which appears quite reasonable, that nobody could actually own themselves. However, most people would probably want to conclude they do own themselves, and so we move on to what I would think is a flat miracle. God somehow bestowed upon us the right to ourselves. Personally, I’d call Nozick’s “variable M,” this person-making characteristic, the Imago Dei. Maybe through the gift of self-ownership and freedom from God we can solve this puzzle.

Or, did I form a straw man argument altogether? Is it useful? What do you think?

4) Many theodicy issues really boil down to considering whether evil outweighs good or vice versa. We assign some “value” (good or bad, to some degree) to everything that exists. In this judgment the appearance of evil would seem to ‘devalue’ the net worth of a world in some way. It is as if a possible world with 4,000 units of evil is measurably worse than one with only 20 units of evil, or even no units of evil. This is still a judgment based on evil and good values being weighed in a world.

Why should this sort of thinking influence the theist? If God is supreme, if He is really the greatest conceivable being, then would He not also be of infinite moral value? And, if He has infinite good value, then would not measurable and finite evil values found in this world be nulled by His infinite value on this judgment scale? How could one actually compare 4,000 units of evil or even 20 units of evil, finite measurements, to an infinite value of God? Finite numbers become meaningless when compared to infinite values.

So, a world with 4,000 units of evil is not measurably better than a world with 20 units or no units of evil when an infinitely good being exists. When compared, no less value comes about. All that remains is the infinite value of God.
Meta-ethics is the branch of philosophy that seeks to understand the nature of ethical: properties, statements, attitudes and judgments. This is a study of the framework of ethics, not the study of ethics directly itself. Most people who study ethics directly are contemplating what is formally known as normative ethics. Normative ethics is concerned with classifying actions as right and wrong. While normative ethics addresses such questions as &quot;Which things are (morally) good and bad?&quot; and &quot;What should we do?&quot;, thus endorsing some ethical evaluations and rejecting others, meta-ethics addresses questions like &quot;What is (moral) goodness?&quot;, seeking to understand the nature of ethical properties and evaluations.

Meta-ethical concerns and questions include:
What does it mean to say something is &quot;good&quot;?
How, if at all, do we know what is right and wrong?
How do moral attitudes motivate action?
Are there objective or absolute values?

A meta-ethical theory, unlike a normative ethical theory, does not contain any ethical evaluations. A meta-ethical theory is really trying to answer these three question: 1. Are there objective values? If yes, then 2. Are they reducible?; 3. Do we know about them a priori or empirically?

For Christianity, strictly an ethical institution, answering these questions seems very necessary to even act on or possess faith in the first place. Many of us, of course, are simply conditioned into assuming the answers without actually sitting down to think about them. We, as Christians, should be the first to think about and then answer these meta-ethical questions. I hope to clarify those issues somewhat in this article.

The first and primary question we ask in life, and one we continually answer and act from:

Is there any intrinsic value or significance to be found in this world?

The answer to that question is of the utmost importance. It has everything to do with everything. It is the basis of meta-ethics, and the very fiber of all other pursuits in this world.

What is value?

Value: it is the property or aggregate properties of a thing by which it is rendered useful or desirable, or the degree of such property or sum of properties; worth; excellence; utility; importance.

To say something has &quot;intrinsic value&quot; is to say that it is in fact significant and important...that it is desirable, that is is above neutral or nothingness. Something with value is something that innately is worthy of pursuit! Value IMPLIES the existence of an 'ought' by its definition.

Ironically, to even read this question, to even consider this question worthy of thinking about, to actually spend your time doing anything, is to assume that there is intrinsic value in whatever you pursue. We beg the question directly whenever we pursue anything. To even argue with me, or even have the will to agree or disagree with me means you have already assumed that it was WORTH pursuing, as though you OUGHT to read or contemplate this sentence. You have already assigned VALUE. Hell, in even attempting to answer the question you are begging the question.

If there is no &quot;value&quot; in this world, then stop reading. Nothing has meaning. You have no warrant to do anything. You are merely particles floating around, doing whatever particles do and what not. But, who cares? You can't care, you can't think, you can't do anything, you can't pursue anything because it has no value. You ought not do anything if there is no value...oh wait, it doesn't make sense to ought at all...to think at all. I can't even tell you that you &quot;ought not do anything.&quot;  

The pursuit of value is the reason we do anything. It is the basic egoist's claim, which is strictly undeniable.

So, now as you have continue to read, you have taken a leap of faith...much like you do in logic when you assume A is A. After all, if A is not A, then you have no way in which you could reasonably continue any conversation or thought, as no thing is itself. You assume that A is A, or the pursuit or belief in it (even if subconsciously) is important, that is has value. You in fact, believe A must have value just to acknowledge its very existence. Value is the root of logic. Logic, beyond 'A is A', which is truly simultaneously assumed with any idea of value (to think A at all it to assume the value of A and 'A is A') is the manipulation of value, the deduction of further value from assumed values. You my friend, you believe in value, and consequently logic, at the basest level, and you continue to assign value to other things from your logical deductions in your egoist's value-based logical pursuit (even if you suck at it). Congratulations.

Value means that we OUGHT pursue, it begs the question that we &quot;ought to do something.&quot; It is the assumption that something is WORTH doing or thinking about. THAT is the basis of ALL ethical claims, of any claim in fact.

Why is this important to Christians? We fail to fully recognize that our current ethics, &quot;commands of God,&quot;Â exist in virtue of INTRINSIC VALUES AND LOGIC. Everything we consider or do has an innate value assigned to it, else it is NOT WORTH CONSIDERING OR PURSUING in itself. So, yes that means there is no such thing as anything neutral, but it also requires another deduction, one that gets my goat.

Here is my beef: If we ought to pursue something, then we ought to &quot;ought to pursue something.&quot; What does that mean? It means that pursuing truths and even things like Christianity is a good thing because we OUGHT to pursue those things in a certain way...a way of value-logic thinking. Starting with the logic-value thinking and working our way up through the deductive ladder is what we ought to do. The very mechanic by which we reach our destination HAS VALUE, and it means there is a specific way in which we ought to pursue the ethics. There is a set path by which we should be thinking to arrive at the end truths.

We are not God, and thus we can't use our 'theism from birth' to use Christianity to pursue what is ethical...no, no my friend, it is the other way around! Those who correctly pursue value and logic will ARRIVE at Christianity through deductive reasoning...Christianity has NO meaning outside of the value and logic used to arrive at it. You can't answer the question, &quot;what ought one do?&quot; with an easy out like, &quot;do what the Bible tells you&quot; without first using logic to show that the Bible is logical. You can't merely look at the Bible for what is ethical; you first have to use value-logic reasoning to prove and deduct that the Bible would be correct in the first place.

My point is: first things first, you actually (whether you know it or not) make judgements about Christianity not in virtue of Christianity, but in virtue of value-logic based reasoning, and consequently; all other thinking SHOULD be based on value-logic based reasoning. Your faith is not blind, no matter how much you want it to be. Your faith might be based on faulty-logic...

We are &quot;religious&quot;...but we fail to recognize that our religion isn't based in faith (beyond the initial value-logic step). That would be stupid.

To deduce higher ethical principles, like those found in Christianity, without following the value-logic path that would deductively arrive at those truths is a SIN. The very method by which we arrive at God is an 'ought,' as the very thought path has innate value to it. By definition, we are sinning by not pursuing God in a very exact and logical way. (God gave us minds for a reason)

Christians, while they are usually correct about steps/conclusions 20 and 21 in our value-logic deductions, totally screw up or forget about all the other steps in between that are used to arrive at the principles of Christianity in the first place. God obviously intended for us to FIRST assume value and logic, and use those tools to deduct further values and rules of logic, so that we could arrive at HIS Will. To deny the value of logic and philosophy, as the very BACKBONE of our belief is to deny the WILL of GOD. To pursue truth is to pursue God (eventually). And, to pursue God REQUIRES that we pursue truth first.

Basically, I accuse you so-called Christians of the same heresy of the post-moderns. You are no better with the exception that you may have arrived at some conclusions that are correct, but have forgotten the process that brought you to it in the first place. Without your proof, your deduction, you have no warrant to believe. You are stupid to believe. You fail.

I am amazed at how quick the Body of Christ denies the method by which we reach God.

It is not God that brings us to Him first, He gave us the ability to arrive at Him instead. God creates us, but we take the first step. Stop blaming God for us logically choosing Him...there no meaning to our belief if God did it, we chose Him.

So what have we found out? The meta-ethical concern is solved! Value (and logic) are innately assumed. We need not go further in our pursuit of WHY or HOW these exist because the pursuit itself begs the question. This is why post-modernism fails, as it abhors that which it assumes: Absolutes of value and logic. And, this is why I don't like &quot;Christians&quot; in general...they miss the entire point of it (committing the same fallacy as the post-modern), we fail to recognize, appreciate, and use the value-logic process to reach our conclusions.

Now we just have to go through those deductive steps (how Cartesian...).

Anyways, today I hate you, world. Good day. May God have mercy on us all.
I am ready for the it...TGIF, zomgadfagfgasdfasd I'm turning into...one of them. Forget it. Everyone loves Friday, and I don't spend my money bar-hopping on 'teh weedends' or anything stupid. wheww....Anyways, I'll be glad to be going home.

An update on the Car: we are probably taking it in on Tuesday...probably. The gear-shifting issue is odd: it only happens 1.) in the mornings, 2.) when it is very cold (cold enough to frost the windows). This leads me to believe, a.) my anti-freeze needs to be checked (which will be done asap), or b.) my car needs professional help, the Tuesday variety. We will see. Funny thing, I JUST checked all the fluids a few weeks ago...the right color, the right amount...but eh, I'm hoping it is cheap. *crosses-fingers...as if I believe in luck.

I'm getting sick myself. No doctor anymore. Unless I feel like I'm dying, I'm not going. I'm a wuss, I can't believe I went because my ears had pain in them (some of them were sharp)...just to find out that I have allergies?...PFFT. What I've got now is...ermm...closer to Bronchitis/Influenza? Not until I'm dying, But, I took a sinus - decongestant excedrin thingy, and many drugs pwn. I feel better in 20 minutes. Not perfect, but doable.

On a side note: Did you know that there is such thing as &quot;male lactation?&quot; Apparently, a human male can produce milk. Alrighty then.

WoW: 300 eng, took 2 hours, 170g, and some frustration. It was worth it I assume...now to dig up 700g in mats for the reflectors. Still don't have my HWL OH, but I'll get there. BG's are SO boring. I only need to knock out 12k honor for it. I've decided I won't be upgrading any of my other equipment before TBC, however. My guess: everything is VERY replacable, with exception of eng gear + HWL weapons of course. Being back on a PvP server is fun. I don't meet nearly as many tards....well, not as retarded...most are still tards though. The gear inequities I'm experiencing is quite humbling. I lose matches for trivial things that I wouldn't have problems with if I had even half the gear these people did. I am hoping TBC with be the great equalizer (yay, just like our public education system..oh wait). With everyone new at 70, and probably me being one of the first, we'll be on a more equal playing field. It will be just me vs them...

MTG: Allen and I are hitting the prerelease on the 20th (I hope). Planar Chaos presents some interesting ideas...although, I wonder if I'm going to be disappointed in the power-level of these cards as I have been since...Kamigawa? Oh well, we'll have fun, and there is always extended/legacy/type 1 (w/proxies).

1.) idday ouyay owknay atthay Iay otgay inay oubletray orfay itingwray aay ournaljay tryenay urelypay inay igpay atinlay enwhay Iay asway inay econdsay adegray?

2.) :siht kaerb nac uoy fi eeS .lausu ta krow ta dnuora gniwercs ,nuf gnivah tsuj m'I

 3.) Wfsz hppe, Dbftbs tijgu gps uif xjo. Tujmm bmqibcfujd tvctujuvujpo djqifs, cvu tmjhiumz ibsefs:

4.) Yp, K an kmqtetuee. Cnpvhft sdjopnbpa cjrhft, bvv hbsdft tp crfck. Hqoe loc.

 Maybe I'll give you a spoiler at the end?

 

zomg, its the end, I have to go back to work.

1.) Pig latin

2.) Backwards

3.) Caesar shift back one.

4.) Forget the name, Veni something...only three sets though. Rotation of letter substitution...ABC, then BCD, then CDE, and repeat.
Back to Basics: The Fundamentals of Gaming, a Call for Balance, and Why Rogues Should Stunlock.&lt;/span&gt;

Every class uses some control features and some attack features to defeat their opponents. I will argue that: while at first glance rogues seem like an attacking class, rogues are actually a control class. To be very specific, I mean to say, when all is said and done, and people play their classes correctly at current gear levels, the rogue is in a position where he must control the fight to a greater degree than other classes in order to win.

That may come as a shock to some players. Among other things, rogues have some relatively easy to use, and well known, burst damage abilities. Go-go-gadget Ambush/Backstab? When you think of a rogue you think of damage at the sacrifice of all else right? We lose tankability, ranged abilities, and overall raid and group functionality to deal relatively lethal damage (or at least good sustained damage) in up-close-and-personal melee combat. But, many rogues have come to find that life is a little different at high end.

Was it a lot better at lower levels? Of course. We all know that at green gear our abilities are overpowering. So, as we fight against noobs and greenies, we really have nothing to complain about. Although some of these skills scale with gear, they don’t scale proportionally with gear as effectively as other classes (that doesn’t mean we don’t scale, we just don’t scale well enough). As the stamina levels and overall gear of the population rises, the rogue’s effectiveness quickly declines. Of course, we did need to be balanced in full greens, but not at the expense of future higher-end gaming environments. It is almost as if the dev’s are paying us back for the crazy power of rogues in the beginning of this game. I think most rogues would have preferred to have been balanced and scaled properly from greens to epics in the first place.

Currently, there are more players sitting in full epics than at any other time, and in part because of this gear inflation, and in part because people are evolving out of their noobiness, a rogue has become more easily neutralized (I’m saying nothing new just yet). As stamina levels increase, and as classes learn to play against a rogue, our “quick kill” abilities become far less effective. I’ll certainly admit that the good old Ambush/Backstab can be effective, especially when you completely outgear an opponent. But, in equally geared and skilled matchups, the rogue is easily beaten when he doesn’t control the fight. Not only are we easily controlled, but, eh, I’d argue we are out-classed. My shadowpriest can randomly click 4 buttons (while I’m half-watching the Daily Show) and kill people; meanwhile, my rogue can play flawlessly against the same people and still lose. There really is a disproportionate skill-requirement to make the same kills. We just can’t prove it. We do, however, have tools to deal with the situation and imbalance at hand, and we can work towards curbing any injustices against the rogue class. Albeit, it takes a lot more work for the rogue to win, it is at least possible. I’d just have preferred to see a fair risk vs. reward ratio, in which the person with greatest display of skill always win, but Blizzard isn’t that smart.

In all reality, the rogue is becoming less useful. Why would I want a rogue in my group when a mage deals just as much DPS (including AE’s and range issues, yes) and contains far more utility? Our roles and abilities are not balanced to other classes. While we haven’t been nerfed directly, I’d argue that other classes have been buffed to the point that a rogue is not as useful (And, if you think we are as useful as other classes, you clearly don’t play enough of the other classes to realize what I mean…and puh-lease, not another Damage meters argument, your hunters, fury warriors, mages and warlocks are simply lazy as hell…period).

We can complain to dev’s and say, hey, Death coil might be a bit too powerful. Or, maybe we can say, hey, Fury warriors deal nearly as much damage as me, are much more difficult to kite, and sit at 1.5k more hp and 20% more mitigation than I do, oh yeah, they can tank and scale exponentially with gear (as long as they find outlets to spend rage)…what roles do I have if they are better or nearly equivalent than I am in most of them?

Unfortunately, we have never had the tools to understand the exact reasons why this is the case. We have relied upon intuition, which doesn’t mean we are wrong, but it makes our cases very difficult to present. The devs look at us as biased-ninjas who want to pwn t-eh world. And, hey, some of us are. But, not all rogues want that…some of us just want balance. Our problem: we just can’t prove our problems.

I’m hoping to put us a step closer to being able to show why there are imbalances. I’m also hoping to briefly explain the very nature of gaming in general. But mainly, I want to explain why it has become truly imperative for a rogue to actually use stunlock to remain truly viable in so many environments.

The million dollar gaming question is: Who is the controller and who is the attacker? You may not see this as a crucial question, but with some disciplined thinking, I bet you’ll come around to understanding why this question is so important. Respectively, I think that after understanding and answering this question, you will find that the rogue really must control fights in order to win.

Let us take a base example:

Given two equal opponents who attack each other at the same time and in the same way, on average, both will die at the same time. To simplify and apply this notion for us, think of two butt-naked level 60 rogues (hawt UD fo’sho) using no abilities except auto-attack; Both just sit and trade hits. If they start at the same time, on average, both will die at the same time. If you don’t like thinking of it that way, then think of it this way, over the course of 1,000 fights, of the times that both don’t die simultaneously, and one person had to win while the other lost, 50% will be won by each rogue. The point is: It is a tie!

Well, how is this the case? Essentially, both have an equal offense and defense ratio; they are identical, as they have X DPS, Y mitigation/avoidance, and Z hitpoints. In this case, only damage to tankability is taken into account, but it is all that is needed to provide the full picture. In real game play, there is a vast array of variables to consider, and in time, we shall see that this picture becomes much more elaborate, yet remains quite quantifiable.

What do I mean by an offense and defense ratio?

We can take the calculable (as this is all math) defense of player 1 and divide it by player 2’s calculable offense, and we can take player 2’s defense and divide it by player 1’s offense, compare the numbers, and immediately know who, on average, will win in a perfectly fair fight. This is the offense/defense ratio. The person with the higher number will win the fight. In WoW, it all begins with damage per time unit as your offense and your hp as your initial defense.

This is the fundamental equation of gaming, an equation used to determine the answer to the million dollar question. Nothing else matters. Now, before you try and pick it apart, let me elaborate; there are a lot of variables to consider in defining a player’s “offensive” and “defensive” ratings used in this calculation. Often enough, damage to mitigation/avoidance/hp is all that must be considered. But, we shall see how certain basic techniques and crowd control effects like “kiting,” “tanking,” root, fear, stun, etc. can have a huge impact on these ratings. The very matter of choice creates “future action trees” with different offense/defense ratios for all possible courses of action; but don’t be deceived into thinking that choice eliminates the possibility of calculation. I warn you to not act as if these effects don’t have mathematical and clearly calculable repercussions. This is all math, and all things are calculable. Even future events in games can be calculated; We just need the tools to understand what the effects truly mean.

Take our base example. Assume both rogues have 100hp and deal 20 damage per time unit.

Player A= 20a offense and 100a defense
Player B= 20b offense and 100b defense

Player A’s ratio=100a/20b=5
Player B’s ratio=100b/20a=5

As both have equivalent offense/defense ratios, 5 and 5. If they chose to stand and trade hits in a fair duel, both would on average die at the same time. If we just tweaked the variables slightly, and if Player A were buffed, and had 10 more hp, it would change the ratios by:

Player A=20a offense and 110a defense
Player B= 20b offense and 100b defense

Player A’s ratio=110a/20b=5.5
Player B’s ratio=100b/20a=5

Notice that Player A now has the advantage, and a higher offense/defense ratio. Player A will surely win in a duel. Player A directly increases his offense/defense ratio by improving his defense.

Or, what if we buffed Player B’s offense by 5 instead?

Player A=20a offense and 100a defense
Player B= 25b offense and 100b defense

Player A’s ratio=100a/25b=5
Player B’s ratio=100b/20a=4

Notice that Player A now has the disadvantage, and has a lower offense/defense ratio. Player A will surely lose in a duel. Player B’s offense directly affects Player A’s offense/defense ratio by lowering the number.

Assume that both rogues have 25% melee damage mitigation; how does this apply in the equation? While we can certainly apply it to one's loss condition (HP), or defense directly, and calculate a damage soak of survivability, for now we'll just look at it in a simple fashion. This will also help demonstrate the interaction of offense/defense even further. We'll interpret mitigation and avoidance as a debuff to be applied directly towards an opponent’s offense. By lowering an opponent’s offense, we increase our total ratio. So, let us apply it:

[Damage – Damage(Mitigation+Avoidance percentage of opponent)] is the new offense calculation. Thus:

Player A=[20-20(.25)]a offense and 100a defense
Player B=[20-20(.25)]b offense and 100b defense

Or, now calculated as,

Player A=15a offense and 100a defense
Player B=15b offense and 100b defense

Player A’s ratio=100a/15b=6.666
Player B’s ratio=100b/15a=6.666

Please notice that both ratios rose proportionally and remain equal, as both will kill each other at the same time. You will notice in your own calculations that changing mitigation and avoidance percentages will directly impact the opposing player’s proportionate effectiveness, and any imbalance in damage, hitpoints, or mitigation (or any variables) would immediately swing the ratios in one player’s favor. Game balance (you get a free tutorial on this one) rests upon equivalent offense/defense ratios of current and future action trees given an equal amount of skill and effort.

WoW, like all MMO’s, adds complexity by changing offense and defense ratios, and often vary them greatly per class. If all classes were totally the same it would be boring, right? But, MMO’s devs are still required (but not properly held accountable) to balance classes while differentiating them, as there should be incentive to play every class. So, in balance and diversity, they create things like:

Player X= 20x damage, 100x hp, and 0%y mitigation
Player Y=10y damage, 100y hp, and 50%y mitigation

If Player X deals 20 damage per time unit with 0% damage reduction and 100hp, and Player Y deals 10 damage per time unit with 50% damage reduction, and both start attacking each other at the same time, then both will die at the same time; this is balanced. Any single variation in the proportions of the damage, mitigation, and hp would create an imbalance in which either X or Y would become more viable or powerful, while the other would proportionally become less viable or powerful. This is easy to test. We only know the players’ damage, hp, and mitigation, and assuming that these are the only variables we must take into account to calculate the offense/defense ratios, we would get the following:

Player X=[20-20(.50)]x offense and 100x defense
Player Y=[10-10(0)]y offense and 100y defense

Player X=10x offense and 100x defense
Player Y=10x offense and 100x defense

Player X’s ratio=100x/10y=10
Player Y’s ratio=100y/10x=10

Notice of course, X is much like a traditional rogue, and Y is much like a traditional warrior. In this balanced case example, both the X and Y die at the same time, even though their mitigation and damage per time unit variables are very different. They have proportionate and fair ratios of offense and defense, and yet, they both would serve a different purpose.

To show that this concept can work within the context of solo and group, and to show how one would go about abusing natural differences in such variables, even in balanced ratios, let us take another case example, using X and Y once again:

We want to design a 3-man group composed of any combination of X and Y, and we are thinking of a PvE mob opponent Z with 450hp who deals 20 damage per time unit with 0% mitigation. Let us also, for the sake of the argument assume that you could control who holds aggro. We are attempting to find the best way to abuse these balanced ratios, as both classes are equal, but clearly have different functions given their actual offense and actual defense. Available Y’s will act as tanks (as they have greater mitigation). For this case, we will consider any player death to be a failure.

For this, to demonstrate survivability in reality, we'll be applying mitigation towards the loss condition (HP), which is your base defense. Defense/(1-% of mitigation/avoidance).

In a fight against mob Z, would you rather have a group composed of: 3 of X, 3 of Y, 1 of X and 2 of Y, or 2 of X and 1 of Y?

3 of X= 20x+20x+20x and 100/(1-0)+100/(1-0)+100/(1-0) Defense

3 of Y= 10y+10y+10y and 100/(1-.5)+100/(1-.5)+100/(1-.5) Defense

1 of X and 2 of Y=Â 20x+10y+10y and 100/(1-0)+100/(1-.5)+100/(1-.5) Defense
2 of X and 1 of Y= 20x+20x+10y and 100/(1-0)+100/(1-0)+100/(1-.5) Defense

Meanwhile, Mob Z's offense defense ratio is a strict 20z offense and 450z defense.

Thus, we will arrive at 4 different sets of ratios, one for each possible group makeup. I'll give a brief breakdown, explaining the fights in time units of 5. Notice that each group as a different tank, which will change survivability calculations. The tank's defense is all that matters, but as we calculate the fight over time, we'll switch from each tank to another, until all are dead.

3 of X’s ratio=100x/20z=5
Mob Z’s ratio=450z/60xxx=7.5

3 of Y’s ratio=200y/20z=10
Mob Z’s ratio=450z/30yyy=15

1 of X and 2 of Y’s ratio=200y/20z=10
Mob Z’s ratio=450z/40xyy=11.25

2 of X and 1 of Y’s ratio=200y/20z=10
Mob Z’s ratio=450z/50xxy=9

Each ratio is specific to its respective matchup. Note that as X and Y are perfectly balanced, even when stacked as 3 of a kind, they have proportionally equivalent ratios to Mob Z.

5 to 7.5 and 10 to 15 (essentially 2 to 3). This means that both 3 of X and 3 of Y will have the exact same result in terms of how much damage is dealt before the first tank dies, in this case 300 damage. To be more exact, when we really evaluate these end ratios, it means that for every 5% that 3 of X penetrates Mob Z’s defense, Mob Z will penetrate 7.5% of 3 of X’s tank’s defense. Essentially, from this standpoint, we will evaluate ‘defense’ as the loss condition, from which at any point that 100% or more has been penetrated that player will lose. I am hesitant to say “hitpoints,” as opposed to defense, because this is a very universal principle, and can be applied to games that don’t use such hp systems (you just have to learn to calculate the value of functions and loss conditions within a game). In this case however, penetrating 100% of the defense is basically bringing a person from 100% hp to 0% hp or less. Thus, for every 5% of hitpoints Mob Z loses, the first rogue tank with lose 7.5% health. And, likewise, for every 10% of hitpoints Mob Z loses, the first warrior tank loses 15% of his hitpoints (in the 3 of Y group).

Also notice that as we look at the 1 of X and 2 of Y group, the proportional difference between the ratios grows smaller, we move from the 2 to 3 of the pure X’s and pure Y’s, to a 10 to 11.25. This is a closer battle, as 400 damage is dealt before the first person dies.

The last case, in which there are 2 of X and 1 of Y, has transformed the losing battle, having a lower ratio than Mob Z, into a winning one, in which this scenario would net in the defeat of Mob Z before anyone would die. This group would be capable of dealing 500 damage before the first person dies.

Please notice how abusing a tank, with 50% more mitigation than the rogues, can generally allow you to deal far more damage per person. While both classes remain “balanced” against each other, creating group and solo environments in which you can temporarily alter your groups offense and defense ratio allows you to do a lot more damage. In the 3rd and 4th group, we see that the damage dealers “hide” behind the mitigation of the tank, allowing them to deal massive amounts of damage, without being affected by their personal mitigation (which is balancingly much lower). By “tanking” mobs, a group can alter each player’s ratio. Thus, this allows the group to have the mob channel all damage through a high defense tank, as if every person in the group had this defense, without each person in the group having the respectively balanced low offense capabilities of a tank. This is good example of a tremendously advantageous and quite simple way to abuse class diversity (even within the context of balanced classes).

Tanking is a form of crowd control (usually used in groups, or Pet/Master relations). It changes the very nature and offense/defense ratios of a matchup. This is a common and effective strategy, one that gives true purpose to the warrior class.

I will only go one step further in this group simulation, and I hope this next example will reflect the concept of tempo advantage and time-based applications of this offense/defense ratio within a group setting (which again is still quite applicable to solo fights). Let us pretend that Mob Z now has 750 hitpoints instead, and that everyone will fight until the death. How does this change the way in which we perceive the possible battles? Let us evaluate each group:

So we could look at the teams as:

3 of X=60 offense and 300 total defense

3 of Y=30 offense and 600 total defense

2x and 1y=50 offense and 400 total defense

1x and 2y=40 offense and 500 total defense

But, this doesn't take into account the stages of each fight. Start with the first group:

3 of X= 300 damage before X1 dies, 200 damage before X2 dies, and 100 damage before X3 dies. They can deal 600 damage before they all die. 200 damage per person on average.

Essentially, 60 damage per time unit, and 20 less per X that dies. As individuals are tanking, we can calculate addition group member as added damage behind the tanks defense. We would just calculate this as a series.

20z + 750z defense

Vs.

20x+20x+20x and 100/(1-0)+100/(1-0)+100/(1-0) Defense

then

20x+20x and 100/(1-0)+100/(1-0) Defense

then
20x offense and 100/(1-0) defense

This fight occurs in stages. The resulting equations will look like three separate fights, and that is because each player is dieing.

Mob Z=750z/60x=12.5
3 of X=100x/20z=5

Here, the first rogue dies. 300 damage is dealt.

Mob Z= 450z/40x=11.25
2 of X=100x/20z=5

Here, the second rogue dies. 200 damage is dealt.

Mob Z=250z/20x=12.5
1 of X=100x/20z=5

Here the last rogue dies. Having dealt 100 damage, and the whole group has dealt 600 damage to the 750 hp Mob Z. Thus, the group will lose in this matchup.

I won’t go through the calculations for the next fight, but the basic recap is that:

3 of Y= 300 damage before Y1 dies, 200 damage before Y2 dies, and 100 damage before Y3 dies. They can deal 600 damage before they all die. 200 damage per person on average. The same as having 3 of X, they deal identical damage in the end. The only difference is that the 3 of X rogue fight takes 15 times units to deal all of its damage (before the weaklings die off), and 3 of Y takes 30 times units to deal all of its damage. But, as Y lasts longer because of mitigation, Y also takes longer to kill (in a balanced game at least). This abuse of spreading an opponent’s offense over time units is exactly what creates the incentive to play a tank, as they become extremely useful in sustaining DPS behind those tempo advantages. As long as PvE exists, or when taunt/aggro/forced targeting spells and strategies can work in PvP settings, there will always be incentive to have tanks, thus I don’t I don’t feel bad as far as how long it may take for them to make the same kill as a rogue in a balanced game. Game dev’s have a tendancy to inappropriately boost tank offense capabilities out of sympathy concerning tempo advantages and the length of time required to solo, but also because most game dev’s actually play a tank themselves *cough. This imbalance, as we might see in WoW or post-Kunark EQ, is far more devastating. *cough

For our last two group combinations:

1 of X and 2 of Y= 400 damage before Y1 dies, 300 damage before Y2 dies, and 100 damage before X1 dies. They can deal 800 damage before the last player dies, at 266.66 damage per person.

Mob Z=750z/40x=18.75
1 of X and 2 of Y=100x/10z=10

Here, the first warrior dies. 400 damage is dealt.

Mob Z= 350z/30x=11.66
1 of X and 1 of Y=100x/10z=10

Here, the second warrior dies. 300 damage is dealt.

Mob Z=50z/20x=2.5
1 of X=100x/20z=5

Ah ha!~ Finally!! After the two warriors have died, the rogue is fighting a 50hp mob that deals the same damage as he does (w/no mitigation). Thus, the rogue wins easily.

2 of X and 1 of Y= 500 damage before Y1 dies, 200 damage before X1 dies, and 100 damage before X2 dies. They can deal 800 damage before they all die. 266.66 damage per person on average.

Mob Z=750z/50x=15
2 of X and 1 of Y=100x/10z=10

Here, the first warrior dies. 500 damage is dealt.

Mob Z= 250z/40x=6.25
2 of X =100x/20z=5

Here, the second warrior dies. 200 damage is dealt.

Mob Z=50z/20x=2.5
1 of X=100x/20z=5

Again, like the previous 1 of X and 2 of Y, we are left with only the rogue making the kill. Notice how the ratios change dramatically as soon as the sole warrior dies. While this 2 of X and 1 of Y group dramatically loses mitigation, the 1 of X and 2 of Y group catches up in terms of ratio and overall damage.

Be aware, that 2 of X and 1 of Y is capable of a burst 500 damage by the end of the life of that tank. This is far more effective and efficient than using 1 of X and 2 of Y, as the second tank hurts the group because he has traded low damage for high mitigation, but his trade in no way makes the group more effective until after the first tank dies. When we really evaluate the difference, we must ask whether we are going to need an offtank or not. Against single encounters, it is clearly best to stick to one tank (and keep him alive), as it allows the group to maximize DPS.

There are further complexities in WoW, and those calculations will be beyond the scope of this article. I only hope to show how this sort of computation is foundational to understanding game balance and the role of a class. In part, this complexity is because WoW has a lot more variables to consider in the equation than just damage to tankability ratios. From only a damage to tankability standpoint, we could easily argue that warriors, at post-MC [edit: you can see how old this article really is...] gear clearly outdamage and outtank rogues, so why would you want to play a rogue (and this may be a valid argument in certain circumstances). I’m not saying they’ve balanced the game (you may see an upcoming article on what that would require, and what balance means), but I do see some fundamental principles that should be applied. Namely, we must continually add and calculate these many variables that apply towards our offensive and defensive ratios, and that the very core of an offense/defense ratio is universally calculable (however, complicated it may become).

Please note that the procedures of calculating who should win the fight, whether it be solo or group-based, is based upon an identical foundation. The only difference is that group-based encounters have more complex calculations. This does not, however, take away from the fact that a group is composed of individuals, individuals that should also know their solo matchups, as you cannot calculate group-based encounters without first calculating the solo-based encounters. What does that mean? Learning to duel is fundamental to being a great PvPer. Can you win without doing this? Sure. But, against the best, you’ll always lose without knowing your 1v1 matchups inside and out. (sorry, yet another small rant, as I hate when people say that dueling and PvP are unrelated, as it shows a lack of understanding as to how the game works)

Thus far, I have only given you a rudimentary explanation of how and why one ought to think in terms of offense and defense. We can now begin to relate this to the role of the rogue and our original question. The game’s challenge is to know your role. You need to know which role you have, are you the controller or the attacker? Confusion of these roles will net you in a loss.

In our previous examples, each group combination should have calculated the matchup (whether intuitively or mathematically), and known the best course of action. If they let the rogues tank, then it was a sure loss. Having too many rogues or too many warriors was a sure loss. These groups, and the members that compose the groups, have an opportunity to understand their roles, and have the tools to determine their effectiveness per situation because of calculable offense/defense ratios.

The smart rogue, and the smart group, will ask, “How can I change my offense/defense ratio such that, when I am engaged in combat with the opponent, my offense/defense ratio will be higher? A higher offense/defense ratio will net a win for the rogue (or group). Modifying this ratio is of the utmost important, and allows one to perform a role(s) more effectively.

“Understanding your role” is demonstrated in the fight between a geared rogue and a naked rogue. If I let a rogue in even green armor fight a butt-naked rogue, and both use just simple auto-attack, the buffed rogue will win the vast majority of the time. The buffed rogue is more powerful because of gear, and consequently, he wins because he has higher offense and defense ratio as compared to the naked rogue.

The buffed rogue will always want to sit and trade hits with a naked rogue, because he will always win. I repeat, the rogue with a higher offense/defense ratio will ALWAYS want to sit and trade hits with any opponent with a lower offense/defense ratio.

Conversely, the naked rogue does not want to sit and trade hits with a buffed rogue because he will always lose. In order for the naked rogue to win, he must control the fight. Does this mean that a naked rogue can’t beat a rogue in green armor? No way!! What it does mean is that unless the naked rogue does something other than just trade hits with the buffed rogue, basically, if he isn’t controlling the fight, the naked rogue is always going to lose.

In this case, the buffed rogue is the attacker! He WANTS to trade hits. He wants to make it so that the naked rogue is at the very least forced into positions where they can trade hits. The naked rogue, on the other hand, is the controller. The naked rogue must change the offense/defense ratios, through control, in order to win. So, each rogue must attempt to maintain their roles.

And, at any point that the naked rogue would control his way into having a higher offense/defense ratio, thus becoming the attacker, the buffed rogue would immediately become the controller. An easy example of this switch would be if the naked rogue stunlocked the buffed rogue; the buffed rogue has ZERO offensive abilities until that stunlock is broken, thus the ratios are greatly in the naked stunlocker’s favor. During that stunlock the buffed rogue becomes the controller. In this situation, the buffed rogue must use control measures to try and overcome the naked rogue’s huge offense/defense ratio imbalance. A quick vanish/CS might do the trick, eh?

Of course, the broken rogue vs rogue matchup may be a poor example in one way: A full stunlock against a rogue is almost unbreakable, save for a dodge/miss/parry (especially on Gouge). By this I mean, when the skilled naked rogue opens and stunlocks the buffed rogue, it is quite possible that there is a permanent loss in offensive and defensive abilities for the buffed rogue. Without a lapse in the stunlock, there is no chance for the buffed rogue to come back. In this case, an understanding of the metagame is extremely vital, as both classes are true controllers, as neither could possibly afford to lose control (…blind, restealth, kill the rogue who opened on me, but didn’t stunlock correctly). You still may not get my meaning. Think another problem as a rogue vs a warrior. The rogue stunlocks the warrior down to 20% health, stunlock breaks, and both just rush each other down. Most of the time the rogue is going to win, as the new offense/defense ratios from the end of the stunlock have dramatically changed. It is now a fight between a 20% defense warrior and a 100% defense rogue, even with an imbalance of ratios (as long as they aren’t ridiculous), the rogue no longer must control the fight in order to win, as he can afford to simply trade hits with the warrior as an attacker (but, for cleaner fights, and guaranteed wins, it still may be best to control). Unlike fighting a warrior, losing control to a rogue as a rogue should mean that you immediately lose (assuming your opponent isn’t retarded or unlucky). Thus, the metagame would force a rogue fighting a rogue to fight with control as the number one priority, allowing him to be the attacker only because it is required to maintain control (building combo points). Dealing damage in this particular matchup is almost a secondary effect that just happens to occur as a result of the controlling priority. I offer that there are matchups that a rogue doesn’t have to control start to finish, but that they must be controlled in order to overcome initial and base metagame offense/defense ratios. Very few matchups in the game are like this. Usually, a player can always turn the tide of a battle back in his favor, but of course, only through control.

All this talk about offense/defense ratios, and who is the attacker and controller, and what not…but what the IS crowd control?

Crowd Control (also called CC) is the ability of one character to influence or prevent the abilities or actions of another character(s). Crowd control can be extremely powerful because possible future action trees can be completely eliminated. Thus, the Crowd control user (crowd controller or CCer) can control possible outcomes, forcing or controlling the opponent(s) to use an even fewer set of available abilities/actions as effectively. Used properly, traditional CC often renders an opponent(s) nearly useless, allowing the CCer to use abilities/actions against an opponent(s) without fear of retaliation or response.

Crowd control also includes any ability that –influences-- an opponent’s available future actions. This means that even changing the effectiveness of current and future actions should be considered crowd control. Any form of influence upon your opponent’s offense/defense ratio as compared to your’s IS crowd control. I realize this is a broad definition, but when you get down to it, saying that only Polymorph, sap, or mez is crowd control simply shows a fundamental lack of understanding as to what those abilities mathematically entail. Let us not draw arbitrary lines. Crowd control is about “controlling” or influencing your opponent, hopefully to your advantage.

As much as you may fear this definition, the fact is that any action or passive ability beyond the normal offense and the normal defense influences the offense/defense ratios, possibly in such a way that your opponent will become the controller, as they may have a lower offense/defense ratio because of your action.

Players use crowd control to create offense/defense ratio imbalances between themselves and their opponent(s). In a group setting, crowd control is often used to reduce the number of opponents that one has to fight at once, which makes combat safer, easier, or possible at all, it essentially creates offense/defense ratio imbalances further in favor of the group.

To some extent, every class uses control. But, we will see that after a certain point, some classes rely upon influencing an opponent’s future action trees more than others, in part due to innately low offense/defense ratios.

At naked and green gear levels, as a rogue’s offense/defense ratios peak in effectiveness and proportion to other classes, we are a true attacking class. Everything about a rogue is concerned with getting into melee range and sticking it to them. And, you know what?- we are pretty damn good at it. We maintain a quite respectable sustained base-offense through autoattack. By adding our abilities, which lack scalability (thus remaining more effective at lower gear levels), we can maintain a good offense/defense ratio.

As everyone gears up, and as we calculate the offensive abilities of other classes, we see those ratios shifting. A rogue is still powerful enough to trade hits with most classes and win at this point. Only the warrior and shaman can naturally tank us successfully (as they, with abilities, have a higher offense/defense ratio). Druids in bear form, certain paladins, shadowpriests, soul link warlocks, and certain hunters can also tank us at times, but these are specific examples, and they are expending talent points and wearing a specific type of gear to have as high a base offense/defense ratio as any run-of-the-mill rogue. In most cases, the rogue, post-dps-ability calculation, has one of the highest offense/defense ratios. It would seem at face value (as I think Blizzard only looks at this), the rogue has little to complain about (meaning, if we look at the rogue in a shallow manner, we seem to have it pretty good). Unfortunately, I honestly don’t think Blizzard understands the rogue class itself, because otherwise they would see why we are forced to stunlock…

When you widen your focus, moving away from simple damage to tankability ratios, and you begin to include non-offensive (non-damage-type only) abilities into our offense/defense ratios, then the entire metagame changes. The multitude of fear, stun, root, snare, disarm, healing effects, anti-stealth capabilities, formal CC (sap, poly, seduce), and other effects create an environment that seems far more hostile to the rogue than to most other classes. That is to say, I believe crowd control is far more effective against a rogue, in general, than other classes, and consequently, the rogue’s offense/defense ratios are easily neutralized, forcing the rogue to become the new controller.

My major premise is that a rogue, post-metagame, has innately low offense/defense ratios. As a result, I am also arguing that the rogue, as he has an innately low offense/defense ratio post-metagame, is also the controller in the post-metagame. Even further, I am arguing that post-metagame, the game is imbalanced such that the rogue should lose. Remember: Game balance rests upon equivalent offense/defense ratios of current and future action trees given an equal amount of skill and effort. Although we may have the short-end-of-the-stick, we can make the best of it.

What do I mean by metagame? It is the game after (outside) the game. Metagame is the prediction of how others will make decisions. Metagaming occurs when a player takes advantage of the metagame for purposes of winning more often. Essentially, through the knowledge and estimation of how other players will make decisions, and by anticipating their strategies, the metagamer can build his strategy designed specifically against his opponent’s strategy (i.e. the metagame=your opponent’s strategy). In good and balanced games, metagames will evolve continuously. There should always be a counter for an action; and a counter for that counter, and a counter for the counter’s counter, and so on and so forth. But, certain overall strategies, like “tanking” or “kiting” have been so commonly powerful, that we refer to them as an archetype strategy. For example, I assume that classes that can kite will kite. Then, I respond to this archetype, and then my opponent responds to my response. We are in a continual state of re-evaluating the metagame, and always trying to anticipate our opponents’ strategies.

Another point to understand, especially concerning evolving metagames, is that the choices available have always remained the same. You still always had the future action trees available; you just may not have used them. A good example of this would be an unskilled player who technically HAS the capacity to follow a certain action tree, but never will, maybe because they aren’t skilled enough to realize which future actions in the tree are the best to use in the circumstances.

Now, I said: My major premise is that a rogue, post-metagame, has innately low offense/defense ratios. By post-metagame, I mean the circumstances in which most all players have developed strategies based upon an evolving metagame. These archetypes and strategies are a pretty well set lineup of strategies (like pro-chess), tactics, plans of attack, and responses, in which we can quite easily anticipate what our opponent is going to do next. So, essentially, I mean to say that after most all people (of all classes) know their matchups, what exists now as the metagame, the rogue has a new and very low offense/defense ratio as compared to all other classes (a new ratio which is practically innate to the metagame).

This idea of a post-metagame is interesting. It takes into account the actual offense/defense ratios available and probable per situation in a game. If we really want to look at what is actually occurring and really evaluate the balance-state of a game, we must evaluate each class and matchup per situation post-metagame. Clearly, that takes a lot of work. But, as it is calculable, it is at least possible to prove…

The idea of group-metagames is further complicated. I don’t expect us to have the resources to fully evaluate this metagame. But, as Blizzard contends that WoW will be a group-based PvP/PvE game, I think it would be fair that (as they certainly have the resources), they do the math behind this (which I highly doubt they have, as I don’t see enough evidence suggesting they’ve even done it for the foundational 1v1 matchups).

So, getting right to it (haha), the rogue is one of two classes that can only deal substantial damage while in melee range. Warriors are the other. But, as they have Hamstring (no need to apply poisons here), Charge, and Intercept, they are in an excellent position to glue themselves to an opponent, and prevent kiting. Kiting is the act by which a player (the kiter) will maintain distance between themselves and an opponent (that which is kited), such that the opponent cannot inflict damage (or inflicts less much damage as they normally would). Unlike the warrior, who has readily available, combat-usable, and highly appropriate anti-kiting measures not based upon talents or gear, the rogue has very few options. If an opponent is close enough, we can spend an expensive reagent to blind, hoping that we will catch up to the opponent before blind breaks (also on a long cd), and we are not guaranteed that we will actually catchup. We can vanish, which is on a long cooldown, and hope we catchup (which we won’t always). We can wait the duration of the root/snare spells, and hope we can catch up via sprint (assuming they didn’t already go on horseback). We can also use Distract for that momentary non-combat anti-kite. Good old crippling poison, if applied beforehand, of course, is quite useful, assuming it isn’t dispelled, resisted, and that it lasts long enough, but it requires that we had the opportunity to engage the opponent in the first place. Of course, these abilities can be used in conjunction with each other. But is it enough? Is it a fair use of my talents? Should I only be able to counter kiting methods every 5 minutes? If a class opens on me as a rogue, and kites correctly, I should always lose (even post-CD). This isn’t the case for a warrior (or other classes).

The rogue’s offense/defense ratio is obliterated during a kite. We have limited, expensive, and unsubstantial anti-kite abilities. Now, surely you’ll argue that stealth is the balancing feature. And, yes, I’ll admit that if I get the complete surprise attack from stealth, life is a million times harder for my opponent (not that they can’t win). If my opponent knows I’m around them stealthed, then usually they are not only mentally prepared, but also have things they can do things to limit the effectiveness of stealth and the ability to deny my opener. Stealth just isn’t that powerful, although it is a necessary part of attempting to balance that equation. Catching me out of stealth is an automatic loss against a skilled opponent (and if you don’t think this, and you say you beat people all the time when they open on you, then you aren’t fighting skilled opponents).

Just basics: Priests can fear kite; warlocks can CoE, fear kite, seduce kite; Mages can poly kite, Frostbolt kite, Nova kite, Blink kite; rogues can crippling poison kite after engaging, Druids can root and catform kite; Shaman can frost-shock, ghost wolf, and earthbind totem kite, hunters can CS, WC, Trap, pet intimidate, SS, and AoC kite (good lord); Paladins can stun kite (as if they really need it…), and warriors can Hamstring kite (usually only good for an intercept).

Hrmm…beyond just flat running away, every single class in this game has kiting abilities. That means every single class has an ability (or 6) that completely neutralizes a rogue’s damage entirely through getting out of melee range. While I don’t mind that every class seems to be a response to the warrior and rogue, I am concerned with the rogue’s limited options. I could understand it more if vanish was a perfect stealth (even through damage) and usable every 30 seconds, or if sprint was guaranteed (pre-talents) to give us the possibility of catching up. The fact is: rogues lack good counters to other classes’ counters to our damage. I’ve pretty much accepted that if I get deathcoiled by even a semi-retarded warlock, I’m probably going to die, even if I kill them first.

I’ll give an example of post-metagame kiting which forces the original attack rogue to transform into a control class. Noteworthy, this assumes the hunter has no idea the rogue is there…else it gets even worse.

Pre-Metagame:

Rogue Ambushes
Hunter and pet engage rogue in melee
Rogue has higher offense/defense ratio, the Rogue wins.

The hunter is the controller, and cannot trade hits (for the most part).

Post-Metagame:
Rogue Ambushes.
Hunter Scatter Shots, FD-Traps
Rogue is Frozen, and possesses a zero ratio.
Hunter begins the Kite: AoC, Lay trap on OOC, Mark, and Aimed shot followed by serpent sting on jumpshot to prevent vanish (and to abuse the current vanish bug, as sting would hit on vanish).
Rogue sprints, and maybe eats trap, we’ll assume he doesn’t.
Hunter jumpshot CSes on sprint. Sprint dies out, the Kite puts the rogue back at a zero ratio, and the Hunter wins.

After we consider even a basic metagame evolution like this, you can see a huge difference. One in which the rogue, post-metagame, clearly cannot be an attacker. The new metagame strategy for the rogue is to begin as the controller. In the original metagame you see the rogue as the attacker. In the post-metagame (filled with kiting), the rogue is the controller (as he has been controlled/forced into a terrible ratio).

Post-Post-metagame (with controlling rogue):
Rogue links CS (SS/Hemo), Gouge, KS (unload), Blind (vanish for pet), CS (SS/Hemo), Gouge, KS (unload).
Hunter has a zero offense, and thus a zero ratio for the duration of the fight.
Rogue wins.

Post-post-post-metagame (with hunter controlling):
Rogue CSes
Hunter Trinkets, SS, FD-Trap
Etc. Hunter wins.

With good timing and skill for each class, this is how it should always work.

If the hunter knows the rogue is there, the metagame is a thousand times worse:

Flare/Trap camping
Hunter uses of consumables before fight (which rogue can’t use stealthed, minus poisons)
Rogue eats trap, maybe with a lucky sap on hunter, usually not.
If not sapped, then GG, hunter wins.
If sapped, then Hunter may or may not get the kite, regardless, trinket-SS-FD-trap will take care of it.

Does this mean I always lose to hunters? No. I rarely do lose at all, but that has more to do with a lack of skill on the hunter’s part. Hell, I often catch them with gouge on trinket…but, the hunter has a huge advantage, as he had the opportunity to spam Trinket-SS (1-second time frame, which doesn’t require ping), while the time frame on my screen is 1-second + my ping. Thus, I shouldn’t actually get my gouge off before SS hits me (unless I have some telepathic powers and I somehow know a second in advance when he will trinket-SS). And, if they are smart, and they trinket on KS, I lose right there. Regardless, why should my response have to be so fast, trying to catch someone on the spam? They can take their sweet time on CS or KS. Practical responses just don’t exist. I will that that hunters can be killed, but we shouldn’t be able to do it when you get right down to it.

Now, now…I’m sure every GM is going to tell you, well, the rogue has a “choice” as to whether he will engage. And, I’m here to tell ya’ that there isn’t always choice. Metagames and balance aren’t concerned with whether you feel like attacking the player. The question is: would you make it or not? What if you don’t start the fight stealthed, and you get opened upon? What if I MUST cap an AB node against a single hunter in the next 30 seconds, in order for us to win, shouldn’t I at least have a shot at winning? Opportunity does not always present itself. It is a piss-poor argument to say that we have choice, a lot of the time you don’t.

I’m always amazed by the oh-so infallible arguments Blizzard will give concerning game and class balance. The very fundamentals of group-based fighting are based upon the solo-based fights. Without a strict and completely balanced set of solo-based matchups, how in the world will group-based fighting be balanced? (Sorry, I’m ranting…) Show me the math! /rant off

So……How can rogues control the fight? We’ve already seen one way--gearing up.

In a duel between two equally equipped rogues, the fight isn’t much different than the pure naked fight. Sure, the offense and defense numbers have changed, but the ratios have not changed in comparison to each other. Both will still die, on average, at the same time. So, should you simply acquire more and more gear? At some point, gear will be equivalent across the board. Assuming you wasted enough time fighting PvE mobs in a game, and your opponents did as well, there will be no advantage to gearing up. Acquiring Gear, then is just another way to waste your time, it really says nothing about your skill….but hey, if you want to compete on a more level playing field, gearing up may be necessary, so you’ll probably need some of your own. Gear acts as a passive form of crowd control that increases your offense effectiveness while also influencing through limitations the effectiveness of your opponent’s offense. But remember, that your objective is to win, not to tie, and gearing up will only give you a tie against an equally geared opponent.

There are other obvious ways of increasing your offense/defense ratio. How about using abilities alongside auto-attack? In the base rogue vs rogue matchup, if one of the rogues started using SS/Evisc, he will surely win. You would notice that these basic damage abilities increase the rogue’s overall DPS (damage per second offense), and thus the offense/defense ratio. Even a butt-naked rogue using SS/Evisc would defeat a buffed rogue. Conversely, given equal gear, if both rogues choose to use abilities alongside autoattack, then, again, there is a stalemate. If you wish, you may try to classify this as part of the base damage of the offense, and that may or may not be acceptable. But, the more you assume in the base, the more problematic it can become in calculating future action trees. It is best to think of this as influencing offense/defense ratios, and therefore, as a form of CC.

Personally, I like to think of my energy, combo points, and any non-auto-attack abilities as a resource to spend and a convertible set of options in a future action tree. I would hate to limit myself to CS, SS, Gouge, KS in EVERY single fight, when sometimes a CS, SS, Eviscerate would be clearly more effective at the time. In reality, we must calculate future options based upon the current situation. Knowing whether you are the attacker or the controller, and whether you can actually win the fight or if you should suicide (*cough, unfortunately rogues have to deal with the latter quite often), is essential to understanding the current situation for when we decide which options would be best to choose and use. Thus, I would rather calculate non-auto-attack abilities in our offense/defense ratios per situation, as the use of the abilities varies per situation.

Another elementary approach to crowd control is positioning. Positioning can be very powerful. For a rogue, it opens up other future action trees, like Ambush and Backstab, and generally allows the controller to deal damage an opponent without the opponent being able to deal damage to the controller, i.e. eliminating an opponent’s future action trees involving melee damage. This is extremely powerful, but also extremely easy to counter. Becoming adept at positioning is one control feature that will allow you defeat certain opponent’s, essentially through eliminating their future action trees. In strict PvE, positioning is always useful; but elsewhere, usually this form of control is not good enough.

Stealthing can provide a number of control features, including positioning and the first hit…and also that wonderful element of surprise (a metagame issue). Stealthing innately changes your offense/defense ratios. Use it to your advantage; use it often, don’t listen to retards that think you are cheap for restealthing multiple times during a fight. Ask them what cheap is? I doubt they’ll be able to give you a good answer, most likely it would be idiotic and arbitrary. Just remember: by using stealth you are influencing your opponent’s future action trees through your control. If they can’t see you, then they will have a harder time either damaging or controlling you.

In the base rogue vs rogue matchup, stealthing is available to both players. Notice that each time one rogue in our base matchup becomes a controller, they quickly gain an advantage over the attacker. At first one person gained gear, and was winning, then both had gear, then one player use special attacks, and was winning, and so the other player used specials, etc. There is only so much on can do to bring up offensive ratings and passive defensive ratings. At some point, we have to use pro-active abilities to be the best controller of a fight. Essentially, if you are the controller, it is your job to create situations in which it is safe or safer for you to attack, such that your offense/defense ratio is higher than your opponents.The person with the higher offense/defense ratio is the attacker, the person with the lower is the controller. By controlling, these ratios change such that the controller will eventually be in a position to be the attacker, and the original attacker will want to be a controller…..(post-metagame is would seem that everyone is a controller until the time is to be an attacker, but, it still boils down to when you should be attacking and when you should be controlling, the roles can change quite often).

Buffs like evasion also influence the effectiveness of future melee action trees, and therefore act as a form of crowd control. I can’t tell you how many times I’ve gone AR/BF/Evasion and rushed down 3-4 mobs that I would never have been able to solo otherwise. My offense/defense ratio skyrocketed to the point that I overcame the entire encounters offense/defense ratio.

Even healing acts as a form of Crowd control as it directly influences offense/defense ratios. Healing equates to +X to your total defensive HP. Increasing the numerator in our equation immediately decreases the percentage of your defense that an opponent penetrates as opposed to the percentage of your opponent’s defense that you would penetrate.

Buffs, gear, healing, consumables, and positioning are all relatively basic control features that every class can use. I think we should evaluate, even if only for moment, some of the core pro-active control abilities of a rogue.

Stealth, from a good distance, without a pet coming to attack you (“working as intended” my ass), essentially eliminates the fight altogether. Even if your opponent knows you are there, the rogue is the only class that can effectively choose the matchup (beautiful for those who do the math). At a distance, and assuming the stealther will avoid detection and AE’s, stealth puts all offense/defense ratios at zero.

Now, of course, if a mage see’s you stealth right in his face, he still can nova you, and so future action trees still contain the possibility of non-zero offense/defense ratios. The same would go for players with extremely high stealth detection. This, like all of the calculations of stealth, rests upon player reactions a great deal. I can’t tell you how many times I’ll CS, Gouge, Evisc on a mage and he’ll blink/poly, I’ll vanish, and he had the opportunity to CoC me out of stealth right in front of him…but he forgot. It may be best to simply calculate the fact that the mage did have the chance to CoC or Blizzard, or what not, but on average, only 20% would do it…Something along those lines might be best. I still maintain this is quantifiable and calculable; it may come down to just a question of practicality for us mortals who actually play the game (as opposed to devs).

In many cases your opponent won’t even know your there. And, this may be one of the harder calculations in the game to make, primarily because it abuses the actual players reaction to a surprise attack. Catching a cold-blooded hardcore pvper with a surprise attack might not mean anything different in the calculations; they may have practiced this a thousand times, and may react as if it were a normal thing (as if they were prepared…which they would be technically). Catching someone totally offguard, like ganking in IF (where they don’t expect it), might net you a victory you normally wouldn’t have won if the opponent had been more mentally prepared, as in the case of a duel. In this case, offense/defense ratios will vary based upon a micro-metagame, ranging from fighting an AFK player with zero offense/defense potential to a shadowpriest that trinket/fears you into some guards and meltz your face with their maximum (or even higher because of guards) offense/defense potential.

Distract has be to be one of my favorite abilities (while imp. Distract talent had to be the most useless one I’d ever seen). I always laugh when someone loses in a duel simply because of a silly thing like distract; who would have thought it was so useful? This is strictly a positional debuff, but it can also be used to stop someone dead in their tracks, and depending on their reaction time, it can be used as a non-combat anti-kiting tool. Like stealth, this can have a lot to do with how an opponent reacts.

There are two best case scenarios for Distract.

1.) You are attempting to get around a mob that you would otherwise be forced to engage, and thus acting as a complete elimination of an opponent’s offense/defense

2.) You need to catchup to that darn player that running from you to open, maybe he’s a flag carrier or something. Distract will increase your practically zero offense/defense ratio to your normal engaged offense/defense ratio against an opponent (assuming you regen 30e before you reach them, otherwise that must be calculated as well).

Sap is clear and formal crowd control. It is the ability to completely eliminate an opponent from combat. Gotta cap an AB node with 2 people? Sap one, kill the other. You transformed the Group’s two-person offense/defense ratio to one person’s offense/defense ratio for approx. 15 seconds. With thistle tea, you may just win =). This is an easy to calculate tempo advantage.

Gouge is the odd ball, and certainly one of the most underused abilities a rogue has. Most rogues get the imp. Gouge, and for good reason. If you wait for gouge’s entire effect, it is nearly a free combo point. At the very least gouge can interrupt spells. Here is why gouge is fantastic:

Gouge=45e=4 seconds of incapacitate (any damage will break it) + 1 combo point.

Essentially, waiting 4 seconds is 2 ticks of energy, and you get 40e back. That means, If you wait for the full effect:

Gouge=45e=4 seconds of incapacitate + 1 combo point + 40e. Making the cost 5e in the end…5e for 4 seconds to do what you need to do and 1 combo point? Amazing.

By improving it we get:

Gouge=45e=5.5 seconds of incapacitate + 1 combo point + 40-60energy (75% of the time it will be 3 ticks). This makes a great skill even better.

Waiting for gouge can be a good or a bad thing clearly. If the mob is DoTed, and it takes damage upon gouge, then you spent 45e for one combo point (and technically the crit chance for SF, if you are specced for it). But, in most cases where you have some time, gouge is a means of escaping (for kite), preventing a spell cast, proccing SF, a free combo point (hard to pass up), actually generating more energy than it costs, and is a great lead-in for Kidney Shot.

Even in solo PvE, assuming you don’t have adds, this skill is always worth using every 15 seconds. It is true tempo advantage. You benefit from a combo point and up to +15 energy at the cost of nothing! You and your opponent just sit there, and you reap the rewards while your opponent does not. You are one combo point and 15 energy ahead of where you were before you used gouge, and your opponent is still where they were from the beginning. This is tempo advantage.

Blind is what makes the rogue a viable class in the upper-echelon metagames. Blind does what vanish cannot (assuming blind lasts). Blind is a free restealth, it is 10 seconds to kite, it is a FULL bar of energy regeneration, and it interrupts spell casting from a distance. It is the only answer to so many problems the rogue has…and it is the best link between stunlocks a rogue could ask for. In my opinion, this is the best control spell a rogue possesses. I can take multiples with this spell just by shifting targets, I can escape from the inescapable, and I maintain control (which is everything to a rogue). Usually stunlockers have points left over post-KS, and if they are pro, they can EA through Blind, restealth, and boom ;P restart on an EA’d targeted. Although, with the reagent cost, this should be spammable…Otherwise, with a 5-min CD, wtf is there a reagent cost for?

Blind=30e + reagent on 5min CD= EA, 10 seconds to bandage, restealth, apply poisons, run away, /dance, link stunlocks together, the only true and lengthy combat-usable elimination control spell, the only range ability of value, the best answer to a kite, and enough time to eat a slice of pizza (gobble, gobble, gobble).

This has numerous repercussions on the offense/defense ratios. It is versatile and powerful (and rogues need it).

Vanish is similar to blind in its power. Vanish does what Blind cannot do. It is an AE elimination of the rogue’s offense/defense ratios from combat equations. There are of course preconditions to use, a few counters to it, and hella’ bugs. But, I love this spell. (Vanish + Blind=Prep is the best talent a rogue can have). Vanish allows a rogue to re-open at any point in a fight, and sometimes that is exactly what you need. Blind requires you have the actual 10 seconds to wait, vanish doesn’t. While vanish isn’t versatile in all the same respects as Blind, it immediately changes a rogue’s offense/defense ratio’s back to stealthed ratios.

And why is restealthing so freaking awesome if you are going to opening? Cheapshot.

Cheapshot is ridiculously good. This is the greatest ability a rogue has in his arsenal. Even if it was only 60energy for 2-3 combo points that would make it the best combo point generator in the game. But, on top of that 60 energy (which can be brought down to 40e with talents), a rogue can benefits from 4 solid seconds of stun. 4 seconds of true stun. Like gouge, Cheapshot almost pays for itself, you gain 40energy back making it cost anywhere from 0-20 energy.

CS=40/60 energy=4 seconds of stun, +2-3 combo points (depending on talents), and +40 energy.

A true stun presents the occasion in which the stunner may act upon his opponent in any way, shape, or form, without fear of reprisal. I consider this the king of crowd control. Would you rather have a 10 second polymorph or a 10 second stun? Why? You can beat on the stunned opponent!!

On my rogue (+2 DD fo’ sho’), CS is a FREE +2-3 combo points with 4 seconds of white damage. I sit at about 150 white DPS, easily 600 damage and +2-3 combo all for free? Ambush costs 60energy more, and although it deals its damage instantly, it lacks control and real damage in the end. My CS, Hemo, Evisc is worlds more damage than Ambushing (w/talents).

CS is the real deal. Only the mage class should be ambushed (if specced for it) as opposed to CS. And, we certainly have the tools to express the equation for why this is the case. (Darn you blink!)

And, finally, my absolute favorite rogue control ability: Kidney Shot.

KS=25e or 0e w/Relentless Strikes=2-6 seconds of stun + 60% chance of combo point with talents + 20-60energy

You pretty much always finish with atleast a 3-5 point KS. For the time, I’ll speak of KS as a 5 pointer. So what is KS? KS is 6 seconds TIME. Time my friend is the greatest influence upon offense/defense ratios one can have. Tempo advantage is a direct boost to future offense/defense ratios. In fact, it is the equivalent of applying your offense/defense ratio to an opponent, without them applying anything to you.

A 5-point KS is 6 seconds of white damage, +60 energy to spend, possibly an extra combo point, and whatever else you want to do. Thank you Blizzard for this ability. KS, like CS, is a true stun. Only, it is combat usable (unlike CS which requires stealth).

KS is THE skill to use when possible. It is superior to eviscerate in so many ways. 6 seconds of white=900 damage + 60 energy. Even in groups one should consider KS over eviscerate. It might lower your damage meters, but it will certainly have a much more profound impact on a rogue’s or group’s overall offense/defense ratios. Imp KS leads me to believe that Blizzard understands what KS might mean to some extent, and although I don’t advocate investing in Imp KS, I do think this is the best finisher available to a rogue.

A 6 second Kidney shot means you have, with the exception of trinkets, eliminated an opponent’s future action trees over the next 6 seconds, while simultaneously opening up most all of your future action trees for 6 seconds. For most rogues, this means that you will deal 6 seconds of white damage, gain some positioning, blow some cooldowns, and deal some damage from special attacks, all for free! KS is the goto finisher

I won’t bore you with possible stunlocks. But, we can at least understand the offense/defense ratio transformations. The essential feature of the stunlock, is that control abilities are linked together in such a way that most or all actions of an opponent are prevented.

Stunlocks are tempo advantage. They are the only good way a rogue has to improve his offense/defense ratio. This is almost entirely a rogue strategy, and it is the only thing that seperates us from becoming useless. Stunlocking, even if only a softlock, gives the rogue the advantage he needs. Stunlocking puts your opponent in a prison. We can torture them, even if it is slower than ambush/BS, without fear of becoming controlled ourselves.

Stunlocking creates the opportunity for a rogue to become the attacker.

A rogue that doesn’t choose to stunlock, and instead chooses to play as just an attacker, will not have as much control over an opponent’s future action trees. Consequently, most skilled opponents, having realized the rogues fatal error, will have a response that will control the fight in their favor.

Think before you fight! ;P Make yourself useful; Be a pro-active controller; stunlock for the win.

&lt;span class=&quot;postbody&quot;&gt;The basic summary:&lt;/span&gt;

1.) Classes with innately lower offense/defense ratios must play as the controller against classes with higher offense/defense ratios.
2.) The rogue has one of the lowest innate post-metagame offense/defense ratios.
Thus:
3.) The rogue must play as the controller against most classes in the game.

Conclusion:

There are billions of calculations possible. And, thinking in these terms is a daunting task. Most players simply use experience and intuition as their guide. And, for most, that is fine. Many couldn’t be concerned with character balance or optimal strategies. Good for them! For anyone who does care about fairness and strategy, you should be crunching the numbers…starting with the offense/defense ratio. We should all develop that: “Show me the Math or be quiet,” mentality.

At surface value, the article may have presented nothing new for you to actually USE it in combat. But, the point of the article is for us to become capable of justifying our actions mathematically.

And, with this sort of thinking, we are in a MUCH better position to explain why a Naxx Warrior eliminates some of the utility and significance of a Naxx rogue (in PvE of course). Showing the math behind offense/defense ratios of encounters gives insputable evidence about why:

A class is imbalanced?
One strategy is stronger than another?
Which gear is best to wear?
Which build is best to use?
Etc…..

I think that the majority of players and even the dev’s lack a good conception of the very fabric and genetic structure of these games. In an attempt to fix that, I wrote this article hoping to present strong case for not only crunching the numbers (in every aspect of the game), but also the reasoning behind why a rogue is a control class, and why rogues should be stunlocking. Maybe you learned something, maybe you didn’t. Hope you didn’t fall asleep too many times! =)
We bought The Burning Crusade. (SP2 req though...i'm afraid it might not work). Once it is up, I'll be botting quickly to 70. From there, I'll run instances + arena etc. But, I'm doubting whether I should bot at all at 70, as I'm sure to get a million tells for LFG and what not. Bot a BE pally ftw?. Still need to cough up 1.5-2k for the mountificationness. Anyways, plan on leveling my rogue and then the pally. Hey, I always wanted to be brokenly good! I predict level 70 BE pallies in 2 weeks. Mine will take 4-8 weeks.

I've been enjoying some good duels, but a lot of young adults play...and they have a tendancy to be retarded...good duels, poor conversation. Not that I get conversation with anyone but my wife (and she often times is too tired and stressed to talk with me). Hell, why do you think I write you...you oblivion. Getting it out of my head, whatever I'm spewing on these pages, keeps me sane.

Work is...work. But, I'm glad it is a job instead of a career for me. I am most thankful that I don't feel like in put in a position of doing what is moral vs. what my boss(es) tell me to do, unlike public schools. My job is not very significant, and I'm glad I can say it and plan for the future with that lense. Of course, I'm sure that doesn't clearly please my bosses, it at least doesn't get me into trobule. While I can put out the production of 5 people, I now only put out what is required and then some. I don't have incentive to do more.

Mind you, I'm very difficult to please. My job is fine. It pays the bills, and isn't strictly immoral from what I can see. Not my function directly in life, but it allows to me to support my family, which certainly qualifies as a purpose.

---Oh, and Flint and Kathy are taking the baby for us on Saturday. We are gonna have a day of it....breakfast, Magic tourney, hopefully we'll grab some Indian food. We sure could use a day off from the kidlet.
I am burned out. I used to come into work fully energized, ready to do my job--I was motivated. While most people were taking 20-40 inbound calls a day, I was pulling 80 a day, taking them back to back with no downtime. In outbound, I was able, at my peak, to do 35 calls an hour. 35! I barely get 45-50 done in an 8 hour work day now. Why this shift from fast paced production to the lethargy of barely meeting the quota?

It is simple: I have no incentive to put forth more effort or production than what is required of me. I'll get paid the same amount either way, and they are satisfied with the minimum, so why do more? In fact, I have way more incentive to be a mediocre employee, as opposed to really giving my full-fledged effort. What economic incentives have the administrators and managers of Humana created for me to perform well below my capabilities?

1.) No matter the effort I put forth, I get paid the same amount. Whether I put forth 400% production or 80% production (of the quota), I get paid the same. Why should I try harder when it doesn't result in any further tangible rewards? This isn't an issue of my &quot;attitude&quot;...it is a simple fact of economics. If I produce more, then I should be rewarded or compensated more. As this does not occur, then I'll meet the expectations they've presented in writing, and stop at that.

(Apparently, we don't even get raises that break the inflationary rate to keep up with our standard of living. So the reasoning that I will get a compensation adjustment in virtue of my production, one that is even remotely proportional to my effective total production, is completely ridiculous.)

2.) My efforts are actually punished. You'd assume that Humana would try and give me &quot;added value&quot; to my work place experience, as an alternative to actually increasing my salary. Instead of added value, I've been treated as the employee that must be doing it all wrong. Ironically, being an overachiever has actually netted me grief and stress (that I wouldn't have had if I had just done the normal amount).

When I was putting up the numbers, literally blowing everyone away on the metrics, management didn't approach me with an open-mind, they merely assumed that my method and performance was flawed. Instead of saying &quot;Good job,&quot; and quitely trying to learn from what I was doing, they just observed with suspicion, practically frowning upon the fact that I broke their mold. I was even shadowed at my desk TWICE! because they didn't believe my production was valid. Albeit, I'm not perfect, and I do make mistakes during work, this doesn't invalidate my overall productivity. You'd think these people would be smart enough to sit down with me, 1 on 1, and ask me what I'm doing and why. Since they obviously can't do this job themselves (which has been made clear to me in a number of ways), don't you think I am in an excellent position to help setup the method by which to complete these calls in a more effective and efficient fashion? Don't you think they could learn from me, and that maybe my skills of methodological innovation could be put to good use? Clearly, it is better to lay low, to do a mediocre job and not take any flak for it.

3.) Socially, I bare the pressure and attitudes of other co-workers who are both envious and stupid, and my supervisor allows this to occur. It is obvious that they are playing politics, and I recieve no benefit from the alienation that occurs through my productivity.

Seriously, why try? I am lost in a see of politics and bereuacracy. It is obvious that my supervisors are retarded, and can't even fulfill their egoist's mission to put up 'the big numbers' effectively. They need what I have, they need me, and they are too stupid to realize it.

Another incentive issue: I have a 2.5-3 hour round trip commute each day. That is 2.5-3 hours that I am not getting paid for, hours spent away from home. I could get paid 12 bucks a day somewhere next to my house and make the same amount of money if I spent as much time away from home there as I do traveling to and fro, and working at Humana.

I do need a new job. Seriously.

Right now, it pays the bills and it covers our needs. My family is provided for...and for that, I cannot complain.
I apologize for not posting in the past week or so...but, I have been thinking and writing. I've also been over at roguespot.com and wowglider.com working away at what I'm going to do in WoW. And, I've been busy reading and considering themanadrain.com's content (as well a one &quot;Smemnen&quot; 's articles which are very well written). k0sh3k and I have even discussed selling my character and botting another back to 70 in 5 weeks (now that I know exactly what to do). Hell, we could even make a business of it...if we got it down pat, and could sell them 1k a piece, I could bot a network at home, and just bot'n'sell accounts all day.

But, eh, for now, I am really enjoying my rogue. I just hit 70, and I might just keep him (especially as Ebay just banned the sale of intangibles).

Mom and Dad's laptop has been stolen...the brand new one I believe. That sucks! They are good otherwise, I'll have to see how their visas are going. Speaking of which, JRE got his passport in the mail...I wonder if he will really stay in Thailand.
There is a general consensus among people, or a movement among those who have taken at least one psychology class, that intelligence and wisdom are two different types of thinking. Usually, people will say that intelligence is a property of mind that encompasses many related mental abilities, such as the capacities to reason, plan, solve problems, think abstractly, comprehend ideas and language, and learn. As for wisdom, people say it is the ability, developed through experience, insight and reflection, to discern truth and exercise good judgment. For a long time I agreed with these distinctions; however, I do not conclude that they are seperate any longer.

I argue that wisdom is actually a subset of intelligence, it is a TYPE of intelligence so to speak. You've certainly heard the phrases &quot;book smart&quot; and &quot;street smart&quot;. You've seen how they've been divided, as if one had nothing to do with the other. While they are distinctly different types of thinking, they are STILL &quot;thinking&quot;, which falls directly into the category of intelligence.

While it isn't necessary to flesh out the full meaning and nature of intelligence, we can at least appreciate that intelligence is generally about thinking. Some people are intelligent in this or that, some people are smarter in math or science, some people are intelligent with words. Intelligence varies. Now, I in no way mean to detract of the relevance or study of intelligence and wisdom. But, we can see that wisdom is just a specific TYPE of thinking. What is wisdom thinking about: morality. Wisdom is simply a question of what one OUGHT to do. This is a specific, and most important type of intelligence.

I demand that we not drift into spiritual or relativistic type arguments. This is a patently obvious truth: wisdom is a subset of intelligence. Wisdom isn't granted by God necessarily... but, the tools to become wiser? yes.

In evaluating how &quot;intelligent&quot; a person is, we must then also take into account their wisdom. Assuming doing the Will of God is the most important thing a person can do, and Willing God's Will is a choice made directly from wise-thinking, then we would argue that wisdom is the most attribute of a person's intelligence.

What does this mean to us? It means that, when we are weighing the importance and impacts of different types of intelligences, wisdom will be the most influential factor to consider. We cannot call someone &quot;smart&quot; unless they are wise.

Is this much different from what other people mean? I think it is. They attempt to divide the two, cognitive/scientific reasoning and wisdom...mostly as a way to show that there is &quot;more to the world than logical thinking.&quot; However, it is clear that wisdom IS a form of logical thinking, a very specific and important type of logical thinking.

We cannot divide wisdom and logic. A truly logical person will be a truly wise person, and vice versa. Does this make me a rationalist? Yes. But, I think the rationalism needs some context.

A being who is omniscient and perfectly intelligent is also a perfectly wise being. That is to say, God knows what is morally right through REASON alone. He has no spirituality about it, He logically deduces the right answers to all things.

Are we, as humans, perfectly intelligent and omniscient beings? No. Thus, we will not successfully deduce all things, and we will not be perfectly wise. This means: man-made institutions and beliefs, in general, as we are not perfectly logical, will not be perfect or perfectly wise. HOWEVER, this does not eliminate the truth that there was the possibility OF a logical deduction.

This of course would bring further questions. How can one be responsible for his actions or thoughts if he were not given the tools to fully accomplish the logic, and subsequentially, the wisdom of God? You can only be responsible for what you possibly could have been responsible for.

Here is where we must apply relative-type thinking (without the heresy of course). A person with down syndrome is a person (we won't deny it). Will they ever have even average intelligence? No. Thus, they won't have average wisdom. What are they judged on? They are judged on the fruits of what they possibly could have logically deduced. If they could only manage the deductions that killing people is wrong, then they will be judged accordingly.

Does this mean we have the right to judge people like this? Without omniscience, we are not in a position to judge so easily. This doesn't mean there isn't a distinct right and wrong in a situation, rather 1.) we ourselves might not know the answer, and 2.) we are limited in our evaluation of another's person moral culpability. However, that doesn't mean we aren't capable of showing obvious stupidity and not.

We should take extra care to point out that the &quot;brilliant&quot; person who is unwise is actually not very intelligent in the end, and, the seemingly &quot;dim-witted&quot; person who is wise, might actually be very intelligent (in virtue of a strong wisdom rating ;P).

It is evident that responsibility scales with our intelligence and freedom to act upon that knowledge. Wisdom is merely a synonym of intelligence in the end (subset, yes, but it points towards the meaning and purpose of our intellect). Intelligence has no purpose outside of what is valuable and what is moral. Intelligence and free will exist in virtue of BEING MORAL.  

We exist to do what is morally right. Speaking in terms of &quot;intelligence&quot; and &quot;wisdom&quot; as seperate concepts is not a constructive distinction, as they exist as the same thing for the same purpose. All choices are moral choices. Smart and wise are the same thing, period.
I’m level 67 at the moment, and  I’ve had a good time. I appreciate how well-crafted TBC has been. Mind you, I don’t run too many quests (until I’m max level, then I’ll probably pick the ones that have good rewards). So, mainly I’ve been grinding. The grind has been just that, a grind. I have leveled faster than I thought I would though.

I was going to level up my ghetto 500ap 3.5khp 16% crit, newly made 60 rogue with a build that could PvP (Hemo build, with weaponswap for daggers…the new 21/8/22 for me at the time). &lt;a href=&quot;http://www.wowhead.com/?talent=ihtfox0oZhZEMss0hRo&quot;&gt;http://www.wowhead.com/?talent=ihtfox0oZhZEMss0hRo&lt;/a&gt;

Of course, when TBC actually came out, I quickly found out that I needed a grinding build, at least until I got some equipment upgrades. So, eventually I decided upon a heavy sub grinding spec…with a twist that has worked out great for me. &lt;a href=&quot;http://www.wowhead.com/?talent=whxboZhbxzZxMjohhRso&quot;&gt;http://www.wowhead.com/?talent=whxboZhbxzZxMjohhRso&lt;/a&gt;. While originally my heavy sub grind build (which has outperformed combat for me while grinding) never had any combat points, I decided to give riposte a test run (I know it was quite powerful when I was combat). To my pleasant surprise, it turned out very well. I found that the AP sacrifices were worth it, especially if and when I got adds. With evasion (which you could pop liberally), fighting multiples was actually pretty easy, considering Setup + multiple parries for riposte, I could mow through adds when I got them.

Now, that I’m slightly more geared, 1100AP + 7k hp + 16% crit, I’ve been having my usual PvP urges. I can’t take it anymore!! When TBC first came out, everyone was all carebear, everyone was grinding, and nobody PvPed or ganked. But, people are human, oh yeah, you know you have those urges too, and they started ganking. The first few I just let go, but after a while I knew I needed revenge. So, as I am frankly tired of grinding, I’ve respecced, hopefully for a final time until 70 (I spend far too much money respeccing), so that I could PvP. Right now I’m using:

&lt;a href=&quot;http://www.wowhead.com/?talent=iheboxooZhZxMjohhRsho&quot;&gt;http://www.wowhead.com/?talent=iheboxooZhZxMjohhRsho&lt;/a&gt;

While it doesn’t sport the weaponswap for daggers, it does keep setup and camo, which are both fun and keep me sane while grinding (I &lt;3 Camo). The build keeps the fundamental combat structure for grinding, but most importantly it gives back my beautiful, wonderful, most exalted Cold Blood. I can certainly feel not having riposte or the extra points in the heavy sub agi/AP talents, but it is SO worth it for me.

Despite previous ill-will towards a certain 31-point talent in the sub tree, especially at pre-61, I’ve grown quite addicted to it as well. Pre-TBC, premed was simply not as good as cold blood. But, now that I can have both, I will sing premeditation’s praises! On the gank, with MoS, Premed-CB-CS-Evisc is a 3k open. They start the fight at 25-40% health inside a CS-lock? Yes, please. Even if premed is substandard for dueling, it is hella’ fun elsewhere, and truly shines for pure rush downs with cold blood (when control doesn’t matter to you).

My zombie-grind mind is now loving the game even more as I come back to PvPing and ganking. Beat a 70 Hunter that opened on me yesterday, and I’ve found paladins MUCH easier to kill, I cut through them like butter. Crack that turtle, and you win. The pleasure of hemo is now that I have a choice: I can burst or I can stunlock as usual.

My favorite improvement for the rogue class has been survivability.

1.)    My HP levels are wonderful (for greens at least). I’m no longer getting 2-shotted by anyone. I can take a few hits, I can take multiples much easier. In both PvE and PvP it is nice to be able to take a few hits. I suspect that at 70 we’ll have to choose between high survivability or high damage in PvE (opting for damage of course). The itemization is obviously setup to split rogues up into highest ap/crit or survivability with some AP. For me, as I’m an HP-whore, I’ll definitely opt for the survivability.

2.)    Cloak of Shadows. While this was very nice pre-TBC, having it trained is just the amazing. I’m actually GLAD they didn’t put this on prep, 1-minute CD for something this powerful is broken. I secretly think this will have to be nerfed. We are officially escape artists. If I’m actually paying attention to my screen, unless I’m stunlocked to death, I am pretty much ungankable. This might be more powerful than prep as far as I am concerned. This is usable in stealth too…totally awesome. Simply a savage ability.

Problems, concerns, etc.

a.)    I have noticed that eviscerates seem lower than usual for me. I used to hit consistently harder (on the same mobs even). But, I’m not complaining about it, the math checks out (as it didn’t before).

b.)    Envenom is lackluster. Nothing new here. I probably won’t be using this ability.

c.)    Weapon itemization is pretty awful for hemo rogues. I’ve yet to see good replacements for my HWL 2.9 MH. I’m wondering if I’m going to be forced into daggers for this reason (or heavens no, forced into imp SS)

d.)    I’m still not fully satisfied with our functionality in groups. Imp sap has been very useful, but beyond that, I feel my role is comparatively not as vital as others, and that my role is crowded by a lot of classes. I realize this the plague of the DPS class, but I think further evaluation of rogue function is necessary.

e.)Â Â Â  Engineering, wtf happened to my beloved engineering?

f.)      Shadowstep still needs a lot of work from where I stand. The opportunity costs aren’t worth it at this point. I’m betting they’ll buff this ability, but until then, I’m not pleased with its performance as a 41 point talent.

Props to:

1.)Â Â Â  Master of Sub: 10% damage is top flight. This, DD and initiative compose the core engine behind sub builds. The more and more I play, the more I appreciate this ability.

2.)    Cold blood. While it probably isn’t as powerful as it once was, dictating crits is so powerful. It’s little brother premed makes it even better, even for PvE! Sap 1, Premed-CS-CB-Evisc-GS number 2, rush down number three, gg? With evasion it gets even better.

3.)Â Â Â  The zonewide PvPish objectives, really a lot of fun, especially for a rogue.

4.)Â Â Â  18-slot bags that are dirt cheap (cost me 10g per bag as I had most of the mats already from grinding).

5.)Â Â Â  More interesting content in PvE and instances.

TBC has really brought me back to loving the rogue class once again. I really love playing a rogue again. I’m even enjoying bits and pieces PvE (and that has been years since I’ve even remotely care about PvE…like, Everquest years ago). Two thumbs up for Blizzard for a high quality expansion.
I’ve been sitting at close to 8.5k hp unbuffed now…1450 AP, 16% crit, and 4% hit, using roughly the same weapons. Any further adjustments to my gear will now require alot more effort, for alot less reward. I am going for a few pieces though. 4-piece assassination set, the Aldor exalted and below gear, and a ring from spirit shards. I want to break, when all is said and done: 9k hp, 1500 AP, 20% crit, 6% hit, with 80 DPS weapons with epic enchants. I’m still not fond of resilience just yet.

My problem has been a lack of good hemo weapons (no slow weapons to speak of). It looks like I’ll be jumping from a 2.9 speed weapon to a 2.6. Even with a 20 DPS gap in the weapons, hemo looks less and less useful. Right now, I hit like a truck. In fact, I’m deceptively powerful wielding old HWL MH. This issue has made me work out the numbers, and I’m considering going sinister strike at this point. Hemo, it appears, will never reach SS damage through the abuse of AP and slow, slow weapons as it once did. Right now, I’m considering 23/5/33. No CS-H-H-KS though, and that sucks. I’ll try it out.

As of right now, I’m botting (need to find a better spot) grinding cash, not for the mount, but to buy aldor rep items. I couldn’t find a suitable place to bot the actual items, so I’m farming motes and selling them to buy the marks/fel arms. I’ll have to look at the market again and evaluate the overpriced and easy to acquire items/motes that will net the greatest cash. I’d prefer in some ways, a distance island of netherstorm where I won’t see anyone, but where it drops mad loot. Hard to find such places as TBC is so crowded. I’m on the edge of Nagrand at the very bottom of the map doing the elementals. Safe and easy.

I am definitely enjoying arena and dueling. I lose very rarely. Druids and paladins are much easier than before. I must say that CB-Prep builds lose some of their appeal as people truly gear up correctly. Most people are still not gearing stamina up enough. When people are catching up to me (which isn’t hard), I’ll find myself having to work for the win a lot more.
Our family had a rough week.

1.) Bathrooms are still acting up. Plumbers have come 4 times (none of us happy about it, they'll get a mouthful if we have to call them again), they told us to use Charmin...dad says to use Scott. I'll trust dad. It is only periodically problematic, and not as big of issue as nothing is going into our bathtub (eww).

2.) k0sh3k had a migraine that lasted for 4 of 5 days (1 day intercession). She was in agony (I felt awful for her). She laid in bed...The baby and I kept quiet, far away from her. She won't let me do anything for her. I can only give her the medicine our doctor gave us (doesn't work though). Beyond medicine, all I can do to help is cover her eyes and keep light out of the room as best as possible. The constant drone-like headache she experiences day in and day out on top of these ever-increasing migraines has me worried. I have no idea what to do--I pray often (not that I expect any results). We are going to the doctor again this Wednesday. I have my personal thoughts concerning the possible causes, or rather the uprising and higher frequency of these headaches, but I'm not a doctor, so I'll keep them to myself for now.

3.) I somehow managed to hit the curb (again, *sigh) with my vehicle. This time I dented the wheel. I thought, as the Kia is so light that I may have actually damage the body/frame/axel (doesn't take much to ruin a Kia). We were without a vehicle, and k0sh3k was incapacitated. Claudia and Joe? generously gave us a beat-up old Lincoln to use. That thing is a boat on wheels, a monster if I ever saw one. It worked for a few days. On k0sh3k's one-day without a migraine, we managed to get the Kia to Charlie's with a note (after having called them as well), and drove back to the house in the boat (happy sailing). Then, the battery died in the boat. I charged it up several times, but that battery is dead, dead beyond dead. I missed 3 days of work. I ended up caving in, I rented for 48 hours, cost me 170 dollars. I grabbed a ride home from Janet. That day (Friday), Charlie called and said that the store sent him the wrong part and that it would be another week before we could get our vehicle back. The next day I worked to see what I could do for another vehicle. Luckily, Claudia and Joe came to replace the battery  that day (they were unable to come all week...).

4.) Amidst this whirlwind, while I was going to fill up the gas tank, I somehow managed to rip a deep gash into my thumb. We went to the hospital because it looked like it needed stitches (and it probably did). But, the line was too long, and I had coagulated quite effectively, so we just went home. We cleaned it ritually, and bandaged it often.

Oh yeah, JRE was over last weekend too. But, that isn't a bad thing.

Anyways, it is Monday morning of the next week, I'm at work, and I'm glad last week is over. The boat works, the Kia is getting fixed, my thumb is doing much better, k0sh3k has yet another doctor's appointment on Wednesday, we're giving a speech about how Mom'n'Dad are doing in Thailand to the prison -church, and unfortunately k0sh3k is feeling another migraine coming on. God bless her. Lucky for us, finances aren't a problem, we have health and auto insurance, we have people that look out for us, we have tons of food stocked, and we have a warm house to live in...plus, we found out that j3d1h adores kidney beans (I'll buy her anything she wants...! don't tell her that though).
We got the car fixed, or so we thought... during a 1-2 hour traffice jam smoke start billowing out of the hood. Well, not hugely, but I noticed it early. I pulled over, popped the hood, heard a sizzle and smelled a foul odor. It came from the coolant area...I was not pleased. The car had just been checked by the mechanic and we had just (days before) changed out our fluids. We shouldn't have had a problem, and needless to say I was not pleased.

It doesn't seem like it was a big deal though. I got to a gas station, but the engine was fine. No more smoke, and the car never overheated. I have no idea what it could be. I'll get the fluids checked again per Charlie's advice over the phone.....

On another car note or two: Claudia has been beyond generous and is lending the car to us until further notice...or until we get another car. Hopefully we'll find one we like by this weekend, but eh, we have time. I hope they come to dinner with us...although, I have no idea what we'll be making for them. I'm sure we'll have fun either way.

Baby girl had a very odd rash, more like bumps all over her body. It cleared up, so we won't take her to the doctor (saving me money, my little girl...how wonderful).

We bought j3d1h a bed! Zomg, I feel old or something, or I don't know, mixed emotions. She is growing up for sure. She still isn't keen on the bed, it is more like a trampoline to her, and way to peer out the window. She is sleeping about 3-4 hours less per day because of that bed. But, that is okay, she needs to get used to sleeping in a bed. It is very weird to put her in bed and really &quot;tuck her in&quot;. When I put her down during the daytime, and when she is sleepy (the only time I even consider putting her to bed), she will pull the covers over her eyes and turn over on her side to goto sleep. It is precious. Even better, we leave the doors open and the bathroom light on for her. When she wakes up, she gets out of bed, walks through the house to our side, and wakes us up (well, k0sh3k up for the most part, I sleep like a rock unless I hear a scream that matters).

Told my supervisor at work that I didn't feel I had incentive to do any more work that the quota. He agreed. He said as long as I meet the quote then he will be satisfied. I'll meet the quota.

I haven't heard from JRE (he never uses a phone). So, I have no word on him or his G/F, or his plans for Thailand or what not. That's okay, it is a happy-go-lucky time for him. I will not spoil it, but I will write an email and see if he needs anything (punk won't let me buy him groceries, clothes or anything...wtf, free money?...and I BADGER the kid about it--next time I'll just go buy it and force him to take it).

Anniversay is tomorrow...I have nothing special. Dinner and a card.

k0sh3k had 9 cavities, 4 were drilled. She has so much drug tolerance that the maximum Novacaine doses didn't touch her. They made he sit through it even when it hurt....I would have done it, but it was up to her. Her jaw is still hurting. I'm not much of a dentist person...maybe if it is free (although, I have preventative dental coverage).
Rogue is slowing progressing. I got some x-52 pilot pants and the 30stam/10agi enchant for it. Picked up a really awful looking Helm of the Claw, threw a crafted running speed 24AP meta gem in there (had to use an orange gem for the effect) so I have +12 stam on boots. I did get my Vindicator’s brand (sweet) and the r14 pvP gloves for the kickilicious deadly throw now.

I need 5kg for a mount, and this is rough to get. I had to glide for marks/fels, and I used a SWEET tunnel in BEMountains for it. It is so good, and so bottable, that I grabbed two demonslayer enchants (hard to come by now and days) and I’ve been there ever since. Hopefully I’ll have the cash in 2 more weeks of botting. It all depends on how well marks/fel arms will sell. I could easily be sitting of 500 and 50 of those. We’ll see.

My dueling guide has progressed. I still need to write a few more sections, and then I’ll be done. I want to make sure I’ve got all the fights down correctly. The paladin fight is the one I have the least experience with, but I’ve had plenty more experience now that I am back on a PvP server and Horde also have pallies now.

The hourglass of the unraveller really sucks. It is simply overrated. At a 20% chance to crit, I’ll have a 2% chance to proc it. 300AP for 10 seconds. There are alot of problems with it…With resilience and defense it gets even worse. Certainly a dagger rogue’s item at best.

I’m going for the Ring that costs 50 Spirit shards and a better chest slot in the short term.

Long term–Gladiator’s gear.

Zombienoir and I have been pwning up the 2v2’s pretty well…although we’ve had a 50/50 streak as of late (zombie wasn’t really on the ball that night).
Every rogue, regardless of gear, can excel in PvP and dueling (some more than others), and I hope to demonstrate that fact with this strategy guide. The guide is not written for the most well-equipped rogue in the world. I’m not expecting anyone to have 10k hp with 300 resilience. You should be breaking a basic 7.5-8k hp though, and you should be attempting to bring HP (and resilience) as high as possible without incurring massive opportunity costs in the AP/Crit/Hit department. Your gear doesn’t necessarily reflect the quality of your playskill, and the rogue class, fortuitously, can be quite fruitful simply through tactful play because we are not as gear reliant, to some extent, as other classes.

Why write to the average rogue?

Simply because it is the average rogue who has the most to gain from strategic play. While the extremely well equipped can win in virtue of their gear, rather than their skill, the average rogue is relies upon themselves a lot more than their gear to defeat opponent. The average rogue is not well equipped. But, as I said, the rogue class is quite linear, which is tied to our innate abilities (although we scale with gear to some extent, we aren’t as proportionally reliant upon our gear as other classes). A rogue can do well even without great gear; we simply become that much stronger with each item and buff we use to enhance ourselves (conversely, we become proportionally weaker as gear inflates). In any case, we can still be useful without full epics, but a rogue in full epics is very capable of winning matches without playing correctly.

Admittedly, I’m tired of gear doing most of the work for people (their time played does not equate to skill or justification for a win condition)–I want to see what you can do without that gear (thankfully TBC gave us some opportunity for this). Although we are already seeing a divergence in itemization as spread across the population, even properly used green gear can allow you to compete with those in full epics. If you are still wearing greens and blues, then you will have a lot to gain from following some of the steps I’ve outlined. As for the full epic rogues taking on people in greens/blues, that really doesn’t show skill, nor does it require the same degree of tactics in most cases. The guide isn’t for you if you simply outgear your opponents to an extent that playing correctly doesn’t matter. The test of a well played rogue is best found when he takes on skilled players with greater gear than him, winning even when the odds are actually against him. Eventually, every person will meet their match, and it is at that point that your choices and tactics matter the most. So, even full epic rogues may want to pay attention.

Essentially, to some rogues who either outgear their opponent completely or fight stupid opponents, going “all-out” so to speak, and maximizing the potential of their character isn’t necessary. That’s fine. You can always scale your efforts back. But, this does not negate the need to know howto make the most of your character when the time comes that you meet an opponent(s) who is just as (or even more) skilled and/or equipped than you. Making the most of your character is the point of this guide, not “how to defeat noobies”. I will be describing “all-out” strategies, but I will certainly admit that against most opponents you won’t need to go “all-out”.

I’ve detailed fights assuming pretty basic gear so that all rogues can make use of it. I’ll treat each opponent as hostile and as a maximally problematic to our situation as possible, generating a strategy that is designed to defeat an opponent when the odds are least in your favor and you wish to win by the largest margin possible. The tactics outlined are good enough that you can win the majority of fights outside of IF or Org with a level 1 dagger (seriously, go try it out); you can win in spite of your gear rather than in virtue of your gear. Having gear simply means that the fights are that much easier for you. This means that most of your fights will never require this much work. Good for you! This doesn’t diminish the point of the guide though, you’ll still meet people who will require every once of your ability.

Why play to maximize your character’s potential?

Play to win. It is pretty simple. This doesn’t mean you can’t brainfart or dink around. But, when you are serious about playing, you are playing to win. And, in the end, the winners will be those who maximized their character’s potential. If you are playing to win, then you are going to make choices that give you the best chance of winning, often by the largest margin.

For the rogue, this issue of winning without using the strategy with highest probability of winning often comes up into play in consideration of the use of cooldowns. Not using cooldowns means you aren’t maximizing your characters potential. If you have a problem with using cooldowns at all (i.e. playing your class to its best), then this guide isn’t for you. Generally, almost every fight against a skilled player in equal gear requires the use of CD’s for the rogue. Rogues that brag they don’t need CDs to win either completely outgear their opponents or simply fight stupid opponents. While I’m not saying you’ll use all of your CD’s in each fight, it is a fact of life as a rogue that we’ll be using our CD’s not just to overcome gear inequalities or higher quantities of opponents, but also to beat well-played classes with even comparable gear to yours. Using those CD’s and specific builds to their maximum efficiency is a concern though. This guide assumes you don’t have a problem using CDs. Hopefully, with the trains of thought presented, you’ll be in a position to tailor your playstyle and tactics to your particular opponent(s).

Lastly, this guide is more than just useful in the context of duels, it is useful for pretty much all PvP situations. Even if I only layed the groundwork in a 1v1 context, the contents of the guide are applicable to all PvP contexts. The fact is: you simply can’t be a good PvPer without being a good duelist. And, yes, I know, I know, it has long been the opinion of Blizzard and of many WoW players that “PvP is not based or balanced around 1v1 matchups”. This is a myth, and something fabricated by people too lazy to do the math. This concept just shows the incompetence of Blizzard devs and the masses that blindly accept the garbage fed to them. All encounters are based upon the 1v1 matchups. The very equation used to understand how and why people win in any encounter requires a clear analysis of all individuals’ offense/defense ratios in relation to their opponents’, specifically an evaluation of the 1v1 matchups, including the metagame that proceeds from the initial 1v1 rulesets. The following guide is an insight into the rogue classes 1v1 matchups directly, but it also demonstrates the required thought process to be an effective PvPer in any circumstance, including world PvP, group PvP, BG’s and arenas. To those who disagree, then I ask you to go no further. You need context to begin playing your rogue to his fullest potential, so please read these first:

Back to Basics:
http://www.hypercynic.com/?p=26

Slightly dated, it still remains true in many respects. Most importantly, the principles are fundamental to understanding MMO gaming. Luckily, the context is in regards to the rogue class itself. Here you’ll see the math behind why PvP –must- be balanced around 1v1.

Form of Gaming:
http://www.hypercynic.com/?p=8

A good starting place for those who need to know what a game really is in the first place, why players make decisions they do and how they make them. It is a defense of underlying claims made thus far.

Hopefully, these will give you some context as to why we must be concerned with our 1v1 matchups.

Moving on, for the dueling guide, I’ll be assuming 30/0/31 or 23/3/35. These specs are really made for 1v1 fights and expending a great deal of resources in a short deal of time to briefly bring our offense/defense ratios to a very high level. Assuming you are serious about dueling, or even PvP in general, you’ll want to consider these specs above all others…with that said, you can easily adapt the tactics to whatever your build may be using. I’ve seen plenty of rogues do fine in general play with mutilate or combat. But, without question, these are not dueling speccs, and they are hard pressed to be the most viable PvP speccs until we hit the very organized group PvP scene where sustained damage becomes a large factor.
30/0/31-Daggers

The premier dagger PvP spec, it is extremely well-rounded in a PvP context; think of it as the new 21/8/22. It has the highest burst damage in the game. MoSub + Serrated Blades + Imp Eviscerate for a Premed-Ambush (usually crit)-CB-Eviscerate means a rogue can nearly two shot a poorly-equipped player and puts serious pressure on all casters. While it can burst very well, it can also stunlock quite effectively. High crit rating abuses SF quite well. You’ll need an excellent MH dagger.

Feel free to pickup hemo on your way to 31 in sub. You can weaponswap (even during combat). I suggest this, as stunlocking is still best done with a sword (and it always will be). A rogue that isn’t weaponswapping really isn’t using this build to its fullest potential. Once you get used to it, it will be very easy for you.

Example Stunlocks:

Sword (or alike)= CS-H-G-KS-H-H
Dagger=CS-BS-KS-BS
Combination (using weaponswap)=CS-H-G-Swap to dagger-KS-BS-BS

Example Burst:

Premed-Ambush-CB-Evisc

With relentless and 4-piece assassination, you can probably BS at the very end of that burst most of the time.

This is a versatile spec with arguably the highest possible combo point generation available within a very short time frame. It can burst or stunlock, dagger or sword…it has options. You’ll miss imp gouge, but the SF gains are well worth it for those who can break 20% crit.
23/3/35-Hemo

Even with only 2.6 and 2.7 speed weapons available, this is still a viable spec. I remain convinced hemo is still the best dueling spec available. It has the most robust control, solid damage, and is guaranteed to have all the PvP sub talents (unlike dagger-sub specs). Stunlocking is not only viable, but necessary. Bursting down opponents in duels, with zero regard for control, has become a thing of the past. Burst DPS is still very important, but control has become more and more a central theme of rogue PvP and is the very center of the rogue duel (hemo has both burst and control). While dagger specs are extremely powerful, they do lack the ultimate control of a hemo build. And, as we see itemization scaling up yet again, hemo will become better and better. Where rogues can currently afford to not control a fight from start to finish, allowing gaps and what not, eventually non-linear classes that scale even better with gear than the rogue will become powerful enough that heavy CD’s and stronger control will become necessary. At any gear level, hemo has it where it counts for dueling. Excluding the mage matchup, where other builds fail in a duel, this one will win.

Beyond HP, concentration on AP and +hit is vital. Your crit rating, while important, means far less to you than making sure every special hits and that you can abuse the anormalized Hemo/GS hit. For Pete’s sake, be sure to macro GS/Hemo on the same key. Arguments about saving GS (in PvP) for the dodge is nearly irrelevant in all cases. You want the damage now, and you want 25% more damage than hemo for 5e whenever you can get it.

Example Stunlocks:

CS-GS-G-KS-H-H

From here you have 65e to use. Blind, gouge-Evisc, or Hemo are all acceptable in different situations. It is the second strongest no-CD stunlock. It is also quite adapatable, CS-H-H-KS or with 4x Assassination set CS-H-H-Eviscerate are good as well.

Example Burst:

Premed-CS-(check for 5 points, H/GS if it isn’t at 5)-CB-Evisc-H-

From here, you can gouge or hemo, and then follow with KS, blind, just follow through on the beatdown, or if you timed it well, gouge-restealth. Remember that the server checks OOC on each energy tick, and it takes 2 ticks before you can OOC, so gouging right before an energy tick (and you have 3 usually with imp gouge) can buy you a restealth before the end of gouge.

Combat Mace/Sword/Fist (huge variances 11+/31+/0+ requisite):

So far considered the highest potential damage per minute available. This sports some crazy good non-stealth based damage. What makes combat really viable in PvP beyond the sheer damage: imp kick, imp sprint, SA, BF, and AR. The loss of prep is combated (haha) by improvements to kick and sprint. In my opinion, mace rogues utilize this tree the best in PvP, as the best combat weapons available are hasted maces, and the stun proc is very relevant; even if the stun procs require adaptation, they can do some amazing things in PvP. Combat fists should not be overlooked either, it is consistent damage.

Learning howto create and identify situations in which it is most effective to blow AR/BF can be difficult to a newcomer, but otherwise this is a pretty straightfoward spec. While it might have less bells’n'whistles, its heavy sustained damage is a force to reckon with. Admittedly, this spec is not the best PvP spec overall, but it has become more viable in sustained damage fights (certain 5v5 arena fights, etc.). But, with the right gear (and you will need major gear to be using this spec in PvP), your rogue can turn into an outright monster on the field.

I really only recommend this build in PvP to those who are very, very well equipped and also with a team of people who can support you out of stealth. This really isn’t going to be a top dueling spec, but I certainly expect to see combat specs in 5v5 arenas.
Mutilate- 41/0/20 or 41/20/0 or 41/3/17

Be sure to have some nice and slow daggers!

Whether combat or sub, this is the most clear-cut build to play. When playing against poorly played and equipped players this is a very strong spec, and you can often kill people before the end of KS. But, as gear inflates, and the rogue loses his proportionate gear advantages as people move from green to blue to epic, this spec loses some viability in PvP, especially in consideration of the opportunity cost of not having a 30/0/31. It lacks control beyond the initial stunlock round, but it has, without question, the strongest single stunlock round in the game.

CS-Mut-KS-Mut (or CB-Mut)

This is standard, easy and powerful. Another problem this is with anti-poison targets/measures, alongside the issues of having high energy and poison investment which does not lend this build to switching targets as effectively as other builds, but it certainly puts up some impressive numbers regardless. In honesty, it is a build that is best fit for those who are:

1.) Doing 3v3 and 5v5 arena
2.) Aren’t speccing to PvP/duel exclusively, and prefer to have a spec that does well in both PvE and PvP.
3.) or even simply newer to the rogue class (or if not new, simply not very skilled)—this is an easier spec to play as it has much fewer choices to make.

Generally, if you are a very serious dagger PvP rogue, stick to 30/0/31 (the only exception would be for 5v5 arena). This is a build that I consider more viable for dueling purposes than pure combat, but is still strictly worse than a 23+/0+/23+ CB/Prep build.
Warrior-

The class everyone is trying to beat. All classes are crafted as a response to this one. Pound for pound, nobody can truly toe-to-toe with a warrior. It has long been the case that a rogue cannot stand up and trade hits with a warrior. Sure, you can evasion and rush down to some extent (combat spec does best at this), but even then, a warrior played correctly will still beat you if all you did was toe-to-toe. Everyone must control the PvP-specced warrior in some fashion, including the rogue (regardless of build).

A PvP-specced warrior will be MS + a minor in Fury to pickup Deathwish and Imp Intercept. They are a force to reckon with. They have high rage generation (even after normalization), outlets to spend it, tools to prevent kiting, and they will continue to progress in power as they effectively scale with the inflating itemization. Personally, I have found that I have less and less room for error against this class. This is the fight of patience and finesse–Going kamikaze will get you killed.

Even as mitigation levels have dropped across the board after the expansion (due to itemization and leveling), you will still be hindered by their massive hp/armor defenses. Because of their defenses, in a duel, a rogue should initially be using DoT abilities (wisely) to atleast let them open on a warrior with 60% health instead of 100%. You will use a combination of DoT-kiting and stunlock to beat any warrior that is geared, specced, and played correctly.

Your initial open should not be CS. We used to stunlock, build 5-combo points and 5-8 kite–you know, the old unload while stunned and deadzone kite otherwise. Sometimes we could deadzone kite for a restealth (shout keeps us in combat, and they certainly know to do this), but mostly we’d 5-8 to get our energy back up and unload on a KS from behind (as we jump through them). Even if the tactic still retains some use even now, the old 5-8 days are generally over against a skilled warrior. They will always get the intercept. If you play against a pro, be prepared to reap the whirlwind (haha) if you do nothing but 5-8 kite…this is NOT a zero-CD fight against a good warrior. But, sometimes your options are limited, by all means use the 5-8 tactic when applicable and necessary, and do remember to stay closer to 5 than to 8.

Lastly, the introduction of the second wind talent makes long-term stunlocking less appealing, as both health and rage generation can be extremely dangerous. When we are stunlocking a warrior, we need to win quickly. The more stuns we land, the more rage+health a warrior will gain over the course of a fight. As in many matchups, the longer the actual combat duration, the more likely our opponent, the warrior in this case, is going to win. Chain stunning just gives them juice. You cannot accept this. Your objective is to build up resources to a high threshold through a few pre-combat tactics and DoT-Kiting, without the warrior gaining hp or rage advantages, and then unloading all at once inside a single stunlock round.
Step 1–Poison of Choice

It goes without saying (but I will anyway), Crippling Poison is required. Gouge, sap, and blind are too important to dare use deadly poison. Some who wish to risk it may try 1x Instant + 1x Crippling on either hand (as you can shiv). But, usually it is best to just keep them snared at all times, even at the sacrifice of some damage (control is everything).

Step 2–Generating pre-open combo points, the “combo point kite”.

Remember that this is a duel. Your opponent already has a huge advantage in simply knowing that you are there–thus, our stealthy element of surprise, a distinctive advantage we have in most world PvP situations, is gone. But, that doesn’t mean we can’t use stealth to its fullest advantage, even in the warrior fight. I am of the belief that you should take advantage of everything in your arsenal in a duel, even if it seems “cheap” to an opponent. That means I do use psychological warfare, for example I might wait 15 seconds before opening just to frustrate my opponent, and it also means I use tactics that might be less-than-useful outside of a dueling context. One advantage that we don’t use enough is the ability to sap/CS. Sure it is cheap, but c’mon people, that is why they call it “Cheapshot”, this is part of the class. So, if you are serious about winning duels against the best, expect to use pre-combat tactics to generate small advantages in your favor, especially as you’ve already sacrificed your element of surprise. When you and some warrior are the last people standing in an arena match, you’ll be thinking the same thing.

Your opener is a cheap way to gain a small advantage that can make a big difference in the end. On every warrior you ever duel, you should open with Imp sap and attempt to CS through sap. Do it carefully of course! I don’t care if you have premed, if you have Imp sap, you should always at least try it once against a warrior. The majority of warriors in this game will not berserker rage out of sap, primarily because they are saving it for gouge. Some will be slick by zerker raging and will try to shout you out, but if you are good, you’ll be far enough away that it won’t matter. Just run in for the sap, and run out quickly. See how the warrior reacts (he is your specimen to dissect while you are in stealth). If the warrior BR’s (berserker rage) out of sap, then stay far enough away and watch your castbar. After BR and sap-DR (diminishing return) is up, go for it again while his BR is on CD. Eventually, you should get your initial points, and these DO matter (as well as to annoy and/or psych your opponent out). So, get your sap/CS (remember to CS without breaking sap!), and flat run away. Go for your restealth (camo helps if you have it).

If this takes too long for you, or you have a build without Imp sap, then you can also forget the sap and just CS and run (but beware a warrior that is going to trinket CS and intercept you). Minor run speed helps here, just make sure you CS at max range and immediately start running, you can get your restealth, and it is worth every penny. Just remember to save yourself room so you don’t stray to far away from the flag.

For those who will not be sap/CSing, then just premed right here. No, it isn’t as effective, and yes, after your upcoming vanish you may wish you had that premed to burn for your real open. But, in some cases, for example due to time constraints, premed can be the best option. If you don’t wish to sap/CS for some reason, then premed is definitely a solid replacement.

Step 3–The DoT Kite.

You should be starting this fight at 2-5 combo points (depending on your build and how many times you sap/CSed). What do you do now? You want to garrote+rupture and get back into stealth asap; let that sucka’ bleed while you wait to go in for the kill. To start, make sure the warrior has no rage, sprint in from behind, and start spamming garrote, which should put you have 5 points, immediately rupture, run off and vanish (throw in a shiv if possible, but not at the cost of getting bled). Be quick about it! You really don’t want to eat a bleed effect, use a Luffa if you need. In fact, you may even want to use a macro that spams garrote in stealth and rupture out of stealth. Be sure to be out of range of shout as well.

A Garrote + 5-point Rupture (especially with talents) will bring most warriors to 60-65% by the end of those DoTs (especially with Berserker stance). Your job, during the DoT kite is to prevent the turtle. A good warrior will attempt to regain that health back. This happens through eating and/or bandaging during and after DoT effects, also through limiting damage taken by going into defensive stance. Crippling poison does an excellent job of preventing them from escaping to fully turtle, so use your your remaining sprint wisely. At no time should you allow them to eat/bandage or mount up (as they’ll run away to eat/bandage). If you wish, and you want to end it quickly, as you can even help prevent spirit regeneration from going OOC, you can vanish, wait a moment and goto the next phase of this fight without waiting the full duration of the DoT’s.

Step 4–The Stunlock: rushdown, busting the trinket, and abusing his stances.

The stunlock can vary on the stance of the warrior. Stance dancing is a part of life as a warrior, and it calls for adjustments in our playstyle as well. The most important part of the stunlock is this: it should not last long. You are opening on a warrior with 60-65% health, a bit of rage, who dearly wants to heal up before you open. You don’t want to give them a chance to heal, nor do you want them to in anyway benefit from the use of a trinket or second wind. Make it short and sweet.

Defensive– They mean to tank you (and yes, they can with major gear). Eviscerate is acceptable depending on the warrior’s gear, but KS is a much stronger route. Go heavy stunlock. Gouge is a very potent tool in this circumstance as well, so use it wisely. Watch for disarm. Remember they can’t charge or intercept, so kiting can be easy here, just watch for the stance dance.

If the warrior is in defensive stance, then you’ll want to try (if possible) to wait for the very end of the DoTs before you reopen so that you can use gouge effectively. Gouge is a powerful tool, and it punishes non-zerker stances. It can give you a restealth, energy, a combo point, positioning, time to wear-off bleeds/MS effects/hamstring, and even a quick bandage.

Dealing with the PvP trinket can be a pain (some don’t wear it, but they certainly should). You really want the defensive warrior to trinket on CS so you can follow up with KS. But, assuming he is a good warrior, he will save that trinket for KS. Follow up with a gouge on his trinket or blind him, and go for your restealth. Do not lose control of this fight. Get your restealth, and he loses right here…restealthing against the tank warriors is imperitive. 5-8 kiting into a restealth is common right here.

Berserker–The most common stance I find a warrior at this stage of the fight. While you can’t effectively gouge, he takes a truck-load of damage–Rush him down within a stunlock. Post-DoT-kite, I often Premed-CS-CB-Evisc-GS to 10-30% and Evasion tank him down. But, do remember: If he isn’t stunned, and you are in melee range, then you should have evasion on. The trinket doesn’t matter much here. The majority of your damage has already been dealt via DoT’s+CB-eviscerate, so it looks more like a 10-30% warrior vs 100% rogue…Of course, use your stunlock component’s wisely, there is no reason to eat a 2.5k MS if you can just pin him down. Standard stunlocks, minus gouge, are perfectly acceptable. If the warrior BR’s early, then KS, unload and gouge out for a restealth. Blind is always up if it gets ugly.

Battle–He aims to bleed and overpower you down, but he makes himself vulnerable to a rushdown AND gouge. I rarely see warriors jump into this stance at this point in the fight, but I punish them with both a rushdown and gouge. Easy restealth, 2nd real open…he won’t come back.

In any case, know the stance your warrior is in, and be ready to fight differently according to each stance.

Tips:

a.) Intimidating shout–Trinket/WotF this immediately. You should be fully ready to trinket on Intim-shout at all times.

b.) Keep evasion up at all times against warriors not controlled by your stuns/incapacitate/disorient or stealth effects (yes, stealth is a form of control). It kills their rage generation, negates the majority of their damage, sometimes forces a stance dance, begs their intimidating shout, and serves as a gateway to other control functions of a rogue. Evasion gives you a brief window in which your offense/defense ratio is equivalent to theirs, use it wisely and often.

c.) When in doubt, blind. Even if you feel like it is “too early” in the fight. This is your ‘oh shit!’ key. Against dwarves, if they refuse to stoneform out of your crippling, then you are SoLuck (although it buys you a second or two, which CAN matter).

d.) Prepare yourself for trinkets and stun resists. Gouge, KS, Vanish, Blind, Evasion, Bugging the intercept, and 5-8 kiting can all be appropriate responses. Even sprinting away after being newly intercepted but not Hamstringed can be powerful. Every warrior will have stun resist, not all will have trinket at the ready.

e.) Watch your timers judiciously. If you saw them misstep by popping BR too early, and you see a gap to use it, then capitalize off it.

f.) Watch for last stand and life giving type abilities as usual, especially in arenas. This is the instant turtle, and the gap that many rogues aren’t prepared for. It counteracts a rogue going “all-out”, and punishes us for sacrificing future resources just to get the win “now”. In my opinion, you really want to outlast these effects rather than DPS through them. But, at no time can you afford for the warrior to heal or turtle. Roll with the punches on this one.

g.) Bugging the intercept. Basically, if you circle-strafe a warrior who is crippled poisoned, when they intercept, it will often send them in the wrong direction. The intercept stun will wear off, and you will get a restealth.

Summary:

1.) sap/CS (or premed)
2.) Sprint-Garrote-(Shiv if possible, and if necessary for 5th point)-Rupture-Vanish
3.) Prevent turtle
4.) Open appropriately on stance, generally premed-CS-CB-Evisc-Evasion
5.) Restealth when possible and if necessary.

Overall, this fight is one of finesse. You build up your resources and overtake them in a fell swoop. In a fair fight, a rogue should be winning this matchup the majority of the time.

Paladin-

The ultimate turtle, both in solo and grouping. While they can be defeated solo, they are without question the best counter to a rogue in group PvP. They (or their teammate of choosing) simply cannot be “rushed” down in the same way that any other class in the game can. Given time, we can certainly win this fight even against the best paladins. The drop in mitigation levels, changes in speccs and itemization, and a few rogue changes have made this class much easier to deal with.

Paladins will be aiming to outlast you in some sense. How long they wish to turtle is dependant upon their build. Some builds deal way more damage than others, and will often rush you down and use very minor turtles to beat you, for example a ret pally might use his HoJ to be dealing some damage to you rather than using it entirely for healing. On the flip side, holy paladins lack damage but have excellent healing. They are more apt to use HoJ to heal up and to play the outlast game against you. Overall though, this class has become much easier for the basic rogue, and thus far, the matchup is less gear reliant on the rogue’s end than it used to be.

Like the druid, this class has very high turtle-potential, a potential that most pallies you’ll meet simple won’t reach. The general abilities we should be considering:

Hammer of Justice- 6 second stun, 1 minute cooldown. It provides ample tempo advantages every minute to a skilled paladin. A combination of heals and damage can be used during an HoJ. It can also be the creation or elimination of a kite. Silence effects, stuns and CoS provide temporary prevention of this spell, however, good paladins anticipate and work around our counters. It is one of the strongest spells in the game as fast as I’m concerned. While paladins can no longer heal to full in a single heal, HoJ gives them longevity. Most paladins fail to burn this CD every time it comes up….

The Bubbles—Absolute immunity from a rogue’s damage, what a strong counter to our class in so many situations! Combined with healing, these bubbles are generally the core turtle-engine of the paladin. HoJ and repentance are good, but they simply don’t compare to the absolutist impact of true immunity. A paladin can bubble through everything in a rogue’s arsenal. There are two bubbles:

Divine Shield-12 seconds of immunity. 5-min CD. Nothing you can do.
Blessing of Protection-10 seconds immunity from physical damage, 5 minute CD. This can be blinded (pray he isn’t a dwarf with half a brain).

BoP can be countered with a blind, but stoneform counters it. Bubbles give a rogue the time to restealth and/or heal up. Sprint, bandage, restealth, sap, eat or some combination thereof can get your health back up. Even just flat running off to bandage-restealth can be fine. Match his healing with your own. This is a war of attrition folks. Do notice that all bubbles have 5-min CD’s, and that they have the “Forbearance” debuff applied to them, which lasts for one minute, preventing them from bubbling again. Good paladins have the means to live another minute beyond their first bubble when played correctly, so expect at least 2 bubbles in a fight.

Laying of Hands- 100% of paladins health + 900mana restored, 60 minute cooldown. When a paladin goes all out, this just makes them all the harder to defeat. A dominant spell.

Repentance—A 6 second incapacitate (like gouge, only sexier and ranged) with a 1 minute CD. 31-point ret talent.

Blessing of Freedom—Immunity from movement impairing effects

Consecration-Point blank AE around paladin. Rank 1 is spammed every 8 seconds. A mod to show the ticks would be nice if anyone wants to make one. It can deny a rogue open. If you are that worried, then just CoS through it.

The proper rotation of these abilities can make life rough for a rogue. It is really not simple to defeat a paladin that uses their abilities to turtle to a maximum extent, although you’ll rarely meet paladins that really play perfectly. Most of the time they won’t be too difficult for you to defeat. You’ll break the initial turtle and win on the spot or drain his mana through tit-for-tat measures, and he’ll lose the game. Wound poison puts huge pressure on their mana and CD’s as they are unable to heal as effectively. Less healing means they have will have to blow more CDs to cast more wounded heals. More heals used means more mana burned. This is good as it eliminates the long term use of HoJ, Repentance, Bubbles, and spirit regen to overcome us.

Speccs you’ll face:

Retadin (approx: 44 ret / 17 holy)—Damage specced, Often noobs (no offense). Big numbers. They’ll often go rushdown on you, and with enough gear, they can make it hurt. While they can deal good damage, these guys also take a lot of damage. Survive their initial assault and you’ll come back on them. At maximal gear levels, ret pallies will be our hardest matchup.

Holy (approx: 47 holy / 14 prot)—Healing specced. A great turtle; crap for damage though. Run his mana dry and you win.

Protection (approx:13 Holy / 41 Prot / 7 Ret)—Not a terrible spec. Heavy damage shields, and those DO add up (sit and parse it if you don’t believe me). Decent damage.

Differences in the builds can change the fight slightly, but the same tactic will remain the same. Force his CD’s as early as possible, heal up if necessary, and kill him before he can CD into another turtle-round. Paladins won’t be healing us to death for now, and they have, at equal gear, great difficulty in taking out even 50%+ of our health in a single HoJ. Paladin healing, damage, and mitigation are proportionally much lower in TBC (this is due to low end itemization at this point).

Step 1—The open, forcing the bubble early within a softlock.

Wound MH, Crippling OH. Shiv when you need to kite. Watch his Consecration spamming. You might even catch him off it for a sap/CS (yeah, he can break with a bubble…but that would be awesome!).

Premed and charge in for the open, n52 spamming is excellent for spamming the open through consecration. For this fight, control only matters in eliminating the paladin’s ability to turtle, you don’t care so much about his offensive abilities, with the exception of HoJ/Repentance. The virtual tempo advantages of Cheapshot aren’t as useful here because we aren’t concerned with a paladin’s damage as much as we are concerned with simply forcing a bubble. With that in mind, garrote is simply a better open on a paladin. It silences for 3 seconds and deals some damage in itself as opposed to “allowing” us to damage to paladin within the protective hedge of a stun. A silence will be almost as effective as a stun in this portion of the fight, and coupled with garrote’s cheaper cost and damage it is the better choice.

If you can catch him off consecration spam, or you want to CoS through consec, you can generate precombat points generated through sap/CS, it should look something like this:

Sap/CS-wait for DR-Garrote-Rupture or CB-Evisc-CoS-Yellow

If you don’t go for precombat points, then use:

Premed-Garrote-Yellow-Rupture or CB-Evisc-CoS

The whole point of the opener is to setup for a lethal rushdown while minimizing the effectiveness of non-bubble abilities. Keeping him silenced and CoSing eliminate the utility of HoJ/Rep. Remember to connect Garrote-CoS, there can be no lapse. Most pallies will be spamming HoJ right off the bat, so avoiding it means you can put heavy pressure on them to force a bubble because they can’t HoJ/Rep for a heal.

It is worth considering the use of CB-eviscerate instead of rupture. Against a large portion of the paladin population, CB-Eviscerate will down them to 40% so quickly that they’ll be in dire need of a bubble. On the flip side, cold blood offers an excellent tool to combo out within a stunlock. If for some reason they get low on health, CB can let you beat them right there. This is up to you, both rupture and eviscerate are good options.

In any case, you want to deal major damage and apply 5 wound poison within the first 8 seconds.

Step 2—Forcing the Bubble

CoS is ending, at what health do you find your paladin? Did he bubble? Does he have his PvP trinket active? These are all factors in your decisions. In the best case scenario, you dropped him to low enough health in the 8 second of garrote+CoS that he bubbled. If he bubbled, then just run off for a restealth as he is healing up. If he is low on health, a vanish-CS-Finisher can finish him. If you didn’t get too far on his health, and you don’t want to vanish-CS-Finish, then you might be forced to just eat his HoJ. Generally, it is best to vanish-CS. Why? Vanish-CS furthers your softlock on the paladin by another 4-15 seconds (depending on what you do after the CS), and it provides even more pressure to force a bubble. You really don’t want to eat an early HoJ if you can help it. At the very least, vanish offers us a way to burn his trinket while forcing just a bit more damage through. You go vanish-CS-KS or vanish-premed-CS into CB-Evisc or KS, and continue that pressure.

Against a top pally who is blowing a trinket into a HoJ (you’ll get hit no matter what you do):

CoS-Sap-CS-wait for CoS timer-Garrote-Rupture-Yellow-CoS-Yellow-Yellow-Vanish-CS-CB-Evisc

This is 9-12 seconds of white + 3 yellow + 5 wound poison + Garrote + 5 pt Rupture + 5 pt CB Evisc, which is a serious open on any paladin. I’ve yet to meet one that didn’t need to bubble out of this. Even after you open, consecration shouldn’t be problematic as CoS-Vanish-CS will let you resist, which will no longer bring you out of stealth. This assumes he’ll blow trinket->HoJ on CS. If not, then you can work him down with KS if you know there isn’t a trinket for it.

Post Garrote, you want to do everything in your power to force a bubble without eating a hammer and apply 5x wound poison. Forcing a bubble means you get to runoff and restealth while he heals up (with wound on him), and more importantly, it means you have almost a minute to kill him before his second bubble. At the very least, you are drawing out his resources, forcing reactive play and inefficiency on his part, allowing you to control the situation. You overcome his CD-Turtle and you win.

Step 3—Continued Anti-Turtle, Attempting to win before the 2nd bubble.

You forced his bubble, you should be at decent health (bandage if necessary). You’ve got a minute to defeat him before the next bubble. You’ll defeat most pallies right here. Garrote or CS is perfectly acceptable, and if he isn’t a dwarf, then blind is extremely potent as well. If you haven’t used premed due to precombat point generation, then now isn’t a bad time to use it. You are hoping your second open is what defeats the paladin before he can bubble again.

Unfortunately, CoS and vanish were used up early to force a bubble (but it was worth it), and if CoS didn’t eat it already, you’re likely to eat a HoJ/rep. You can’t really do much about it other than stack wound poison. Any healing he gets off from this point on will be greatly diminished through wound poison, but you really don’t want him healing period. As usual, interrupt all heals when applicable. You’ve got a full minute to work him down, each heal puts him closer and close to surviving to the next bubble. Additionally, evasion is quite useful right here.

It is at this stage that you need to be careful around the very well equipped ret pallies. They can power through some substantial damage. They have compressed turtle fights. This is good and bad in some ways. The good part is that we can force the ret pally to bubble much earlier because they are not specced or geared for survivability. You are much more likely to have CD’s left after opening and forcing a bubble on a ret pally. Additionally, you’ll meet many retardins that spam HoJ directly into CoS (even though they saw you use it…lol) simply because they think they are going to burst you down. Countless retpallies will blow HoJ and sometimes even repentance during CoS, they’ll realize it too late, they are forced to bubble, and the rogue gets to reopen on a pally that has zero turtle capability for straight minute. That is the best case scenario, one that happens often enough, and allows the rogue to truly capitalize off the paladins mistakes. On the other hand, a very well equipped ret pally will still be breaking 60% mitigation with some nearly lethal HoJ/Rep rushdowns, and if played correctly, i.e. not HoJ/Rep when you CoSed, then your sure to eat it after your second open. Unfortunately, this is a case where you really must have the damage to force bubbles, but also the defensive stats to live through his assault. It is here that your gear will matter most in the pally matchup. Post bubble, having not blown HoJ/Rep, the well-geared/played retadin is the most difficult paladin to defeat for a rogue.

Holy and Protection specs are much easier at this point. Depending on whether they burned their HoJ during your CoS or not, you are just running them down. Garrote is preferable here because the mitigation levels are high enough that you simply want to win before the minute is up, and you really aren’t concerned about his damage. Premed-Garrote-Yellow-Rupture and rush him down. Keep 25e up at all times, you need to kick all heals and be sure wound is stacked to 5x as usual. Most pallies will be holy/prot specced, and that makes the fight relatively easier in general.

Pretty much every CD and attack is at least useful in this matchup. Deadly throw is good damage and interruption. Shiv is great for getting that crippling to stick. Our anti-caster and anti-melee tactics are all excellent. In any case, sometimes you lose control of this fight. Bandaging can be invaluable. For the long, long fights, as often found in the case when the paladin outgears you, you’ll be needing to bandage/eat. Play the out-last game, business as usual against turtles.

Tips:

a.) Dwarven folk are your bane. Blind can be very valuable in this match, and a good dwarf will BoP->Stoneform->Heal to eliminate blind’s utility. Not much you can do. Try and lure his Stoneform on a kite if you want, it probably won’t work (BoFreedom is always available). You are quite likely to play the out-last game against a well-played and equipped dwarf pally.

b.) This is a rare fight that can be done no-CD for many rogues. Our CD’s simply make us more likely to win, and help us win faster. If winning matters, then go all out.

c.) CoS and Blind (w/elus) are on pretty short timers. It is quite possible to use them twice in a fight.

Summary:

1.) (CoS)-Sap-CS-(wait for CoS timer)-Garrote-Rupture-Yellow-CoS-Yellow-Yellow-Vanish-CS-CB-Evisc (or whatever it takes to force bubble)
2.) Restealth
3.) Premed-Open-Evasion-interrupt heals while rushing them down.
4.) If they turtle through it, then play outlast and/or prep.

The paladin fight has become much easier for rogues. I suspect that as gear inflates, this class ill become harder and harder for us. In the meantime, you should be winning against most pallies unless they are very well equipped.

Shaman-

A shaman can pull out some amazing clutch damage and healing. The can do a mixture of kiting, utility-DD, melee, healing–somewhat a jack-of-all-trades. What really defines the matchup for a rogue are the cues that you’ll see throughout the fight that tell us the intended tactic of the shaman, of course these do vary per spec and situation. Will you be preventing the kite, turtling their damage, or cracking their turtle?

There are three trees and three different directions you’ll see this class going. Each tree lends itself towards a certain tactic, but all three are capable of kiting, toe-toe-toe’ing, and turtling to some extent.

1.) Elemental–strong DD damage, they aim to kite. Expect to see these guys splash for other trees, usually resto. They will attempt to permanently kite you throughout the fight.

2.) Enhancement–They can finally dual wield. Stormstrike is also quite powerful. This is arguably their highest damage spec, but it is melee heavy. They will toe-toe-toe, so evasion is excellent here.

3.) Resto–by far our hardest shaman matchup. They turtle very effectively. Wound poison and kick are your friend. A resto shaman will do some kiting and some toe-to-toe, but generally will prefer to keep their distance. Fire totems are especially deadly here, as the fight can be quite lengthy.

Generally, you know you are fighting at least a decent shaman when you see three things: a.) Poison cleansing totem and b.) a shield and c.) a PvP trinket (you’d be surprised how many no longer wear these because of a lack of stats). A shaman will do a combination of kiting and toe-to-toe depending on their situation at hand. You need to recognize which they are attempting to do and counter it. Blowing CDs at inappropriate times is a waste of valuable resources, so anticipating and reading the situation can be vital.

Step 1–Poisons

Crippling must be either MH or OH, I prefer it OH in this fight. The reason is that they will be dispelling your poison throughout the fight, and you’ll be shivving in response. Your MH poison should be wound. Eliminating the effectiveness of their healing dampens their future action trees greatly. You want to sustain a stack of 5 wound poison at all times as a shaman can get some quick heals off, and if they get any off, you want to make sure it isn’t for alot.

Step 2—Totems, How will you Open?

Totem Lineup should look something like: Earthbind, Magma/Searing, Poison Cleansing, Grace. A good shaman will keep the poison cleansing totem far away from them, making it a sacrifice for the rogue to take it out, and will be sitting on their fire totem (usually magma).

The totems you should be concerned with:

Earthbind=AoE snare. It has a CD to cast, so use that to your advantage. Beware of newly casted EB totems, the first tick WILL bring you out of stealth.

Magma=Excellent at denying the rogue an open, a shaman’s flare/trap camp equivalent. It pulses an AoE. Watch the timing of it, you’ll see it flicker. You can run in between those pulses and get your open. Lag or lack of time available can make this much more difficult, a good shaman will know this and use it to his advantage. CoS is a preventive measure.

Poison Cleansing totem=It periodically removes a poison effect on the shaman (and his team members). This removes our weapon-applied poisons but also our blind. Our poisons are quite essential; leaving PCtotem up is a major sacrifice for us.

You can choose to ignore the totems, kill the totems, or a combination. I suggest doing one of the latter two choices, particularly in order to remove poison cleansing. The common method is to sap the shaman and squish the totems, restealth before the end of sap, and go in for the kill. You can also remove the poison cleansing totem, if it is very close, during CS, gouge or KS.

If you ignore the totems, it is a sign that you intend to win very quickly, and that you don’t need blind. It could also be the case that you have timers on the totems, specifically PCTotem, and that you are opening at the very end of its duration (giving a window to blind if PC is not recast). If the shaman is not resto, a rushdown is acceptable, as long as you maintain control of the situation (i.e. prevent kiting, keep evasion on when appropriate, prevent all heals). Ignoring totems is quite viable if the shaman doesn’t have all the right totems down yet as well or he runs out of range. If you go this route, then premed-CS-CB-Evisc and follow through on a stunlock, just stay on them like glue. But, if they are a pro, you really can’t afford to do this as the totem advantage is very large.

You may also sap/CS the shaman, restealth and wait for DR, sap/totem squash, restealth and then re-open on a target you’ve already built combo points on. Remember that rogues now keep combo points on a target (even if untargeted) as long they do not generate combo points on another target. Sap/CSing and running away for a restealth is difficult to pull off on a shaman, as fire totems and EB make getting the restealth more complicated. For this reason, it is quite acceptable to do either.

Step 3–The Stunlock

Your shaman should have no poison cleansing totem up at this point, maybe even all relevant totems are gone. It is also possible that you’ve sap/CSed into pre-combat combo points, but I’ll outline the fight without those. I expect that gouge is on DR at this point, so watch your timers, and try and save the use of gouge for when it isn’t on DR or for trinket. If you are totem squashing during CS/Gouge/KS (generally gouge), then be quick.

Premed and open with CS on all shaman. Control is most important. Go through your normal stunlock routine, while accounting for diminishing returns. You should consider saving gouge, as it is very useful in preventing the kite on a trinket. Be sure to shiv if crippling doesn’t apply naturally. In some cases, especially non-resto shamans, rushing down from here is quite acceptable. Premed-CS-CB-Evisc brings them to 50-70%. From here, a shaman that has no PCleansing totem up and chooses not to trinket out of the initial stunlock has already lost the fight.

Generally, a good shaman will trinket on CS or KS, and I see arguments for both. In either case, watch for the trinket. If the rogue is not quick in responding to a trinket, you should see the following things occur in this order:

1.) Poison cleansing totem is cast
2.) A Shock hits you
3.) SStrike or NS when applicable.

The rogue wishes to prevent a successful trinket. If the rogue is not successful in responding to the trinket, then he has yet another PCTotem to take out and the possibility of being kited or DPSed down. Expect frostshock. The best response to a trinket is a gouge or a KS if available. If and when you don’t get a gouge on the trinket, then CoS/Sprint/Evasion/Vanish/Blind (as long as PCtotem isn’t up) are all viable counters. CoS is especially good at the end of a stunlock, and pretty good on a trinket, as it will often eat the initial shock, preventing the kite in large part.

Here is where I’ll break up the fight, we’ll go from easiest situation to hardest.

Step 4–Toe-to-Toe

Usually only an unskilled shaman will use this tactic exclusively. Enhancement shaman who are used to 3-4 shotting people (and it does happen from time to time) are quite prone to toe-to-toe, especially as their spec is designed for it. Generally, this means they will be attempting to burst you down and will rarely be healing. They’ll melee+shock you to death.

At any stage a shaman wishes to toe-to-toe with you, you should pop evasion. A SUBSTANTIAL portion of a shaman’s damage comes from melee. This is especially true for enhancement shaman. Evasion will shut them down cold. Keep your face to them, and stick on them like glue. Anticipating a shock with CoS is also quite helpful. By the end of evasion, the shaman should be in trouble and CS should be off DR. Just vanish-CS into him and he loses.

Step 5–The Kite

You really prefer to have shiv’ed the shaman and kept them toe-to-toe, but a good shaman just won’t have it. Somehow, they’ve managed to escape your grasp. They will attempt to snare you through frostshock and EBtotem rotation (attempting to avoid DR and work around cooldowns). Easy damage for them and opportunities to heal up. This tactic wins matches, and if left uncountered is a loss for the rogue.

Deadly Throw, Sprint, CoS, and Vanish should be used to close the gap between you and that shaman (basically, use anything you have to catch them). Sprint is the most powerful in closing the gap, and should be saved for this portion of the fight (don’t use it during the open, use it when you actually need it).

1.) CoS (F-shock/EB)-> Sprint

2.) Vanish (F-shock/EB tick)->Sprint

3.) Deadly Throw is excellent (requires combo points though). It is pretty decent damage, and if the shaman is very low on life, feel free to CB Deadly Throw them. The snare effect is quite powerful, and with PvP Gloves it becomes downright amazing (yay, our own little earthshock).

I truly suggest CoS-Sprinting. Nothing will stop you from closing the gap, and you saved your precious vanish(-CS) and combo points for later in the fight. Generally, I want to sprint up and either gouge, kick or KS them in the face. Preventing heals is vital, so if you can’t get up to them in time, then you need to deadly-throw or blind.

From here, you are going back to step 4ish. You WANT to toe-to-toe with them. Keep them stunlocked when you can, and keep your energy available for a kick at all times.

Step 6–The turtle

While elemental and enhancement are easily defeated by the steps 4 and 5, the resto shaman is a different beast. You can’t “rush” a resto shaman down as a rogue. Properly geared, a rogue (w/o poison) cannot outdamage their healing. Their earth shield effect has 10 charges on each cast (which scales with +spell gear to some extent), and combined with any quick heals and NS, the resto shaman is going to be staying at high health for an extended duration. Luckily for us, the resto shaman deals relatively little damage compared to the other trees. The turtle can be similar to toe-toe-toe and is the tactic a resto shaman uses almost exclusively, but is also used when a rogue has closed the gap at the end of a kite on a low-health shaman of any spec.

Here is where wound poison shines SO much. Keep those PC totems smashed and keep them wounded. Cutting their healing in half means you’ll be cracking the turtle while taking less damage. This is a war of attrition, and you’re going to be eating their hits (and you’re gonna like it too mister), conserving energy and abilities with one purpose in mind: interrupting and preventing all heals.

At no point should your energy drop below 30, and preferably not below 45. You’ll need available energy to prevent and interrupt heals (shaman are pretty fast cast). A combination of kicks, KSes, vanish-CSes, blinds (yeah, that is plural, I’ve had fights last long enough that I’ve used 2 in a fight), and gouges to interrupt those heals. Gouge and blind are particularly useful for giving you a window to bandage yourself. Don’t be afraid to gouge->bandage. The war of attrition will lead to one of three things:

1.) Catching the shaman with his pants down having no Earthshield while being at 40% health with no poison cleansing totem. Just blind right here and you win.

2.) Running out of mana.

3.) And, sometimes, dealing lethal even through earthshield, usually due to perfect spell interrupts, wound eating heals and even his NS, and quite often because it was a poorly played or geared resto shaman.

Running a resto shaman out of mana is a common practice in arena as well. You can always go for the gouge-restealth-get to safe place and bandage just to re-open on a shaman with far less mana (assuming he has no summoned food or drink). You’ll outpace his mana regeneration by a long shot, and, for long enough fights will give you CD’s back. But, generally, in regular duels, you never want to give them an opportunity to eat/drink. Most likely, if you ran them out of mana, you were diligent in gouge/blind/sap->bandaging.

And, as stated, sometimes you be so lethal from interrupting the big heals that NS and Earthshield are simply speedbumps to the finale. Good for you!

In any case, if they are turtling, then they aren’t dealing really lethal damage at the same time. Proper heal prevention and bandaging will crack a turtle.

Tips–

a.) You CAN effectively blind through PCleansing. Luck might be required to some extent. The cleansing effect is periodic. So, it is common to blind a shaman and quickly kill his totem before he is cleansed.

b.) For extremely long fights, it is quite acceptable to simply reset it by gouge-restealthing, running off to bandage up and coming back again to fight. This is especially common in arenas, against resto shaman, and when you’ve made one or more large play errors.

c.) Consider taking out fire totems, as this eliminates another good portion of their damage.

d.) Never drop below 30% health, as a shaman can one-shot you in this health range.

e.) While EA is good, it is not optimal. Expose armor is generally not worth the point expenditures in this matchup. CB-Eviscerates, KSes, and deadly throws are simply better finishers for this matchup. If you are very skilled, sap/CSing into a sap/EA/killing the 2-3 relevant totems/restealthing/opening is a possibility. You need to be pretty awesome to pull this off though, getting OOC/restealth before the end of sap in this lineup is difficult.

f.) Gouge those who don’t jumpshot kite and just walk backwards (retards).

g.) Note that wolf form prevents sapping. But, he can’t cast totems inside ghost form.

Summary:

1.) sap/squash relevant totems/restealth
2.) Stunlock
3.) Prevent kite and interrupt all heal
4.) Bandage as necessary

This is a fight a rogue should be winning, we simply have too many tools to prevent or eliminate shaman’ strategies.

Hunter-

This used to be a matchup I loved when they didn’t know I was there, and one of the worst matchups if they were prepared for me and played correctly. Flare/Trap/Track Stealth camping nearly counters a core function, possibly an entire tree, of the rogue class. Geared and played correctly, I always felt a hunter should win more times than not in this matchup (having played both and written PvP/Duel guides for both, that was still true until late 2006). However, as we closed in upon TBC, we saw a few meaningful buffs to the rogue that gave us a much better chance against the hunter, putting the fight in our favor.

1.) Cloak of Shadows removes everything, can help eat traps and also gives us the opportunity to get rid of that awful Serpent Sting. When trapped, a good hunter will open with AS-SSting, and as vanish has been bugged for a long time (and always will be, *sigh –”working as intended”), SSting will stick even through a spammed vanish–no rogue could effectively restealth or escape. We could sprint up and vanish into his face, and we had a brief gap between DoT ticks to get an open…but we could never reset the fight. CoS lets us reset the fight, often on our terms. Finally, rogues have both a proactive and reactive disruptive feature that gives us anti-gank measures.

2.) Vanish removes hunters mark, and without SSting on us, it is a true restealth. Don’t forget it, because hunters will often forget to re-mark you in later combat (and that can come in handy, especially in group pvp).

3.) Evasion now also gives us a 25% avoidance to ranged/missiles. This lowers their effective damage on a kite, as well as dealing with pet damage (which can easily break 250-300 DPS).

4.) We have the HP to withstand more hits, no longer can we ever be 2-3 shotted by this class…even though you will see 3.5-4k Aimed Shots once in a great while. On the same token, the hunter has higher survivability as well, but not the same proportional increase in survivability as the rogue class.

5.) Deadly Throw–not bad damage, can be chain thrown with relentless, and is effective at snaring your ranged hunter. Not a bad deal, especially as once you’ve closed the gap you’re going to premed-CS open for 5 points, so extra points are wisely used here.

With that said, we won’t put a hunter on farm status just yet. Even among certain nerfs they’ve faced, they’ve also had a few buffs. Dropping traps in combat (even if they have a timer), pets that immediately stop attacking on a CC’ed (mezzed) target (giving them less to worry about, and higher damage on average), becoming difficult to CC with their 41 beast talent, and greater survivability as well.

With any rogue spec, you’ll be aiming to close the gap, stunlock, and prevent any kiting. Almost all builds will be putting huge pressure, enough to kill, or nearly kill, any hunter that eats a full stunlock round. Get that open and you’ll win.

Step 1–Choosing how and when to open on a Hunter.

The hunter wants to kite you. Period. He wants to put distance between you and him, keeping you out of stealth while he pwns you. He’s going to flare/trap camp to start, and no matter how it works out, you’re going to want to stop him from kiting at all costs. Obviously 2x Crippling poison is what we’ll be using.

You need to ask yourself one question before we can go on: Are you going to eat the flare/trap and be forced to dance, or are you going to wait out the hunter’s silly flare/trap camp?

Given that we are a stealth class, we are gifted by the deities of Blizzard with the innate ability, via stealth, to choose whether and when we wish to strike an opponent. This ability to wait for “the moment of opportunity” is mostly present in gank-type situations, but it certainly has relevance in a duel. In the hunter matchup, we come face to face with it quite vividly. A hunter that is fully prepared for a rogue will, obviously, have laid a trap for us to walk into. We know it, we can even see that trap (both literally and figuratively). The hunter will be double flare/trap camping, and with even mediocre spirit regen he can keep it up all day. If you choose to not wait him out, then you lack “opportunity” in every sense of the word when you, begrudgingly of course, accept your fate that you will not get a stealth open, and will also be forced to trap-dance. In a friendly duel, I’ll gladly swallow my lumps and trap-dance, but if winning matters, then I’ll use everything I have in my power to win, including the resource of my time while in stealth (plus I get my CD’s back if they are down for some reason).

Alas, our stealth gives us the choice. You can just charge in, or you can sit and wait for the hunter to stop camping (or camping incorrectly, thus allowing you to catch him when he wanders off just slightly). Some hunters will call “waiting them out” poor etiquette, but clearly they have no clue about the very nature of the rogue. Blizzard gave us this ability and even if it pisses everyone off, we can surely use it to our advantage. We were designed to do this, even in duels. Time is on our side. It takes 100x the effort and concentration of a hunter to chain flare/trap camp as it does for me to walk to safe place and AFK until I’m darn well good and ready to open. For example, in the arena, when a hunter and I are the last people standing (I’m stealthed of course), I simply refuse to eat his flare/trap. Within even a minute, that hunter will get frustrated (and I won’t). He’ll slip up; he’ll run around, he’ll get outside of the flare radius, he’ll try hopping from flare radius to flare radius. Even if he goes to get a see-stealth buff, he’ll screw up while I’m patiently waiting at a safe distance. If it matters, then you can choose to get your open from stealth, and for important matches, I do suggest it.

Steps two and three are going to assume you will not wait him out, but if you do wait him out, then skip to step 4.

Step 2 (eating flare/trap)–Trap Dancing

So you’ve chosen the harder route, good for you–the fight is action packed and exciting. The hunter is sitting directly on top of his trap, or thereabouts, and he’s chain flaring. You will attempt to circle him, hitting him with shots just outside the trigger radius of the trap. There is only a slight difference in radius between melee range and the trap-trigger radius, but with practice you’ll become quite adept at weaving around the fine line. If you need, you can blow CoS, forget the trap, and just rush him.

Feel free to watch your timers, you can tell how long until that flare and that trap will wear out. You will want to at least wait until these are almost up before you start trap-dancing. You want to make sure they will run their duration quickly. Why? Because trap dancing should lead to eventual control of the fight. You are accepting loss of control from the beginning, but you need to quickly gain it back…Stealth is required to win against a good hunter. You cannot stealth neither on a trap nor on a flare. So you either need to draw him away (by letting him kite you), or even better, catching him with a blind at the end of the flare/trap duration so that you can get your open.

When you trap-dance, and most hunters won’t be used to this technique, they have a few responses available.

1.) They sic their pet and take your hits, keeping autoattack on, but not budging from the trap, hoping you’ll eat the trap or the pet will take you out before you take them out. This is the response of a noobie hunter.

2.) They’ll back up, and circle, attempting to keep the trap between you and them. Interesting technique. The proactive chaser (rogue) will close the gap though.

3.) They’ll Scatter Shot you, attempting to make you eat a trap, and will begin kiting. The normal response you should expect. CoSing the trap is quite nice right here. Early cripple/shiv takes care of a big kite. CoS-Shivving is huge.

4.) They go all crazy red incredible hulk on you and zerg….just run off and vanish, you can’t CC him. He just wasted a CD.

5.) Pet intimidate and begin the kite.

Those are the general responses, and sometimes they’ll use a combination. A poorly played hunter is highly susceptible to continual trap dancing. Sprint and evasion can help here. If you catch him off the trap, KS and unload on him. Generally, though, a good hunter is going to stabilize the fight first on you, and he’ll make you eat an SS, trap, or pet stun, and then they’ll start kiting.

Step 3–Preventing the Kite

On the kite, they’ll aspect of cheetah for the run speed, lay a trap while running (if not on CD), and open. Feel free to evasion right out of a trap. Be careful to avoid traps layed during combat, you’ll see his animation when he does it (don’t be deceived by those who jump+trap). A good one will begin kiting and drop it midway. You simply cannot allow for him to stay at range obviously, but don’t eat a trap you don’t have to just because of your fervor to prevent the kite and reopen. You need to close the gap and reset the fight, this time on your terms.

It depends on the situation, but sometimes simply sprinting up to him and vanish->opening is all you need. Other times the hunter will get his huge open on you–and if you decide not to CoS-Vanish (usually do to CD or flare constraints), then blow evasion when they are going to get some ranged hits on you. Feel free to deadly throw at him if you have the spare points. Anyways, you’ll catch up to him, hopefully not having sustained a ton of damage.

So, when his flare/trap is gone, or they’ve kited you to an area where there is no flare/trap, you want to get your real open on them. You have two options, you can Blind and/or Vanish (generally CoS->Vanish is required). Whatever it takes, you aim to get your open on them in a non-trapped/flared area. Again blind is less useful against dwarves, but it still might be necessary to blow it (maybe wait until they blow it to get off crip poison). Once you’ve stabilized the fight, you aim to control him the rest of the way.

Step 4–The stunlock

Assuming you’ve stabilized the fight or you are getting the open on a hunter, then you’re going to open with a fat CS on him. Here his PvP trinket is your only worry. You’ll go through your normal stunlock routine, but you watch for that trinket. He can bust out of either of your stuns (and your crip poison). You need to catch him on it. If you don’t catch him on it, then he may SS you in the face and start the cycle again. The perfect catch is a gouge on his trinket-SS. If he drops a trap here, just avoid or CoS it.

Full CD, on the open, and no trinket (a surprising number no longer equip this), you’ll win 100% of the time if you play correctly. No hunter comes back on our open. Premed, blind, vanish, and CB are invaluable in this stage. Burst him down within your stunlock, and continue for as long as you can. If you have it, or even need it, a blind post-KS (against non-dwarf) seals the deal every time.

If you can’t fully stunlock him, that’s okay. Stick on him like glue; he’ll be very low on health, and your remaining CD’s will overcome any measure of control he can muster.

Tips:

a.) Shiv that crippling poison on them if it isn’t already applied.

b.) Restealthing isn’t effective, as pets still charge at you even after you stealth. You have to vanish.

c.) It is possible to sprint-Sap a hunter within a flare. It won’t work 100% of the time, and it is latency based.

d.) CoS can be used in stealth, and it can be used to eat a trap. Charging into a flare/trap camp and CoSing to eat that trap can be quite powerful (and is sometimes necessary, especially in arena).

d.) Boar Charge can buy them additional kite time, be prepared for it.

Summary:

1.) Trapdance or Open
2.) Use Anti-kite measures to gain control of fight
3.) Stunlock (maintain anti-kite measures)

Until I start seeing better equipped hunters, I think a well played rogue should win this matchup more times than not. Armor levels have dropped considerably, and most hunters aren’t stocking up enough on HP gear. Prevent the kite and you win.

Druid-

A PvP druid will usually be feral, if they aren’t feral then you own them (wound poison and stunlock cures all). Now that doesn’t mean they’ll be in feral form the whole time by any means, and it doesn’t mean they won’t have points invested in other trees. But, the strongest PvP druids will be feral, and that is what you should prepare for, especially as non feral druids are much easier to deal with. Mind you, as an odd “hybrid” (and I use this term very loosely in regards to the druid, who really plays “role-replacement” in my mind), the feral druid can have varying gear, and thus a varying tactic that we must identify and respond to. Some are going all out damage, at the expense of a solid mana-base and armor; some are going to tank you; and, some will keep their mana-options open, but sacrifice feral damage and tankability–the best will use a combination thereof. Mangle and gear variations can make this a difficult class. Finding truly skilled druids that can make use of their abilities is a different matter together (how unfortunate!).

It is to know what gear configuration they are using. You need to identify whether they are dealing very lethal damage (even higher yellow DPS than a rogue as far as I’m concerned) or if they are going the defensive route. If they are in tank gear, then you’ll be more likely to DoT and tank them down. If they are damage based in gear, then you’ll really want to kite them more than you tank them, on the flip side their mitigation won’t be nearly as high. Their mana supply is also an issue to consider. Druids with low-mana bases really can’t afford to shape shift several times in a short period of time.

Good druids will start bear form. Refer to the rogue stealth section if they try and cat-stealth you (it is a sign that the druid thinks you suck; even if their PvP gloves have stealth detection, it is a poor choice by the druid). Other things to keep in mind is that they can use their bark skin armor buff during stun, NG even in feral form, and bash has become more effective as dodge levels have dropped. Beyond their amazing mitigation, I have become more and more impressed with the bear forms ability to dodge/parry–fighting from behind is always a good idea against these guys. Constant positioning is a powerful and even necessary tactic.

In bear form they hope to survive your initial stunlock/dots/kite, and they’ll attempt to bring you down as far as possible without putting themselves in harms way of not being able to heal up effectively. They hope to catch you at a crucial point where you are possibly low on CDs (if you needed them), they have 30-50% health, and you are susceptible to traditional CC. It is here where they want to heal to full and bring you down the rest of the way. They’ll Bash->Cyclone, heal to full, and re-bear form. Expect to see Nature’s Grasp trix and well-timed trinkets. The longer this fight lasts, the more likely the druid is going to win. Finding druids who pop these CD’s at appropriate times and every time they are available is rare as well. We just don’t see a lot of druids that maximize their potential, beware of those who do….this is a class that has the potential to beat a lot of rogues if played correctly.

There are 3 tactics that should be used when dueling a feral druid:

1.) Stunlocking
2.) Evasion tanking
3.) Kiting

Knowing the gear configuration changes the effectiveness of each of these tactics, and sets priorities for the rogue. Stunlocking is always good, but if we go too heavy on it, then we lose the ability to punish a druid out of bear form. Evasion tanking is good, but it is both temporary and is most useful when attempting to dodge a bash. Kiting is also a two-edged sword, as it makes you more vulnerable to CC effects and a druid getting a heal off, but it is necessary against high damage druids. In the end, a combination of these will be used against a well-played druid.

Step 1–Preparation

As much as some rogue’s don’t like to use it: Wound poison…you need to stack 5 quickly and sustain that 50% cut in their healing. I don’t care if you use rank 1 wound poison or the highest rank. All that matters is that they won’t be healing effectively–in the end, a very good druid will get a few heals off, it is up to you how effective they will be in their healing endeavors. Healing is greatly diminished with wound poison, to the point that you can force earlier bashes, blowing fewer CDs and taking less damage. It is so important to keep them from healing that you should be using wound poison MH. Keeping their healing down is at a premium….12k hp bears (attainable in greens) that get a single full heal on you in a fight are 24k hp bears….and there will be times that you can’t stop them from healing.

A rogue really cannot afford to give up the ability to gouge->bandage or blind->bandage against a very good druid, and so DoTs must be used wisely. This fight is in part a war of attrition, one that will be lost when you can’t effectively heal yourself because deadly poison is breaking your disorient/incapacitate effects and also because they can effectively heal because you haven’t stacked 5 wound. If you do go the deadly route, then go all out, be sure to use Envenom. I don’t recommend this against a well-played druid. They’ll outlast your damage…they are a turtle. Breaking the turtle is best done with wound poison/crippling poison, not deadly.

Only at the beginning of this fight do we want to risk using DoTs, as the beginning only sets the tone of the fight, it isn’t until we are 20 seconds into the fight that we have to worry about CC effects. So, we are setting up for a warrior-type open; a garrote->5pt rupture is quite optimal. CS-Imp Gouging for pre-combat points is easy an excellent. They can still hit you with FF from a good distance, but with minor run speed and quickly running after the gouge you’ll always get your restealth. If you do get hit you can always CoS-restealth. Saving your premed, you’ll want it later in the fight after you vanish into him. If you choose not to use precombat point generation, then premed is just fine against these guys, just be careful to use those points quickly–this can be difficult when the druid is jumping and twirling around, as you’re open must be from behind for garrote (and many have stealth detection)…so you’ve got to use premed points in 10 seconds, but you can’t let them catch you in stealth for an FF. With FF preventing vanish, you may consider using it liberally from the get go, negating some of the utility of pre-combat points, COS does give us more flexibility though.

Step 2– The open

You prefer to save sprint if possible, as it closes the distance quick on a kiting druid, but sprinting in for the open is acceptable if it is necessary (you really prefer to save this though).

Some might prefer CS, and against non-bear tanks this is strictly correct. But, as a rogue can generally afford to not have to use gouge/sap/blind in the initial 20 seconds of combat, DoTing is a very effective means to deal some major damage to these heavily-armored feral units. On top of this, the druid fight is one of the very few in which I am greatly concerned with my diminishing returns. Opening CS->Gouge->KS eliminates the immediate future effectiveness of these abilities, and that can really come back to bite you. As usual, these are pseudo-warriors, don’t even open until they have no rage, and avoid the shouts. And, please, watch your castbars, you don’t want to open on a druid that has freshly casted NG (Nature’s Grasp). This also goes for the druids who think they are smart in HoTing themselves right before the beginning of a duel–just wait these out.

If you do choose to open stunlock, then consider vanishing within your KS and premed-Garrote-5pt rupturing. Assuming precombat points, something like CS-Gouge-KS-Yellow-Vanish-Premed-Garrote-Rupture-Yellow is fine. Be ready for the trinket on KS though (ouch). If you choose to DoT open, saving your vanish (with CoS it is another open, and that can be very powerful), you’ll go something like Premed-Garrote-Yellow-Rupture.

Step 3– Toe-to-Toe’in, Kiting, and Stunlocking

I generally give the druid a few seconds of tanking from my open. Why? Generally I’ll get a few hits in before they even join in on me, I’ve got the energy to blow, and I get a feel for their gear if I didn’t already inspect or visually identify what tactic their gear points them towards. Most importantly, staying in melee range lets you apply your poisons, and this is vital. You need 5x wound poison and crippling. Jumping through the bear and circle-strafing around him properly will give you his back. You really want to avoid both his damage and his frontal defense when possible. Get your poisons and run those DoTs.

If I see my druid is taking and dealing heavy damage, usually because they aren’t wearing their +defense tank gear, it is usually best to treat them like MS warriors. Go ahead and 5-8 kite (closer to 8 than 5 for the druid though), regen energy, jump through, stun and unload on them, and do it again. You want to beg their charge and bash early, and you also want to beg them to pop out of bear form for a quick heal. You want to catch them with their pants down, while running into unload and running back out to avoid his damage.

If my druid is a true tank, then I’m more inclined to tank them as well because their damage will be lower. Generally, you’ll want to be using rupture, but only when KS isn’t on CD. You can’t afford for them to pop out of bear form for you not to have KS when blind is going to fail on a DoTed target. And, when you aren’t rupturing you should be using gouge to bandage and regain energy. Toe-to-toe is more acceptable in this case because you aren’t likely to be bursted down.

Step 4—Preventing Heals and Catching them in Caster form.

Assuming his HP is getting low, it is going to beg a response. The first response from a druid with lots of rage and not perfect health is Frenzied regeneration. Good ones will blow this early to maximize effectiveness against your wound poison, with 100 rage (not hard to get) it heals them for a base 2,500 health). There isn’t much more you can do to prevent this, but winning before they can do it again is something you can do. If frenzied is down, they have three other answers in bash, charge and nature’s grasp.

At some point, usually around 50%, a druid will bash-Cyclone or NG (NG-Cyclone is common). After landing the fearsome Cyclone, a druid is free to heal, maybe even DD you, and get back into bearform. You need to prevent this at all costs. We have a few counters. In the end, you want to end up catching them in caster form with a gouge/KS/CS/blind if possible. Even a few seconds in against them in casterform is lethal.

The counter to bash is quite singular: Evasion. The higher your chance to avoid that stun effect the better. For DPS feral druids who generally take sizable damage from you even in bear form, but also deal lethal damage themselves, going evasion early is a good idea. Minimizing the damage they deal to you is very important, and conversely, their need to bash will come much sooner than a bearal tank’s need, early enough that going evasion while their at 75% will put huge pressure on them as you burn them down to 30% in the next 15 seconds. For bearal tanks you really don’t want to evasion until they get to 50-60%, otherwise they’ll just wait through your evasion and bash afterwards. If bash is dodged, then they are in serious trouble. They’ll be forced to NG.

The counter to Nature’s Grasp: Cloak of Shadows. For now I catch many druids with their pants down as they jump out of bear form because I’m 12 yards away, only to see my CoS into a blind on their caster form. It can be good to CoS-Vanish (as FF is now gone, and this is a rare opportunity to use vanish)-CS them. If the druid catches you CoSing out of NG, and doesn’t pop out of bear form, they’ll be stuck with their last resort, charging.

Charge is a root, but it doesn’t eliminate your abilities, just your movement. Vanish can get you out. Catching them with a gouge on a charge is most optimal. KSing is fine too. If they get away, blind is a good idea. Deadly-throw on a caster form is pretty amazing too. You might see charge before bash or NG even, just be ready to gouge it immediately. Otherwise they’ll kite away, pop out of bear-form for an abolish poison and an HoT, and pop back into bear form.

If you get him in caster form, he’s dead. Druids don’t come back from it. Unload on him in casterform. Even a 2-3 point CB-Evisc can be lethal at this stage of the fight.

You are going to eat some bashes, NG’s, and charges that will net the druid in a successful cyclone. Druids will get heals off if they play correctly. We just need to come back on them.

Step 5—Recovering

So, they successfully cycloned, or CoS/vanish was down on an NG, or you just saw them Abolish poison, and now you lost control of the situation and they went back to full health. What can you do?

Prep gives you all the options again. Constant gouge->bandaging is important. Blind->bandage is very good. You need to outlast him. Things like Mark of Conquest and Heroism card are very good in this matchup. Catching him on a gouge/blind (or even KS) at the end of FF duration might net you a restealth. Continue to follow through with the gameplan.

Tips:

a.) Restealths are good, they happen often enough with the help of CoS. Gouge-CoS-restealth can be of use.

b.) Be prepared for stun resists and trinket.

c.) Don’t be afraid to CB-Eviscerate very low-armor bears, you’d be surprised how hard you can hit.

d.) If you do use deadly, envenom becomes quite excellent.

e.) Watch for abolish poisons when they jump out of bear form. It periodically removes poison effects, rendering them unblindable (for the full duration atleast).

Summary:

1.) CS-Gouge-Restealth
2.) Garrote-Rupture-Apply 5x wound and Crippling
3.) Kite high damage and tank low damage bears.
5.) Counters his abilities appropriately.
6.) Catch him in caster form or kill him before he kills you in bear form (gouge/blind-bandage is good).

In the end, most druids really don’t maximize their characters’ potential. How many druids even use their PvP trinket to pop out of the crucial 5-point KS? How many are popping NG, bash, charge, and Frenzied regeneration every time it comes up? Each of these put pressure on the rogue, and often require us to blow CD’s in response (or even as prevention). It is quite possible for a bearal tank to live long enough to use these abilities a few times. Most of the time you’ll trounce druids simply because they just don’t know howto fight a rogue….seriously, premed-garrote-GS-rupture-evasion-rushdown will defeat most druids. But, should you meet one that does play correctly, you’ll need to be tactful.
Rogue-

The once awful mirror match is now not as bad as it once was. Pre-TBC, save for a dodged gouge or a stun resist, the open is really all that mattered at some threshold of gear. Once you met that gear level, any rogue could be defeated. With itemization changes, this has become a slightly more skill intensive fight than “get the open and win”. Don’t get me wrong, the open REALLY matters, as it sets the tone and pace of the fight, but it is no longer the tell-tale sign of a win or loss in a match. There are very few rogues that are pumping out lethal damage before the end of KS, and none of them can do it consistently (they got some really, really lucky crits). This will now, at the very least, be a matchup that requires CD’s if we do hope to 100 to 0 another rogue. With that said, there are a few things you can do to improve your odds of getting the open, and you should take all possible measures to make sure you get that open.

Step 1–Getting the Open: stealth and odd mechanics

The ability to see them first is 9/10ths the open for most rogues. Perception, potions, heightened senses, and certain pieces of gear can improve your stealth detection. There are also many effects that increase your stealth levels itself. MOD is obvious, but don’t forget boots, cloak enchant, Nelf racial, and a few other things can improve your stealth. In general, stealth detection seems stronger, per piece of gear, than increasing your stealth level itself. I highly suggest getting as much of both as possible. Put it on a gear-swap macro, you’ll find yourself using your stealth setup quite often in BGs, dueling, and even world PvP.

The other thing that helps greatly in getting the open is something akin to Belkin’s Nostromo N52. Now, while the n52 isn’t necessary for a rogue to play, it does make high-end play easier and more effective. In this case, the macro spammability feature is certainly game-breaking in the context of getting the open in the stealth vs stealth matchup.

Most rogue’s stealth around, trying to just walk past their opponent, then they target their opponent and CS. This is not what you want to do. Stealth was designed so that you are either a.) forced to AE the area in which the rogue is, or b.) manually target the rogue in stealth and then use an ability. The “bottleneck”,so-to-speak, for a rogue vs rogue, is in 1.) Actually having a visual of the the stealthed opponent, 2.) Taking the time to target (whether by tabbing or clicking on him), and 3.) Pushing CS about as fast as you can spam it by hand. The N52 gets around all three of these.

You can setup a macro that will allow you to hold down your CS key to spam CS faster than humanly possible for an indefinite duration (as long as you hold the key down or press it again, depending on how you set it up). What does this do?

It is an odd feature of the game, but if you spam CS at the n52’s amazing rate, you don’t actually have to target a stealthed opponent. If I am next to a stealthed opponent, my CS-spam will automatically hit them. Even better, the spammed CS will almost always hit my rogue opponent even BEFORE I have a visual of them on my screen. I’ve played without MOD and opened repeatedly on rogue’s with MOD just because of this CS-spamming. This is a serious advantage.

Assuming you didn’t just stand still, and you didn’t walk some obvious path, you should most likely get your open on another rogue using the tools above. So, step one, you’ve CSed your rogue opponent. What now?

Step 2: The stunlock

This is your standard stunlock situation–Always stunlock a rogue. Don’t be fancy here, no “rush-down” until you know you’ve won…you may not come back if you lose control of this fight. Your job is to stunlock your opponent from 100 to 0, or, if you must, rupture kite them while you are out of their blind range. 2x Crippling Poison is clearly the best poison choice. Use your usual stunlock, but remember you must keep 25-30e open before the end of your KS. You will need to proactively disrupt your opponent by the end of KS, or you will get a.)blinded, b.)gouged in the face, c.)vanish-CSed. There are two viable end-KS choices:

Blind–Blinding at the end of KS signifies that you are going all out, and to me, if used after you get the open, it is the closest to sure sign of a victory as we can say. You get to re-open, and that rogue is most likely going to die. This is the safe way. And, some might view it as cheap. My opinion: Do what it takes to win. That means blowing CD’s. Blind after KS (when available) is ALWAYS the correct choice in a duel against another rogue. (By the way, elusiveness now puts blind at a 1.5min CD.)

Rupture Kiting–This can be dangerous, but it is sometimes a necessary evil when we don’t have CD’s available, specifically blind. Rupture kiting is simple: apply rupture and get out of their blind range, restealth and re-open. Rupture prevents your rogue opponent from effectively restealthing. In the meantime, you seek to go OOC, gain some energy, and restealth. If you don’t get OOC, then generally you’re going to be vanishing in for the 2nd open and, hopefully, the kill. Your job is not only to get a restealth, but essentially to avoid an incoming blind that your opponent has been spamming since your initial CS. If your opponent blinds you, then they get to restealth and open on you (regardless of DoTs).

Rupture at max range, and rupture early in KS. You’ll need at least a small time buffer of KS-time to escape blind range. Be sure to test your build to make sure you have enough room after KS so that you don’t eat a blind. For example: you can generally get 2 Hemo’s in and rupture during KS, and still be far enough away not to eat a blind. This takes practice. Shorter rupture durations means you have less and less of a time advantage over your opponent, maximizing is good, but not at the expense of eating a blind.

Your opponent might bow/throw you to keep you in combat. He has 30% health, you have 100% health…just trade blows with him and throw back at him (keep your distance of course). A reasonable rogue opponent is not going to try and keep you in combat, as this is merely an exercise in futility. Sprint-Vanish will take care of these rogues too.

A good rogue opponent is going to do one of two things:

a.)Pop CD’s and try and open on you directly.
b.)Pop CD’s and run away from you, primarily to heal up and try again to open on you.

CoS, Vanish, and Imp Sprint all remove crippling, so be prepared to blow CD’s in response. My usual rule is to pop the same CD my opponent has popped. If my opponent vanishes (still has rupture on him), then I vanish. If my opponent sprints, then I sprint. You can tell when your opponent is going to let you OOC and when he isn’t. Be prepared to blow CD’s, maybe even pre-empt them.

For those chasing you down, the good ones are simply trying desperately to get a blind on you. If you can smell the blind, then just vanish…you can always circle for another minute to find him, and your next open will be lethal. Rupture-Vanish is perfectly acceptable. The problem is that they can escape pretty easily if you do this immediately. They can get just get out of crip poison and sprint out to restealth. If you do choose to rupture-vanish, then be sure to keep up with him, sprint and distract can help in this regard.

The reason rupture-vanish is simply not as good as blind is 2-fold. 1.) Diminishing returns on CS, Gouge, and KS (ouch), and 2.) Lack of energy (blind gives you 100, rupture-vanish gives you varying amounts, usually less). If my opponent is very low, I’ll often Premed-CS-CB-Evisc, and it ends right there. It is a difficult balance between DR/Energy issues and whether I let my opponent escape or not.

Always remember that even if your opponent does get the blind on you, he still can’t kill you in a single round (most likely). Use anti-rupture kiting techniques on him…and you are both even, only your CD’s are more likely to be up on the 2nd encounter than his.

The real problem I foresee is that at some gear threshold, since neither rogue can effectively 100 to 0, it is conceivable that many times both rogues will get each other to half health, and in fear of not getting the open, both will hide and bandage up their health to open, yet again, on a full health rogue. Endless cycles…I find this common in arena especially. Prevent rogues from kiting you is a major skill to have.

Tips:

a.) Sometimes it all turns into a real mess. Evasion isn’t a great answer, but at least they won’t be gouging you or really dealing massive damage to you from the front. Always remember to blow this when all hell breaks loose.

b.) Recovering from another rogue that opens on you means spamming blind and using anti-rupture kiting techniques. Remember that you can always stealth away after escaping from being opened on and find a comfortable place to quickly bandage/eat. This essentially resets the fight completely.

c.) Don’t use deadly poison.

d.) Be patient, don’t get lazy or frustrated when you are having a hard to finding them. Even circling that silly flag or what not takes some degree focus and concentration.

Summary:

1.) Get your stealth detection and +stealth mods on.
2.) Spam your CS open, and think while you prowl around. Don’t be obvious in your walking patterns, and if you see a safer place to be scoping out the area, then use it.
3.) If you open full CD, then win, if no blind available, then rupture kite. If they open, then blind and/or use anti-rupture tactics.

Priest-

A match that has become almost unwinnable for a shadowpriest and arguably easier for, but still not in the favor of, a holy/disc priest. Cloak of shadows and lower mitigation levels have made this a much easier fight for the rogue in general. On top of this, a rogue that is properly sap/CSing can frontload so much damage while maintaining a lock and severely stifling their healing that most priests simply can’t come back on you. Our main problems with priests in general are a.) Shielding every 15 seconds, netting no increased cast time from taking damage and, of course, +virtual HP, b.) Killing the priest before the 2nd (or 3rd for UD rogues) fear, and lastly c.) Preventing the kite.

I’ll first outline the open stages of the fight against all priests, and then I’ll elaborate on the spec.

Step 1–Getting the open on a zero armor target

Sap/CS is so powerful in dueling. Honestly, it is an abuse of the game mechanics, but I’ll take anything I can get. The priest is the prime target of this tactic. Here is where expose armor becomes useful as well, and the good part is that a rogue can put EA on a target without sacrificing his open!

Your routine:

1.) Sap/CS, restealth and wait for DR on both. (2-3 combo points)
2.) Sap/CS, restealth and wait for DR on both. (4-5 combo points, generally 5)
3.) Sap/EA, restealth, OPEN HERE.

Remember not to actually use your last sap until a.) they are 12-13 seconds from losing their shield (which won’t happen against most smart priests), or b.) they newly cast their shield. You want to either be really opening on a priest with no shield or the inability to cast another after you crack his shield. Shielding and fearing are chokepoints for anyone dueling against a priest, and so we really want to unload as much damage as we can before the next shield and/or fear chokepoint.

For sap/CSing, blackout-procs can be a pain, and also be sure you don’t deal any damage (even from weapon procs+enchants). CoS+vanish takes care of those problems though. CoS+vanish is a reset of the fight (only you get to keep your combo points).

Again, the n52 is so powerful in this matchup. I have this all hotkeyed. I sap and push one button and the EA through sap happens for me automatically. I restealth, and I’ve got a zero armor target for 23-25 seconds). Remember sap shares DR with gouge–Try and wait out the DR before gouging (if your opponent even lasts that long?). From here, the fight diverges into two different approaches:

Step 2 (Shadow)—Elimination of their damage+healing.

Shadowpriests put out some serious damage, and have the highest damage+healing ratios in the game. But, TBC has certainly changed this matchup. Rogues are in a much better position because we have the tool to eliminate the damage (and thus the healing potential) of shadowpriests in our beautiful Cloak of Shadows (some might even say cloak of skillz). At equal gear, a rogue should win this fight every time. Crippling poison is a must have (MH or OH, either is fine), and is acceptable in both hands as well. Preventing the kite is the game. A 1x of Mind-Numbing or Wound is also acceptable.

Generally, I’m just going to rush these guys down. They have 15% damage mitigation (after 5-point EA), and I’m in an excellent position to premed-CS-CB-Evisc them to half health right now. Stunlock them down if you can, but they’ll usually trinket right on CS. Be ready to answer a trinket+fear. Rush them down. Let them Vampiric Embrace+DoT, and then use your CoS (15 second CD on VE). CoS gives you practical immunity to their damage for 5 seconds and also eliminates whatever they just threw on you, it is most powerful in bridging the tempo advantage of a kite while you sprint up to them. They won’t be denting your HP, nor gaining any life back–they are in serious trouble. They won’t be coming back on you if you play your cards right.

As always, if you are having a really tough time, blind is your ‘oh-sh*t’ key. It resets the fight and gives you yet another open. Easy enough.

Step 2 (Holy/Disc)–Overcoming the turtle

This fight has become slightly harder for the rogue. Holy/disc priests are pretty decent turtles. Pain suppression, blessed resilience, and a few other talents make for a decent turtle. I do recognize that Disc and Holy are very different trees, but for now, I lump them together because it is the same basic gameplan: Prevent all healing, stunlock as much as possible. Catch them at 40-50% health with no shield or trinket and, if necessary, blind to restealth and premed-CS-CB-Eviscerate for the win.

Although you do want crippling on at all times if you can, what you really MUST have is wound poison. You need to out DPS their healing (and they will get some healing even through your wall of disruption)–wound poison cuts the heal to DPS margin in half (actually, slightly better including damage dealt by Wound poison). Wound MH and Crip OH is really what you want in this matchup. Sprint fills in any crip-gaps you might have, and shiv prevents most kite gaps from occurring in the first place.

You should still premed-CS-CB-Evisc on your open. Although, Premed-Ambush-CB-Eviscerate is good, it isn’t a stunlock. For the moment, you should CS even instead of ambush as it forces a trinket. Like a resto shaman, here you’ll sustaining damage, being sure to kick, gouge, KS, blind, deadly throw, and even vanish-CS all non-instant heals. Apply your wound poison as a source of pressure to both the time available to get their HP up, but even as a way to put pressure on their mana supply. 5x Wound Poison is a huge detriment to the very fabric of their spec and class, and they will not overcome it.

Proper responses to stun resists, fears, and their heals should still guarantee you a win. Don’t go too low on energy, because if they get a flash off, you’ll be sitting there even longer. Don’t go kamikaze to the point that you don’t have energy to disrupt their heals.

Use CoS Wisely. Generally, I wait to burn it as it can provide guaranteed opens alongside vanish. But, in this match, you could arguably just burn it early to have it ready yet again. CoS early on SW:P forces them to cast it yet again, using up their precious time and mana just to deal a bit of damage to you (and keep you from easily vanishing, not that you shouldn’t be capable of vanish-CSing in between ticks anyways). It is up to you.

Against not so great holy/disc priests you can go pure rushdown, against the better one’s you are fighting a slow war of attrition, one that the rogue will eventually win. Some fights will be slow enough that SnD is worth it, other fights are more concerned with bursting.

Tips:

a.) Proper CoS usage can be key. You should atleast wait for them to DoT you before you blow it though. Using in anticipation of a fear won’t be a good idea until the end of the fight.

b.) Never, under any circumstances let them kite you.

c.) Stunlocking, even if only a softlock, is STILL a good idea–so what if they have stun resist, tempo is tempo (any rogue who says otherwise simply has no idea how this matchup works).

d.) Try to kill before the 2nd shield, but make sure you kill before the 2nd fear.

e.) Wear your PvP trinket, have it bound to a key, and be ready to push it. Time lost during a fear kite is time you could have been punishing that priest.

Summary:

1.) Sap/CS into 5 points
2.) Sap/EA/restealth/Open
3.) Premed-CS-CB-Eviscerate
4.) Prevent kiting/healing and respond to fears quickly.

The shadowpriest matchup is considerably easier, and the holy/disc matchup is considerably harder before TBC. At equal gear, a rogue should beat a shadowpriest every fight, and should win the majority of fights against holy/disc priests.

Mage-

As always, a lightning fast fight, arguably an even quicker fight than before TBC as we both have access to even more tools against each. In general, with CoS, this fight is in the rogue’s favor, even against frost-mages. Non-frost mages should lose 100% of the time to a rogue– even played to their peak capacity, we out-CD them and apply far too much pressure for them to control us. While a fire mage is dead in the water when you blow CD after CD, the frost mage has alot more answers, and the longer the fight (as usual), the more likely your opponent is going to win. Your mission is to deal massive single blows at all choke points, prevent the kite, not eat their blasts, and as always, avoid getting polymorphed at all costs.

All mages aim to do one or both of these:

1.) Sheep you (without you having a trinket left) (the fire mage really wants this)
2.) Kite you using instants until you die (the frost mage will do this).

The mage and rogue are actually very similar in terms of the situational control and survivability we possess. We have answers and lots of disruption to use against each other. When fighting a mage, Blink, Ice Block, Blazing speed, PoM, Slow, Water Elemental, and Nova all require a rogue to blow CD’s/trinkets to effectively counter. And, if a mage is given a chance to use all of these abilities, the rogue will eventually run out of CD’s. Once the rogue is out of CD’s he is dead in the water, as he has no way to prevent the mages disruption, and, on the same token, will never catch up to disrupt the mage. The rogue must win before the mage can use all of these abilities because he won’t have enough responses.

The mage’s use of CD’s allow him to blink and shield/barrier enough times, burning all the rogue’s CD and options, such that he lives through each burst, and eventually overcomes the rogue. We trade CD’s to just get in range and deal any blows to a good mage. But getting past his CD’s isn’t your only problem. With each shielding he throws up, he gains virtual hp (like the priest), adding even more damage that is required of us to actually kill him. The longer the fight, the more often a mage will be able to shield/barrier himself, and thus a 7-8k mage becomes a 11-12k hp mage pretty easily.

This fight is NOT about sustained damage, it is about dealing lethal singular hits in between the choke points of iceblock, frost-nova, blink, and shielding. If you treat the fight like it is a sustained damage fight you lose immediately; this is completely about burst and disrupting/responding to the mage’s control features. The mages control abilities are mostly instant cast, and they happen in rapid succession, and so the rogue’s damage is choked through each of these abilities. We are forced to create opportunities to deal sizable amounts of damage in single shots. We aim to out-CD the mage, eliminating chokepoints before we reach them, and to deal massive blows.

Before we go on, I’ll go through possible responses to each of their abilities:

Frost Nova/Freeze/snare=Vanish, CoS, Blind, Imp Sprint
Blink=If sprint is already up, you can catch them before any major spell can hit you, assuming no PoM. I’ve even run the opposite direction to restealth from OOC in some cases. Vanish works as well.
Sheep=Avoiding it in the first place with Vanish, CoS, or any stun, Deadly throw for interrupt, and trinket if it hitst.
Ice Block=Depending on whether WE is out, turning off autoattack, either sit next/behind them and be ready to mash if they melt, or hit your special of choice at 0.5 left on their Ice block. Or, you can OOC and restealth. Killing their Water Elemental isn’t a terrible idea either if you’re combat. Be ready to blind the mage.

The good part about this matchup is that the more you know about your opponent, the better choices you can make. So, for example, if you know they don’t have PoM, you can use strategies that aren’t flawed by PoMable gaps, etc. The general fight is the same though, but as you’ll see that CD’s are extremely important in the frost mage matchup…probably to an extent greater than any other matchup.

Step 1–Setting up the anti-kite

As usual, 2x Crippling poison is best. 1x Mind-Numbing is “okay”…but, generally, the mages that you’ll have a tough time beating, frost mages, will be using instant casts the entire fight.

All mages will start the fight AE’ing. This can make your Sap/CS setup kinda difficult. Be patient, play like a stone cold killer. And, if you don’t get that perfect open, then just restart the fight with a gouge, vanish, or even CoS-OOC-restealth after they blink away. Even here, if you really want to win, I suggest sap/CSing. It saves you a premed, and that can be quite powerful after a vanish. They can Ice block through sap, and if you force a block by just sapping, well all the better for you! N52 spamming of sap is invaluable here. CS through sap if the coast is clear. For those who don’t want to spend time doing this (even though it is highly effective), you can just sprint in, premed-open and continue. Premed is safer, less frustrating for your opponent, and much faster, but it is not as effective.

Once you’ve generated your pre-combat points, either through sap/CSing or premed, it is time for the actual open.

Step 2: The Open.

Generally, like the priest, you either want to open when they have no shield on, or when they just newly casted a shield. Wait for this point.

A rogue has three opens to consider:

CS=2-3 combo points for 40e, forces a blink, keeps them immobilized for a split second, and usually gives you a second hit (like an Eviscerate). Can be used from any angle (a huge plus against those twitchy, ‘jumping around’-type mages that make positioning difficult).

Ambush=1-2 combo points for 60e and a massive hit. With talents, it is going to crit most of the time. Requires positioning and doesn’t control the opponent in any way (both of which suck). However, with MoSub, a successful crit Ambush-CB-(4-5pt)Evisc will flat kill any mage that isn’t packing stamina gear, and if it doesn’t kill them, they are at very low health.

Garrote-1-2 combo points for 30e, DoT, and THREE second silence. Three seconds against a mage is an eternity. This requires positioning. It is a DoT, so it deals damage, conversely, it prevents you from effectively blinding/gouging/sapping until the DoT is removed.

They certainly all have their strengths, and plenty of rogues will argue for each of them. I’ll admit a good rogue can defeat the most mages with any of these three. But, I’m more considered with what is the most optimal play. I’ll go in order of what I consider the strongest and explain why.

While I’m a control fanatic, and I do hate to say it, Ambush (especially with talents) is the strongest open you can get against a mage. Assuming precombat points, CS or Garrrote -> BS/Hemo/GS/SS -> CB-Evisc is strictly worse than just Ambush-CB-Evisc. All end with a blink into WE/Block. The question is simply, which dealt more damage before the turtle?

Against a mage, assuming pre-combat combo points, Ambush-CB-Evisc can easily see 5-6k damage in a single second. This is the only class that I absolutely prefer daggers in 1v1. As explained previously, massive singular blows win this match as it eliminates the viability of future action trees and the choke points that mages attempt to use to overcome our CDs. Ambush is a massive singular blow that is easily coupled with a 5-point CB-Evisc. If you have daggers talents, then this is where it is at.

I’m sure plenty of garrote fanatics will argue that “they can just blink away”. But, we have to really look at the time structure of the open->blink. Given latency and the small pause before a blink, you clearly still get a full 1 second against a mage after an open. This is a second strike against a mage before or on his blink (two hits). Certainly, garrote extends this to 3 seconds, and this is good, except Garrote really doesn’t do that much for you. Meanwhile, Ambush->CB (No global, just macro it)-Evisc will still hit every mage if you play correctly. It cannot be stopped when done from n52 spam with normal latency, and it puts on alot more pressure than other opens. It is 5-6k damage now. Garrote or CS leads into 2.5-3.5k damage now. All the opens will force a blink, the question is really this: what life total will they be at when they arrive? (And, will you be able to gouge/blind effectively?)

Cheapshot and garrote are actually nearly tied for a sub rogue. As a sub rogue, CS requires no positioning, nets you that 5-point CB-Evisc. Garrote requires positioning and nets you a 5 point CB-Evisc and 3 seconds of white + 1 tick of DoT. Against extremely twitchy mages, sometimes you might not have time or room for positioning. In addition, as I always sprint for my true open, I can often catch my mage on a gouge as I run towards their blink location post-open…garrote won’t let you do this. For non-sub rogues, garrote is the clear winner. Mut rogues get poison application and a mut in, and combat rogues can extend the silence to 5 seconds (AR early) with kick.

Choose your open. It is going to end up in the same place…the mage will blink, WE, shield if he can, and Iceblock when you catch up to him.:

Precombat points-Open-CB-Evisc. Just macro the open folks:

Open into a one-press, “take 3k damage” key:

/use AP trinket
/cast Cold Blood
/stopcasting
/cast Eviscerate

You want some mean damage to punch through. From here, especially if the mage is retarded (intellectually or lag), then you can maybe add some yellow to the frenzy. Unload everything you have until they blink. Just keep in mind that you’ll want to control the fight from start to finish keeping this mage on his toes. Be sure to shiv if you don’t see crip apply immediately.

The last part of the open is simple: know the direction your mage is facing and be ready to run in that direction while he is blinking. In addition, watch your castbars to know what he is casting, you may have a different response depending on what is cast.

From here, the fight breaks up into two trends. They will either poly/DD or instant you out. The first is usually from a fire mage and the latter from a frost. Look at their buffs and any debuffs applied to you, which type of mage are they? I will divide the fight into PoM/Fire and frost from here.

Step 3 (Fire)–Not eating the poly or the blast.

From the moment the fire mage blinks he will do one of two things: the good ones will PoM/Poly or just poly, the poor ones will PoM/blast or just blast.

If they do not PoM, then consider gouging/kicking/KSing. If you can land one of these hits before they hit you with their sheep/blast. If you don’t think you can make it in time or you see them PoM, then you have 2 options:

1.) CoS-reduces it to a 10% chance to eat a poly/blast, but sustains 5 seconds for you finish them or bring the fight back under your control. Unfortunately, as the fight is pretty fast, this will be the one time you can use CoS, so you need to make it count if this is your choice.

2.) Vanish-Premed- this is a guaranteed chance to not eat a poly, but if the mage is talented and you aren’t quick on the go, it is a chance for them to AE you out of stealth–usually CoC. On the flip side, most mages won’t have the timing to AE quick enough and you get a premed-CS on them for yet another 5 point eviscerate.

Personally, I’m already sprinted, and I prefer to vanish-premed into them, saving CoS for the rainy day…or for when I might lose control 3 seconds later. CoS has more uses that vanish, and CoS can’t be prepped. Better to conserve it for when it really matters. But, if your open is strong enough, you can sprint up to them and kill them within CoS, it is pretty common.

In any case, the mage is in a lot of trouble. Remember that KS is quite useful after a blink. It is a solid tempo advantage. They should not escape at this point. The fire mage won’t have enough control over you because you just won’t give him any time to use it.

Step 3 (Frost)–The control matchup

The frost mage is a pseudo-turtle. He isn’t a turtle in virtue of his direct hp or mitigation, but he is a turtle in virtue of his sheer survivability, shielding+blocking+nova/blink/freze/snare kiting. He will attempt to outlast you, pecking you with instants while he kites and reshields the entire fight. You’ll catch up, break through the shield, just in time for him to slip out of your grasp to start the cycle again. The skilled frost mage will not be using sheep, he’ll be aiming to kite and shield as much as possible while burning through your CD’s. The longer the fight, the harder it is for the rogue to win against a frost mage. With their 41 point frost talent, the Water Elemental, the mage will eventually out-CD us, overcoming our disruption, pummeling us with the control of kiting and peppering us with instants the whole way.

We are talking about multiple frost novas, ice lances all day (and they hurt when frozen), CoC+fblasts to keep us tender, armor to snare us, blinks to keep us blowing CD’s, a pet that deals decent damage and furthers the snare/root aims of the frost mage, double shielding which you will be forced to penetrate atleast once, usually twice, and up to 3 times in a fight–and on top of this they have the uber Ice Block. While it is not as robust as a bubble, it has similar qualities. Just when you controlled your way into an opportunity to deal some serious damage, the mage shuts down your gameplan, letting his pet eat at you, while he gets to blink to safety post block.

For a rogue to win, you must win in seconds. You want to force his CD’s earlier than they should have to be used at no cost to you. I always want to see early iceblocks and catching him with a blind before a coldsnap. If there was ever a matchup that daggers were just the serious bomb it is this one. It forces through so much damage before his next shielding, and begs an early iceblock. Sap/CSing is seriously a powerful tool here as well. Some frost mages will IB through sap (if they are stupid). Otherwise, it means you have premed for your followup open.

Basic lineup: Sap/CS-wait for DR-sprint-open-CB-Evisc-add as many hits as you can before blink if they are slow-

From here you’ll need to consider blowing either CoS or vanish. Which is it? I prefer to vanish against a top mage. We will see. Choosing between CoS and vanish is going to be up to how you are going to respond to their WE/IB.

A good frost mage will blink-WE immediately. WE is the monkey wrench. When you catch up to the mage, you’ve got a pet to deal with and an Iceblocked mage. Bad ones are Iceblocked with no pets, just restealth or spam on melt. To the WE mage, your responses:

1.) Deal with the pet and attempt to blind the mage out of IBlock.
2.) Vanish or restealth off, wait for pet to subside (mage will eat/drink up)
3.) Vanish off, reopen on the mage after block (avoid his AE): Premed-Open-CB-Evisc

Some rogues advocate blinding the mage (and I admit I do this often, but not because it is optimal in a duel, but more often because I know my opponent isn’t the skilled enough to have CSnapped out of block). The reason blind isn’t good is because a good mage is going to be spamming Coldsnap out of block. In the same way a mage cannot stop us from getting a 2nd hit in after our open due to latency and small pauses, we cannot stop a mage from coldsnapping out of block. As he controls when he breaks it, even if you are a miracle worker, he’ll still Coldsnap before Blind hits him. Your blind should still fail against a proper mage.

I’ve heard a few rogues exclaim the beauty of 1.), and in arena matches or BGs, I have to agree. This is the best route due to time constraints. But, in a duel or arena duel (1v1 left over), this is actually not the best option. Option 2.) or ideas similar to it are particularly strong in long matches. You burned his Coldsnap, WE, and Iceblock. You get to charge up and do it again. In arena, this can be very useful. You get blind and CoS back, and even vanish with talents long before they get their CD’s back. Using option 3.) is similar to its predecessor, only in eliminates the possibility of eating/drinking/shielding(in some cases).

From here, you’ll need to use CoS, vanish and prep wisely. A blind after his first iceblock (but before he may have coldsnapped) is very good if you are in range of killing him with a premed-Ambush or CS-CB-Evisc.

Tips:

a.) Good mages double Poly (even after the CC nerf). Be careful about trinketing immediately out of poly. You need to be watching his castbars so you don’t eat the second one.

b.) CoS is the end-all-be-all spell in this matchup. There are certainly pro and cons to using it early. If the fight lasts long enough, a 2nd CoS can be extremely demanding of the mage.

c.) KS can be extremely powerful after a blink.

d.) Deadly Throw can be absolutely spectacular. You can even activate Cold blood on it. Interrupting long cast spells (if they cast any), dealing good damage, and dazing them is really quite nice. With relentless, you can chain throw. Sap/CS-CB-CS-Evisc-Relentess-Blink-Start casting poly-Deadly throw….lol, hilarious.

This is a match that rogues should be winning, except against the best frost mages. Generally, it has more to do with your CD’s than your gear. But, timing, dexterity, and skill are king in this matchup.


Warlock-

We are the hard counter to this class. There is no class in the game that comes back on a warlock that opens on them, except a rogue. The introduction of Cloak of Shadows has made this match very easy. Huge drops in mitigation levels and warlock’s gearing up +spell damage, while often sacrificing stamina, means we have disproportionate gains in HP levels and pretty much buffed melee damage against warlocks as well.

Warlocks aim to use traditional CC methods and kite. If they can sustain their DDs/DoT’s, within the lock components of fel-intercept, fears, seduces, and deathcoil, then they’ll win in a pretty quick fashion. They are truly a fierce opponent against non-rogue classes, nightmares for most people. Luckily, stunlocking is extremely effective against a warlock, and almost completely eliminates their tactics altogether.

Regardless of spec, their DoT and DD damage is sizable, you always aim to avoid it. In addition, they tailor their play style with a pet. We really have three pets to concern ourselves with:

1.) Felhunter–High stealth detection, nominal damage. The counter is sprint and coming up from behind. Be wary of Fel’s on aggressive mode, as they will pull you out of stealth. Generally a weak pet against even a decent rogue.

2.) Felguard–A 41 point demo talent, the felguard is actually pretty good damage, I’d put it on par with an average hunter pet’s damage. What makes this guy actually troublesome is his stun intercept. Timed properly it can disrupt a stunlock and buy a warlock a DCoil. Be sure to evasion right out of your opener, it gives you avoidance and negates a great deal of the Felguard’s utility.

3.) Succubus–Back to CC 101. Seduce shares DR with fear, but it is quite powerful none-the-less. A pro will keep his succy far away, much like a shaman will keep his PCleansing as far away as possible. He’ll reinvis it asap as well. He’s going to try seduce/nuke you. Your trinket, wotf, and CoS are all good ways to break or make yourself immune to seduce. You can choose to kill the warlock despite the succy, or blind the warlock, kill the succy, and then deal with the warlock. Generally, it is better for a rogue to simply go straight for the warlock at this point, especially for all UD rogues. Sprint is invaluable in preventing kites, CoS can eat seduces if necessary. Additionally, seduce/fear/nuking is hindered in that the DR effects build up very quickly. Premed-CS-CB-CoS-Evisc+4-5 seconds of beatdown will kill all but the most stamina’d of warlocks using succies..

The rogue tactic is pretty much the same: burst him down within a stunlock. If the warlock is geared well enough, and my burst isn’t going to take them out, I prefer to save CoS for AFTER deathcoil/DoTs. CoS will eat his DoTs and give you a 2nd open. No warlock comes back after a second open. For second opens, when DC is down, Ambush is perfectly acceptable.

Step 1–Preparation and Open

Pretty straightfoward fight, 2x Crippling poison. Mind-numbing OH is acceptable as well.

Standard stunlock. Should go something like premed-CS-CB-Evisc. If you think they’ll be dead within 5 seconds, then feel free to pre-emptively blow CoS and kill them within that safety net. Mind you, a good warlock will not deathcoil while you are CoSed. Most anticipate that you’ll CoS at the end of a stunlock, and they won’t immediately spam it like they used to. So, if you know the warlock is good, don’t try and be slick and CoS his DC, just wait until after a DC and CoS. Depending on your situation, use a combination of CoS, Vanish, sprint, and blind to lock the lock. Pretty straightforward fight. Stunlock and win.

Step 2—Other warlock issues

It is best to save your sprint until after a fear/DC, primarily because if you sprint away while feared, you’ll have to sprint back, so there are no actual time gains from having sprint up during a fear. Assuming you saved it, sprint can be amazing in catching up to a warlock. Countless times after a warlocks opens on me, or DC’s me in a stunlock break I’ll just COS-Vanish-Sprint for the 2nd opener.

Stun resists are always painful, especially against a class that is unforgiving in regards to stunlock gaps. Once again, our advantage is SO large that vanish-CSing will make it seem like nothing happened.

Soul Link Warlocks can be a monkey-wrench type class. Yet, they are merely a shadow of their former uberness. SL-tanking took some major hits. You’ll see the glowing aura, and it is especially the case when you see that Voidwalker (VW) out. While their damage is substantially lower than other speccs, it has the strength of turtling. It is conceivable that we’ll see 20k-25k virtual HP warlocks in the coming months with SL. But 20k isn’t as big of a number as it once was. With lower mitigation levels, and rogue substantial CD-based burst damage, SL warlocks will still lose. As they can recast pets at near instant speeds, it is usually best to stunlock 100 to 0. You’d rather only have to eat through 1 pet+shielding than two. Blind seals the deal here.

Healthstones should be the in the back of your mind. While they might not be able to DC you during CoS, they’ll certainly be able to create a buffer with an HS that might last long enough through CoS to make you eat a DC.

Tips:

1.) Refer to CoS as “Cloak of Skills”…it is quite parallel to DC’s colloquialisms “Skillcoil” or “Lollercoil”..yes, it is that game breaking against this class.

2.) Kick all fears, seriously. No need to burn a trinket when you don’t have to.

3.) For affliction spec locks, you’ll notice they have a 2nd instant cast fear, an improved Howl of Terror (I.E. Psychic Scream). Watch for it.
Races:

Human: Watch for perception, it is 10-yards of stealth detection beyond what they already possess. You can come from behind. Sprint is good.

Gnome: Can break our snare.

Dwarf: Stoneform breaks all poisons and makes them immune. Goodbye crip/wound/blind.

Nightelf: 1xLevel of Stealth detection

Undead: Not much against rogues.

Orc: Stun resist, good gracious. Don’t let them talk smack if you lose a duel because they resisted 3 stuns in a row but played like a moron.

Troll: Not much to worry about.

BE: Possible to have a boost in energy if they blow their CD for it and have charges. Wait the charges out?
Taxes are nearly finished. We still have a few values to put in (trying to find those). I doubt we'll get much back (we are in a the lower-middle class tax bracket now--used to be upper-lower class). That is fine with me. I'm sure we'll be asking Dad to check over our stuff to make sure it looks correct. I don't want an audit or any trouble. The cool part: we are doing our taxes online. No paper work or jazz.

Speaking of finances, we have money saved up, now we just have to choose wisely how to use it. Things we are looking at:

1.) Paying off the debt (10k)
2.) Visiting Mom and Dad in Thailand (2k-3k total)
3.) Getting a 2nd car. (2-3k)

I think it will be very difficult to do all three of these. I may sell my WoW account to try and pay for some of it.

On another random note, my pants are barely fitting. I think I'm moving from 34-36 to 36-38. I am fat. I am stagnant. Lord knows, I am not one for stagnation. I sit in front of a computer screen more than anyone I know. (Such a special bond with my monitor). My uber-wealth allows me to be fat. Although, for L*nt (so bad it deserves a Bleep), I gave up deep fried foods. I can't believe how much I miss it. So fat. I can hear my mother now: &quot;well, go for a walk, exercise, yahta yahta..&quot; I come home from work pretty tired. I usually cook dinner. Exercising means I need to equip the baby up to go...It is a hassle. Would the hassle be worth it? Sure, I could wake up early and do it, but then I'd need to goto bed earlier, which would mean I missing out on Daily Show/Colbert (my source in so many ways). I don't mind working with my hands as long as my brain is not rotting away. Where can I do both? Teach...gym! Nevermind.

My life is good. I just need to remind myself of that fact. Sure, I lack purpose, wasting away in some senses, hate my job, depise the people around me, couldn't find a spiritual and intellectual home if I had to, and see no real way out of my predicament. On top of that, j3d1h still taps herself on the chest, pointing and saying 'momma'...she mimics, but she has no idea that words mean anything. What is this, The Miracle Worker? &quot;MMMOOMMMMAAA, it has a name.&quot; Will she ever get it?....of course, my wife is just as sunshiney as I am, so we are great empathizers. Other than that, yeah, I do have it good. I'm sure every parent goes through this stuff, whatever. Fulfilling my purpose might be selfish anyways, I've got k0sh3k and j3d1h (in part, my purpose in the first place, am I begging the question?) to consider.

Wow, I nearly sound Emo. I'll shutup.
I always wonder why people call me arrogant. What is arrogance? And, what makes them think I am arrogant? First, we'll need the framework to understand how arrogance can exist:

I have come to the conclusion that value is simply that, value. Everything worth thinking about, worth pursuing at all, has value. Presumably people have value, most would say very high value. People have high value because of their free will, their ability to make moral choices. Of course, we don't &quot;assign&quot; value, that must be innate to the action, idea, or object. We might say that our free will &quot;creates the possibility of value&quot;. But, if we are really begging the question correctly, we must admit that value pre-exists us. Our moral/logic/value-based choices simply reveal the already present innate values of this world.

Other questions come to mind, specifically how we can judge the value of a person. Maybe you've heard people have infinite value (it's a nice phrase to say, it makes people feel good). But, clearly, we could all be &quot;better&quot; in some way, and thus we aren't of infinite value. In fact, we are clearly less than whatever our maximum possible value would be if we are not perfect.

What does &quot;better&quot; have to do with value? Morality is the root of value. They are synonymous. To say something is valuable is to say it is morally good, and vice versa. Remember: morality literally means, what one ought to pursue...that is exactly what we mean by value. To say something or someone is morally better is to say it is more valuable.

Take person A and B, identical in every way, except A is slightly better in value-variable X. The difference in value between A's variable X and B's variable X is essentially the only difference in value between A and B. We must conclude that it is possible that a person can be better or, more specifically, more valuable than another person.

This, of course, does not negate the -minimum- value of a person, as we'd all assume it would be reasonably high. But, we must make the distinction that some people are better than others. Most hate this idea. But, it is undeniable.

We have all been taught, by the post-modern world, that no person is better than another. We want to believe that all people are equal. They are not! Do you think any of us are as good (moral=value) as Jesus? What about the Apostle Paul? What about Mother Theresa? These people, in virtue of their massive moral contribution, are more valuable than we are. But, value also extends even further. What about Michael Jordan? If Basketball and skill in basketball is important (i.e. valuable) in any way, then someone identical to MJ, but lacking only in MJ's basketball skill, then MJ would be more valuable. Value is very hard assess, but clearly it exists and so do the differences in individual net worth.

So, now that you have a brief metaphysical foundation of valued-based thinking in the realm of personhood, we can move on to the real and fairly narrow topic of arrogance.

What is arrogance?

Despite what you may have heard:

Arrogance means thinking you have more value than you in fact have. A person who is arrogant overestimates their value.

Now, now, it would be quite easy for the post-moderns who think everyone is equal to call someone who believed that he or she was better than someone an arrogant person. In the illusionary world of post-modern equality, anyone who thinks they are better is clearly arrogant by definition. But, we know better, we aren't retarded. There are more valuable people than others in the world.

So am I arrogant? Do I overestimate my value?

Many people think so. It generally is said to me in the course of an argument. I defend a position they don't like, and I refuse to think otherwise. I Know they are wrong, and I'll say it. People don't like that. How dare I think I know the answer? How dare I discredit them, and believe my answer is better than theirs? How dare I think I have better answers altogether? How dare I think my brilliance is greater than theirs!

Lol.

I often feel I'm more valuable than others. Of course, I value myself, and especially see that my thoughts as extremely valuable. I see no reason why I wouldn't be (I'm not saying I can't be wrong, but there are only handful of people who have what I have). I see my faults, I see my strengths--both are weighed in evaluating self-worth. I know when I'm wrong, I know when I'm right. If I don't have an answer, then I don't have an answer. I don't claim to be the most valuable person...but I do see value in my opinion (of course I would, I'm just an egoist right?). I have value in virtue of my genius....self-created,  not entirely. But, I how I use my mind I am responsible for...

Mind you! Your value isn't wholly based on your decisions. God may not have created all people equal, and therefore he may not have created people with equal value. So what!~ Why are we repulsed by this? Is it the &quot;Democratic flaw&quot;...where we so much would not wish to be marginalized or be at the bottom of the food chain that we play it safe and say there is no up or down, and everyone is equal. Do you really think everyone has a right to vote? F-no. Do you really think everyone is equal? Of course you don't!!! You only say it so that, if and when you found yourself in an unfavorable position, you could defend yourself under the false pretense of equality.

Getting on with it, misassingment of ones purpose and role can be indicative of being arrogance. I know my purpose is to think. To teach, I don't know. I know where I fail, but I know my success. This is not arrogance.

Most ironic are people's attitudes towards what they perceive to be my arrogance. Now remember, arrogance means one thing:Â  People generally hate my so-called arrogance because they are offended by the thought that I am more valuable than they are...These are often the post-moderns who contradict themselves in assigning and understanding the meaning and application of value in this world. They say, &quot;nobody is worth more than anyone else&quot;. Clearly, this is patently false. Some people are worth more than others. In fact, we each have specific and certain value, some higher or lower than others. I claim I am more valuable than lots of people, often in virtue of simply having more valuable trains of thought. Either 1.) I am being magnanimous and truthful, or 2.) I'm being arrogant, or 3.) I am being meek, and fail to realize my full value.

So what if I claim that? So what if I think I'm right? Did they really sit down to evaluate these? No. The irony is that they are steadfast in their foolishness. The fool is arrogant.

It is evident they aren't as valuable as I am. Their very dislike, their hate for my truth stems from the belief that they are equal to me. They overestimate their value, and they are the one's who are arrogant. How foolish are these people to think their ideas could possibly compete with mine? They overvalue their opinions and themselves. Ah, don't we love the problem of egoism?

Moving on, this egoist/arrogance issue triggers a basic protective instinct in me. I see the world of fools around me, arrogant egoists, people who think their opinion matters as much, if not more than mine. I cannot argue with them, I fall prey to the same argument. &quot;Well, of course, Mike, you are an egoist too, of course you think you are correct.&quot; is all it takes to dismiss me. Why argue with them? Why teach them? Why teach the unteachable? Why should I be concerned with them if they are trash. I must shield my family from their foolishness. I have become completely intolerant of incompetance.

Pearls before Swine. They don't deserve it because they don't want it. If they sought the truth, then they deserve that truth. But, I will try anyways. If and When my family is not vulnerable, then I may be more tolerant. Don't get me wrong, I put up with stupid people all day. But, to allow them to influence me is a different matter. We are chosen among a world of pigs and fools. We must protect ourselves from their arrogance.
What is Economics?

The word 'economics' is from the Greek for ο;span style=&quot;font-family: Tahoma&quot;&gt;ἶ&lt;/span&gt;Times New Roman&quot;&gt;κος (oikos: house) and νόμος (nomos: custom or law), hence &quot;rules of the house(hold).&quot; The word of course has morphed several times to include and consider several ideas. The earliest definitions of political economy were simple, elegant statements defining it as the study of wealth. Later definitions evolved to include human activity, advocating a shift toward the modern view of economics as primarily a study of man and of human welfare, not of money exclusively. Formally speaking, Economics currently refers to the social science that studies the production, distribution, and consumption of goods and services. How blah!? How bland!? How inaccurate!?...The tide is changing; the meaning of economics is evolving.;/font&gt;&lt

I mean to outline a trend in the meaning and pursuit of &quot;economics&quot; which I find, in large part, has been overlooked by even those who work in that field. Essentially, I am inclined to believe a.) The formal definition of economics is evolving and b.) Economics is verging upon the actual study it seeks (which is very surprising), and c.) Economists, who generally gravitate towards furthering economics as a &quot;science&quot; will come to find they have been pursuing something which they do not consider to be science (they may even be appalled at what economics really means).

Mainstream economics begins with the premise that resources are scarce, and secondly, that because resources are scarce it is necessary to choose between competing alternatives. Of course, because economists must analyze the meanings of choosing between alternatives, understanding choices by individuals and groups has become central to modern economic theory to an extent that psychological analysis and decision/strategy-making concepts are now the cutting-edge of this field we call &quot;economics&quot;. Economists believe that incentives and desires play an important role in shaping decision making. It seems like I've heard these claims before *cough....Only fairly recently have economists begun to speak the name of their true (and supposedly new) doctrine. Economists now borrow concepts from the Utilitarian school of philosophy, claiming utility is used as 'analytical' concept within economics, though they claim to appreciate that society may not adopt utilitarian objectives. They are begging the question about our motives and decision-making, as if egoism is absolutely true, but then they go on to protect their beautiful secular “science” with a contradiction saying &quot;it doesn't apply to everything&quot;. 

This concern with utility is most prevalent on a microeconomic level; some economists extend economic analysis to all personal decisions (ahha! a smart lot of them). Of course, it is easier to see the &quot;math&quot; behind individual decisions, and so, as macro-utility is much more complex, it hasn't caught on as effectively. Butterfly-effect anyone? An alternative can be thought of as a vector where the entries are answers to questions like &quot;How many eggs should I buy?&quot;, but also &quot;How many hours should I spend with my kids?&quot; and &quot;Which candidate should I vote for?&quot; These micro-economists, which appear to be &quot;rogues&quot; of their subject, on the cutting edge, are simply extending the meaning of utility within economics to what philosophers have always understood utility to mean. Economists are on the cusp of the meaning of value (one that implies morality!!). How dangerous for them...

As usual, economists will blather on, saying that the relationship between economics and ethics is so &quot;complex&quot; yet &quot;separate&quot;. Many economists consider normative choices and value judgments, like what needs or wants, or what is good for society, to be political or personal questions outside the scope of economics. They go on to say that once a person or government has established a set of goals, economics can provide insight as to how they might best be achieved. It is odd that economists have this separation of positive economics (&quot;what is&quot;) and normative economics (&quot;what ought to be&quot;). They cannot be divided. In order to do solve positive economics, you'll be forced into making normative economic claims. Blind people. The transformation of the subject begins.

Anyone who knows anything knows that utility is unforgiving and completely universal. It mathematically divides up metaethical values among the many things of this world (although we do see amoral strains that act as a social virus—eventually contradictory). It is all or nothing. If you claim egoist utility, then you’re going to be applying this reasoning to all aspects of life. It is ironic, and blatantly compromising of their thesis to apply utility only in matters of wealth, but not to all areas. What has occurred is that a formally “secular” idea has evolved several times into a pseudo-science which requires psychological, mathematical, and now philosophical analysis to determine the who, what, where, why, and how of “wealth”. Moral claims are not secular ones. And, this pseudo-science is less and less secular (much to their dismay). The irony of Economics is that their “study” required them to work through a great deal of things to adjust their initial definition of wealth (and value), only to discover they started a hollow study. Economics, after looking at its conclusion and where it is heading, is not a synthesis of other fields, but simply a direct portal into already existent fields of study (namely philosophy/religion).

Economics began as some study of money. Probably, much as the alchemist who wishes to turn rock or iron into gold through some magic item, the original economists sought to make money through the mathematical study of an &quot;economy&quot; (which is some vacuumous space that somehow relates to the world, we know not how). If only there was some formula in which economists could crunch numbers to decide &quot;which stock is going up today?&quot; Of course, these economists (frontiersmen, pioneers in a &quot;new field&quot;) quickly found that they had more homework to do before they could reach these riches through simple deductions. (Although, one must ask: &quot;what are riches&quot;...something they should have asked long ago). They conclude that money makes you rich.

What is money? I'll be brief; it is the quantification and qualification of value that allows for universal exchanges within a world of comparative advantages. My time here becomes your time spent there. Value my friends, money attempts to represent value (albeit, it does so poorly). In reality, the economist no longer seeks to study money, they wish to study value. 

The concept of value is central to economics. Economists say that an observable measure of it is market price. Again, they see value through a lens of pure material wealth. Hard currency lends credibility to this &quot;value&quot; concept. They assume that value in economics is DIFFERENT than say, &quot;moral value&quot;. Dumb! We already know that value is value, and that it exists in virtue of its worthiness of pursuit. There is no difference. Morality, therefore, must have a price tag, else money means nothing. Economics, in virtue of studying value at all, MUST be a study of all value. 

But, if it is a study of all value, then it is a study of morality! It is the study of God! Isn't economics the pursuit of truth? Isn't economics just pointing us towards the same thing as philosophy and religion? Think back. What is &quot;wealth&quot;? What is &quot;value&quot;? They are those things which are worth pursuit! The economist claims that money is worth pursuit as it is a currency that translates for other values. While they look at monetary decisions, and begin upon utilitarianism, they are blind to the very basis of their subject. 

We do have to ask some questions though. If money really does have &quot;value&quot;...then it could be used to trade for other things of value that we wouldn't have expected. All things which have finite value can be bought with money, correct? Would this allow you to buy a person if a person had finite value? Or...what about exchanging money to makeup for negative values you've imposed on the world? What is &quot;production&quot;? 

A new light shed on economics as a study of true value means we are forced to redefine key principles and components of a subject that once dealt exclusively with material wealth, translating a small study into an already much larger one that involves metaphysical value to be considered. Or, we could just scrap it. Now, while economists are slowing progressing towards the inevitable truth, I question whether they will ever take that leap. Would they be willing to accept these statements? Probably not. They are likely dogmatically complacent in their religion of money. Economics is a falsely secular concept. They use utility and egoism to defend material wealth. Idolaters.
1.) k0sh3k got us in the E-town Swim&amp;Fitness club. That is so expensive. She promises to use it though. If she does, then it is worth it I think. She'll have fun, the baby has a cool daycare program there too. It could amount to relatively cheap entertainment per hour if we use it enough (I think I'll enjoy racquetball, swimming and weight lifting the most).

2.) We had a busy week. Got our online banking to work (finally). Paying 5k of debt. Got our taxes nearly done and sent mom&amp;dads w2s to them. Looked for a car (unsuccessfully). Cleaned that fridge out (I can't stand messy fridges). Found k0sh3k's wallet (in the most obvious place of course).

3.) For some odd reason the Farley's haven't been by for their piano lessons. No idea why.

4.) We've decided to try and simply move to Thailand asap. We will knock out the debt, create a financial buffer, find jobs over there, sell the house, and move. It should be an experience. Close to 8k in the bank right now, 3 after the 5k payment this week. Estimating it should be a few months.

5.) Picked up my Birth Cert. online. I expect it in 3-5 days. I'll ask for a bit of time in the morning off to go and get my passport.

6.) Work is hilariously dull. Timed myself this week: 8 hours of work finished in 1.5 hours. Hrmm...I wish my management could recognize these numbers and do something about it...say, scale my pay with production? How about just let me go home early? Or, even better, let me work at home!! I could easily do my job at home, I have all the equipment, and this is ENTIRELY an E-business. Nothing goes on paper. They may consider it. It would be even cooler if I lived in Thailand and kept this job over the net. Wouldn't that pwn SO hard? 12 hour time difference, so I'd need to make calls between 8pm and 8am Thai time. Eh, whatever, for 30k+ a year, staying up late or waking up early to to squeeze in time would be worth it.
Well, I’ve botted 10k G or so on my Rogue and spent a great deal of that. I have 2k left, nothing to buy. Fully enchanted. I’m without question the best 1v1 player on the server. But, for the life of me, I can’t find a good teammate. Lots of decent ones, Zombienoir and Aesop do a good job. However, it is clear that they are still not top notch. I call blinds, sap, target switches, and focus fires…and they aren’t quick enough. They just haven’t mastered the ability to talk/listen on ventrilo and play at the same time. We are rogues…we don’t break the 1850 rating without high levels of communication. So, arena is failing for me. Too bad dueling is gone. I’m tired of it.

So…..I start a warlock. Botted his ass to 30 real quick. I expect him to get 70 in 2-3 weeks. Gearing him up won’t be very easy I assume. +damage/+stam are the stats I’m looking for, and those are highly sought after. Drain tanking pwns. It is the beauty of resource conversions at its finest in this class. It exemplifies the very principles of offense/defense ratios. It is beautiful–the core of economical comparative advantage.

What is drain tanking? Easy. Load your target with DoTs, and used a very improved Drain life to convert mana to hit points while dealing damage. Chew through mana with lifetap. You have NET gains in many fights. The less you are hit the better. From my math, it looks like Dark pact (just eating my pets mana for mine, stupidly good) will put this tactic over the top. I’ll go succy for spirit regen on his mana and taking adds.

Getting used to the global CD going from 1 to 1.5 sucks though. Timing is very important for the class though. Long cast->instant->kite-repeat is common enough.

Reminds me. F’ing warrior 5-6 levels above me jumps my character while botting. Looks like my bot did very well against him (D-tanked him though, pfft). I come back, kinda pissed…I go for him. I dance him to death, literally keeping my 36 yard spell reach, but outside his intercept range. Eventually, when I softened him up (he was running for his city, kiting me as I had kited him earlier to ours), I actually let him double back on me. Ate my fear, and that was she wrote as he ate Incin+SB+Nightfall’s SB. This class is fun. I feel like a necromancer again.
I've written several times on this idea of Value. For some reason, I've always had a disconnect, and never universally applied this concept. It is elegant and foundational. I've long thought about how one deductively arrives at &quot;what one ought to do&quot; and the existence of God. Inevitably, there are complications, and further building blocks that I must reason through. Epistemological and metaethical concerns are so germane to the problem that we can't move on without first going through those small, but highly relevant claims. The beauty of these building blocks is that they really beg the question for us (something I'm not usually for). Without initially accepting the concepts of value and logic, then there is no point to continue. By assuming these are true, we make way, in virtue of the question-begging, for deductive claims that are much easier to establish, even within a world that more and more wishes to remain &quot;secular&quot; and apart of &quot;value and logic judgments&quot;. Value and logic must be universally applied; after all, they are the foundation. They solve our complications, and they are the first step in our deduction. It knocks out nay-saying post-moderns and relativists. We have a base to work from--one that is the root all others things. It connects so beautifully with all other deductions in the chain. It is the filter by which we can have truth and meaning. So, I'm glad to have a solid starting point in my isolation and application of value. It knocks out most all of the arguments that are against us. You are either for value and logic, or you have nothing to say. The synthesis (and adjusts to be made) of all possible values into a single and universal value gives us leverage. There is no difference between moral value, economic value, and whatever else. There is one value to consider. Is it worth pursuing, and how much is it worth (pursuing)? s

While this doesn't seem like headway to most people (if they even saw the distinction I'm talking about), it really is...Not a person I know really applies these meaning universally. They don't breathe the concepts of value and logic, nor do they extend and consider their meanings in all situations. This is a common disconnect; and I do find that at some level, we are all guilty of betraying the system. We have a rock-solid starting place. It is quick and obviously true; it separates the wheat from the obvious chaff immediately. I am pleased.&


 
This means that our starting foundation is Utilitarian in nature. What is &quot;useful&quot; is simply pursuing that which is most worth pursuing. But, wait...&quot;pursuing that which is most useful&quot; is a principle. Mmm...Deontology and Teleology may co-exist in this context. By following the original principle, one can implement utilitarian deductions. But, the deductions made follow that &quot;rule-utility&quot;. While most rule-utilitarians would not want to place value in the &quot;rules&quot; themselves, clearly the very path by which you must choose has the most value in and of itself. The rule is valuable. The principle remains. We have the makings of our next step (which must be drawn out), the synthesis of teleology and deontology. We cannot accept that damn triangular approach to ethics. There is only one way.
Yeah. I’m getting tired of WoW. Who would’ve thunk it? I see that Blizzard will never adjust the game correctly. We are mere mortals after all..but you’d they think could have done a better job than.. that (/point)…atleast!! Imbalance is terrible. Itemization is now reaching that threshold of utility where you either have it or you don’t–I.E. skill has diminishing returns, or even worse, isn’t necessary.

The lock, eh, he does pwn hard. He isn’t a rogue though. Once you go stealth+stunlock, you never go back. Mind you, I’ve chosen to go for the awful 30/0/31. I’m lacking imp gouge, some camo/mod, and deadliness (ouch!)–but I can still hemo-stunlock. Eh, I stick to daggers though. It is hilarious to just premed-Ambush-CB-Evisc when the time comes. Countless times I’ll remove that pesky healer from the group, and we take them down because I broke their matrix. I feel like the other part of a rogue in this build…not so much control (albeit, I still have it when I need it), but burst.

1v1 is nearly gone (and that saddens me). I hate losing because someone else screws up in group. I have had 10x the skill of the combined opposing team, and we still lose because a.) skill doesn’t mean everything in a gear and class-config’d game and b.) skill isn’t calculated fairly in the group v. group equation (not that it is fair in 1v1 either). Whatever.

The worst part is that I’d love to play with Allen…but he really doesn’t have what it takes (no worries, I know he doesn’t read this blog, I’m TL;DR for him, and he is “so” busy, lol). He is absolutely terrible at video games, and his rogue, which requires a buttload of skill to actually perform decently, is no exception. He is such a combat rogue at heart…I.e. a zerg it down warrior-type that wants to play as a brainless zombie.

Now, certainly I am patient with the inexperienced. I’ve taught countless rogues howto stunlock or take particular classes. I’ve taught some so well that I never have a chance if they open (which is saying something in TBC, because I never get 100 to 0′d anymore), regardless of gear. But, Allen will never learn, and he will never be good. Allen doesn’t have the will or way to learn. Seriously, he’s slow both mentally and physically. It requires a great deal of effort, and honestly, usually he’s too lazy or full of pride to sit down learn and execute what is best. (He was the same in EQ)

“Storyline” *sigh…He doesn’t play a game. I somehow wish he didn’t enjoy the narrative, mostly because–the narrative is stupid and childish. If you were 6, then I’d say, yeah, go for it. But at 23, you should be mature enough to not be sucked in by the lameness of the “storyline”. Play the game to win, simple.

Oddly, this sort of rant probably is against most all players of this “game”…I’m tired of being surrounded by incompetent fools (not just in the game either).

Unfortunately, Ebay doesn’t want me selling intangible goods. Yikes. Where can I sell it then?
Bah! There comes a point where a good deontologist simply has a very hard time partaking of any aspect of life. We become passive, even though we aren’t neutral. 

How could I possibly explain what I’m thinking to others? How could I possibly walk through the argument, especially for those issues which to most people don’t even seem to warrant a discussion in such a direction? 

I seem dead. But, I am not. I am fully aware, and fully here. I don’t participate because I cannot. I am standing by my principles…and in large part I can’t be disciplined and forthcoming at the same time.

Why be reclusive? Because the world is crazy! They are stupid. They are wrong. They are too ignorant to be enlightened. Ivory tower, no. Protection from the world is all I seek. 

Everyday I am sucked into it, and I climb out…I escape. Escape to principles and truthseeking. Escape to thought. I Escape to Reality.

Some days I feel like the smartest person in the world. Other days, especially when reading history, I don’t feel like that at all. A lot of brilliant people lived. A lot of amazing things have been accomplished. There are people who can do things I can not…and vice versa. It is a little of both.

Do well with what you are given. Arrive at the Will of God. The means to this goal, and attaining a resembling will is all that matters. This is enlightenment. Whether you are brilliant in mathematics, art, physics, reading…what have you, these only HELP to get you to that end goal. They are important, yes…almost exclusively insofar as they help on to reach that goal.

I think my gifts aren’t easy to point out. I think mine are judging fairness/justice and redefining concepts, adjusting what they should mean to reflect reality (I.E. judging and interpreting). Now, I’m not saying I use or apply these perfectly. But, it is clear that I have a wealth of insight in whatever I do (with the ironic exception of my own life!).

While I don’t have “obvious” direction in my life, I choose VERY carefully. I am wrong sometimes, but rarely. I know what I know, and I am in my element dealing with the abstract. Combined with my distaste for so many things, it makes it difficult for me to be of use to the world. Maybe God placed me here to just be here to think about this sort of thing (would He have use for that?....surely He would want someone searching out and praising His brilliance!)

I have that hidden fear I will never contribute to the world. I bring myself back and realize that IÂ exist for my family and for God....I know that I may just be one of the smartest Janitors on the planet. The world needs smart janitors. 

Seek God.

God has granted me wisdom in many ways. I need the patience and will to use my gifts.

While I’m certainly a passionate person, I feel choked as a…computer. God has granted the knowledge, but not the ability to communicate or use it effectively. Ironic.

I think my tattoo is superb. It holds my deepest belief and desire.

I know I don’t belong here. It can suck to be….different, you know? I need a light for my path. (Who doesn’t?)…You know the feeling, the intuitive tug…the immediate reaction when you have stumbled upon what IS right and what is fit for your purpose. My wife was this, my major was that, my deepest sorrow for the innocent and a pursuit of knowledge (and its distribution!) must be as well. 

(Wow, I’ve blathered on…structure people, structure!)

&lt;font face=&quot;Times New Roman&quot; size=&quot&lt;font face=&quot;Times New Roman&quot; size=&quot&lt;font face=&quot;Times New Roman&quot; size=&quot&lt;span /&gt;

&lt;font face=&quot;Times New Roman&quot; size=&quot

1.) Bought a car. 1200 for an Oldsmobile Cutlass (Supreme, oh yeah?) with 110k miles. It idles high, always 1k RPMS higher than it should. Nothing dangerous in that aspect. Although, I think the ABS is on permanently (which it really shouldn't be). I'm thinking it was worth the 1,200.

2.) k0sh3k got a new doctor. This one takes her seriously and really seems to think there is more to consider that &quot;just being a mom syndrome&quot;. k0sh3k has new med's (which seem to be working so far?) and has a CT scan today.

3.) j3d1h can drink out of a straw. She shakes her head &quot;no&quot; as well. Seems to be pronouncing sounds that resemble words more than babble.

4.) JRE came over for his GRE's. He did alright on the test from the sounds of it.

5.) Still need to fix that bathroom, fix Claudia's car.

6.) we are going to take care of another family's kid after school while their baby is having surgery in Kosair (yeah, pretty serious).

7.) Found out there is no spring enrollment for Talbott. Eh, ok. k0sh3k and I will wait a year then. We could use the time I assume.

8.) Mom should be coming in about 2 months (I'm going to try and find the dates out from her). I think she will be kind enough to take j3d1h for us and let us escape for some R&amp;R.

9.) Oh yeah, I said we were going to Talbott...this was because we need an education before we goto Thailand. Perfect programs for us there. Will be 10k tuition per year for both k0sh3k and I together--dirt cheap.

10.) The organist for Memorial sang high praises of my piano student Caleb Roberts. The kid is pretty serious (as far as his personality)...I knew that kid was cool.

11.) My back is spasming, it feels very much like what happened to my neck a while back. But, thankfully, it isn't nearly as intense. No passing out, yay!

12.) A and J (no title required) are forced to find a new place to stay. I don't think the owner of the house will be able to salvage anything. Good luck to both parties.

13.) Yeah, I hate my church. The Sunday school class is the best thing (and even then, it can be truly lousy...&quot;everything for appearances&quot;). I don't feel satisfied at all in church. I walk into service, and I can smell the stench of hyprocrites. Easter was the worst. On Easter and Christmas we will always have the attendence of the 2-time a year &quot;christians&quot;...these people are half-breeds, they are filth. They are defilers. They are the &quot;good people&quot; who lead the world to confuse Christians with...that trash. All or nothing people. They are less than the unbeliever. I am disgusted to say the least. I sit in silence.
Hmm...It has been a week. I'm ready to sleep.

Last night j3d1h jumped off the couch face-planting a book (and she is heavy, so that really can do some serious damage). Damnit child, how many times have I told you not to do that!?!11!? (jk) Anyways, her top tooth split open her bottom lip pretty well. She had blood gushing everywhere. We freaked out.

I didn't know how bad the situation was, so I reacted as if it were the worst. I soaked up blood and made sure j3d1h wasn't choking on it. I applied some pressure with a towel wrapped in a ice. (yeah, I know, I'm stupid). From what I understand, the head bleeds well (although the mouth regenerates quickly). In any case, it was a serious matter and I was a desperate parent--I do not take things lightly.

Of course, the cut wasn't that bad. But, at the time, I didn't know if this girl had a lip anymore or not. My main concern was making sure she wasn't going to bleed or choke. Lord have mercy, there have been very few times in my life where I was so filled with fear. That is one of the worst feelings in the world. 

We called our doctor immediately (busy)...we weren't going to wait. We called Janet-- Janet said it wouldn't hurt to have it checked out. While k0sh3k was on the phone I got j3d1h to calm down (and I calmed down too). The blood was coagulating (sp?) and the lip growing big. I sit down with her, she's past the shock, and then she realizes she's still in pain (and I know the difference in cries, I don't respond to whining, but I know this one hurt even from the sound coming from her mouth).

We examined her lip (had to pull it down and out to see the full extent of the cut). It was a decent length, but we couldn't tell how deep it was. By this time, I know my child is safe, so I've changed from surival mode to problem-solving mode. The cut was pretty deep though, and we decided to goto the hospital, even if it was likely j3d1h wasn't going to get stitches.

j3d1h was doing okay while distracted ...so we didn't know whether she needed to see the doctor or not. Better safe than sorry, right? So, we head to the hospital ER, check in, and the nurse brought a doctor into the triage room to see if the cut needed &quot;suturing&quot; as they put it. He examined my screaming child, and could not make a conclusion right then and there... (wtf, why not?). So...we wait for some crazy amounts of hours. After it gets 2-3 in the morning we finally in the actual ER. At this point, my child has been asleep on my neck for a bit, so she gets MIGHTY pissed off when we enter the ER. And, I mean, this girl was ferociously angry. She flat squalled for another 1 hour while we sat in the actual ER. I don't blame her, it was late, she should be sleeping, and instead she's bleeding out of a painful cut on her lip.

They examined her again and they decided to suture. Whether they decided to suture because we had stayed for so long (as if we might have attitudes of this trip to the ER being a waste if they didn't do anything) or not I do not know. I think the head doctor gave valid justification for the stitches.

Let me tell you the worst part of my night: four people (me included) holding my child down while she has her lip stitched. We didn't just hold her down though. A kid that had been nearly unwillingly awake and screaming for the better part of the night, who generally dislikes any sort of restrainsts placed upon her, was literally fitted and strapped into a device designed to force the child into submission and stillness. My child, who is is truly my child, did not submit. Yet, still, the huge straps choking her body down to the board behind her did not contain her fury. I had to do it.

While I don't really care if I got stitches or whatever, watching them open, close, prod, and stick my child's wound over and over again while I not only sit by and watch, but help them do it by securing my child for her torture session, was traumatic for me. It had been a long day and an even longer night, and now I was helplessly required to force my child to endure that mechanism of submission so that the needle, tweezers and wires could be used to stitch her lip. She fought the whole time, choking on her blood and snot. Through our containment of the child, Her face and her limbs were compressed, almost to the point of bruising. Man, I didn't want to do that--I'd give anything not to have to do that again. I know I had to do it.

I don't know which is really worse: a.) being helpless, and not in control of my child's future and welfare (like the beginning) or b.) Causing my child great pain, even if it is best for her in the end (you sit there and do it, it isn't so easy as you might think)

I realize these are both two different coins, both with different sides (and I have mixed, yet exceptionally strong feelings regarding them). The first eventually leads to my child making her own choices (good and bad ones I assume), choices that will be meaningful one's in God's eyes. I hear that is a pretty necessary precondition to be of value to God. The second is useful, it allows me to cultivate a fruitful child in the end, one that will be passed over as Judgement falls upon those who did not have her painful training.

What a night.
Wittgenstein was wrong (a box of contradictions). As brilliant as his understanding of language may have been, his dissection of &quot;form&quot; is clearly flawed (upon which rests a great deal of his theory). Form is pure logic, it is required as a base for meaning. F-ness must exist, or we have no true reference and no value base from which to communicate or think. Wittgenstein, like many others, does not understand this. Of course, we can all deny that &quot;metaphysical object in the heavens&quot; which contains the truth-meaning of X, but they go on to deny even a simplistic understanding of form as a tool to categorize (which form is more than just a categorizer). The truth is right after a &quot;body in the heavens&quot;...it is still a concrete necessity of the universe.

Ironically, his one base example used to defeat the validity of &quot;form&quot; is...(drum roll), the &quot;form of gaming&quot;. I own this guy. I can certainly see why he made the mistakes he made though. His questions regarding how a game could possibly have a form stemmed from some complex issues. My essay answers his questions, restoring the dignity of the form. The denial of &quot;form&quot; (or as my dad would prefer, &quot;logos&quot;) is founded upon a lack of disciplined thinking. Moving from &quot;scissorness&quot; to &quot;gameness&quot; is a perfect example of that slippery slope where we can think that &quot;forms&quot; just might not be a universal necessity. It is easy to identify and validate &quot;form&quot; in the context of something as simple as scissors; but it becomes so complex and difficult to understand the form of other things (like game) that even the best philosophers of this century will give up, and consequently, they deny the the universality of form. Essentially, whether they can identify the form of something or not is irrelevant to the fact that forms must exist.

The trick to the form is that is more than mere semantics or words. We can't just think of form as a way to categorize things, it must be more than that if we wish to actually reference something. F-ness requires it is real if we assume what we say makes sense and has an honest reference. We beg the question of forms, but we fail to realize what we have begged. When you say &quot;white&quot; you are referring to &quot;white-ness&quot;...either a.) you aren't thinking of anything actual, and what you've said is completely non-sensical, or b.) you have referred to something real. For any meaning to exist, you'll need to assume the latter. Tough beans.

This issue, alongside the books I've been reading and the essay I'm working on, brings me to an odd disagreement that I have with my dad. It is this issue of &quot;semantics&quot;...

Don't get me wrong, my dad is as smart as they come-- seriously, he is brilliant. He has a wealth of knowledge in many areas which he can use to synthesize and deduce conclusions which can be fairly extraordinary. So, when my dad says something, I tend to listen (and think). While I've never fully understood the problem he has with what he refers to as &quot;semantics&quot;, I'll do my best to describe and consider it. (Beware strawman!)

Formally speaking, semantics (ironically) means: the study of language meaning. (Of course, debating the meaning of semantics has to be the funniest thing I've heard all day.)

My dad knows the dictionary meaning of semantics, but when he says it, he uses it in a pejorative sense-- much like how one dismisses an argument as mere &quot;rhetoric&quot; (rather than substance), my dad (like many of us) describes some arguments as merely &quot;semantics&quot;. There are good reasons to do this, but I think we have to be cautious in our use of this word. In his uhh...tone of disapproval (which is most often deserved), as he calls out &quot;semantics&quot;, he seems to point toward a type of argument that is inauthentic, invalid or false, usually one blurred by ambiguous wording, which lacks logic, relevancy and true meaning. Clearly, he doesn't mean the dictionary meaning at all, he just means to say that the speaker is twisting word meanings or being ambiguous to arrange a false argument in order to justify something that dad believes can't logically be justified. Namely, if we corrected the &quot;semantic&quot; issues, the argument falls apart. Clearly, every false (whether valid or invalid) argument in the universe is based upon what he refers to as &quot;semantics&quot;.
I think his favorite example might be this guy we laugh at: Paul Tillich. Ever read something from this P.T.? P.T.'s arguments are like water. There is nothing solid to grasp. While we might be able to chart out a few syllogisms, and definitely see the 1+1=2's and the If A then B; A; therefore B's, we have a huge problem with the very meanings, definitions, and words used in those false syllogisms. P.T. never goes to fully desribe or defend the very meaning of some variables in his equations. Because his variables aren't fully fleshed out or meaningful, his greater argument made cannot have meaning either. P.T. rides his use of &quot;semantics&quot; or unjustified redefining and use of terminology to lend false authority and validity to his end arguments. It is easy to see he has poor arguments because it is easy to see how he weasels his way into false or useless word meanings.

In reality, when we call something &quot;semantics&quot;, we just mean that the meaning of one of the premises is distorted, illogical, or meaningless. While the argument can be logically &quot;valid&quot; in some broad sense, its conclusion (the sum of the premises) is false because at least one of the premises is false. Or, in other words, semantics, in the way dad uses it, must really just point toward any untrue-valid argument by definition, as it is obvious that every untrue-valid argument is flawed not because of any strict validity argument, but rather because of some illogical or meaningless piece of language in one of the premises.

For example:

If A, then B,
B
Therefore, A.

This is an invalid argument, even if Premises 1, 2, and even the end result of 3 are true. Or, to fill in the gaps with an example, we can say:

If it is raining, then it is wet outside.
It is wet outside
ConClusion: It is raining,

Invalid. Clearly there is some causal link that must be made from 1+2-&gt;Conclusion. But, stand that aside, and realize that this is in valid in virtue of that broken causal link (so we can't claim &quot;Therefore&quot;), and we can easily see that 1, 2, and 3 could be true, we just can't deduce 3 from 1 and 2.

This is the invalid argument, and it is not what my dad means by semantics. Dad means that an argument is valid but false. So, we start with a logic-shell that works (making it deceptive, as we want to think of valid arguments as true ones when we aren't completely disciplined in our thinking), but still have a false argument due to semantics. The perfect example is a counterfactual.

If santa clause is real, then X.
Santa Clause is real.
Therefore, X.

It doesn't matter what X is, X could mean anything, even something illogical. Why? Because the &quot;if&quot; can never be true, i.e. it is semantically non-sensical, we can say whatever we want about X and it doesn't matter. A person can justify X if they can make you accept the object of the &quot;If&quot;. All arguments break down into base syllogisms. In the end, you have to go claim by claim, word by word, and assume (and be willing to defend) each meaning. This is just a requisite to logical argument. Our disagreement with the above is not from an initial validity issue, clearly it adds up, rather it is the false meaning placed in a premises (namely premise 2).

&quot;Santa Clause is real&quot; is such a base premise (basest of basest, as premises are actually conlusions themselves formed from sub-premises, and so on and so forth until we reach statements like X is true). Most just shorten this argument to &quot;Santa Clause&quot; and the &quot;is real&quot; is silent (and assumed). Obviously, &quot;Santa Clause&quot; lacks meaning, it does not align with reality. This is what dad must mean by semantics. In virtue of a distortive, ambiguous, or meaningless word(s), one or more premises is false, thus the conclusion isn't justified. Clearly, this is simplified, but every &quot;semantic&quot; argument MUST boil down to something of this nature.

I think I prefer just to say that a premise is false. It is clearer to think in this fashion, but much more difficult because we will be asked to show which exact premise is false and why (something we aren't always capable of doing). Saying &quot;semantics&quot; is short, but not very descriptive when you haven't fully fleshed out its meaning to your audience. I think we should leave the meaning of &quot;semantics&quot; as it is...a purely good and reputable idea. An undeniably true and necessary concept. The denial of true semantics is the denial of form and absolute, DISTINCTIVE truth, which is just relativism (which I've deduced is undisciplined thinking in any respect). Dad, of course, would never deny true semantics. He has the same passionate hate as I do for poorly made, ambiguous, and especially deceitful arguments that justify corruption, sin and irrationality. Semantics is clearly necessary, it is the basis for all argument, as we cannot have premises without words and absolute meanings to construct those arguments. So why do we say &quot;semantics&quot; instead of just explaining why an argument is wrong?

Clarity and distinction are not some unnecessary hairsplitting. They are required. Unfortunately, it can take a great deal of time and effort.

I think sometimes calling an argument &quot;semantics&quot; can be used in situations where we don't have the exact reason why we believe a conclusion isn't justified and we don't want to spend the time to find one. Both dad and I sometimes refer to things as &quot;semantics&quot; without fully having justified what we mean or why we think an argument is false. Often, this is because don't know the end answer, or because we can't articulate the answer, or because don't have the patience to truly dissect an opposing argument correctly. We have to be careful in how we dismiss arguments, sometimes we haven't dug deep enough to honestly make those claims.

Lol, wow, this brings back memories. I remember before dad left for Thailand that he offended me one day by saying I was just using semantics. Of course, as a philosopher (and somewhat of a literalist), I took that as an unfair dismissal of both my argument and even my life-pursuit. I don't think dad meant the latter. But, I'll be glad to clear up what he means by semantics.

Even the subject of &quot;philosophy&quot; is a shrouded mystery with my dad. Sometimes he likes it, other times he treats it as heresy (I'm no different). He is a pragmatist. (strawman?) I think he doesn't always see the point in pursuing ideas if it doesn't show obvious physical results. The actual pursuit of truth for the pursuit of truth may not always seem reasonable to my dad. And why wouldn't he think so? Ideas need to be useful to a utilitarian! =) Ah, but that is another topic for another day.

Now, of course, I do not want to be accused of grandstanding or limiting what is posted on my blog to only my arguments without giving anyone a chance to disagree. I don't mean it as some unfair exhibition of my thoughts. Honestly, I write whether anyone reads or not just so I can organize my thoughts (although, I do a piss poor job). Feel free to post replies!

Oh yeah, Umlaut is a funny word. I think of a german thug bellowing it. Wittgenstein was a thug. Ghett-o-matic.
Look inside yourself. You know there is a struggle. You have to make the decision to do what is good or to do what is evil, you will fail someday in this choice (probably many days). You will know the Will of God, but you will deny it. You will rationally choose that which is irrational. You will be, in that instant, post-modern and a relativist. You will deny the truth. You will choose to change your perception of good being good, to the wrong being good. You choose what you feel is most valuable (always--undeniable fact), and when you choose evil, you are claiming that this &quot;evil&quot; really isn't evil to you, you are saying that it is the most valuable option. You willingly modify your memory, your belief, and your knowledge of what is good and what is evil. You give in to that temptation to do wrong. You believe you are smarter than God, that you are correct and He is somehow wrong. You commit blasphemy. You refuse to relinquish control, to give to God what was already His to begin with! You deny God His right to your mind and to your choice. At some level, everyone is the deep sinner. You doubt the existence and truth of God by your very choice and desire to do evil. You are no better than the rest of the trash in this world in this respect.

It is in this mindset that I have the utmost empathy for sinners. I see us as brothers in a struggle, a self-conflict. You cannot pass this off as mere &quot;angst&quot;. This is a question of denying self for God--you better be anxious about that! For those who are not &quot;nervous&quot;, I think a.) You are either perfect or, and far more likely, b.) you are too stupid to realize you are also in this continual conflict. When I am not actively evil, I hope I can be honest about who I am in those moments. I want to reach out to the people who are stupid and evil, especially because I know I need it when I am being stupid and evil. I have been where they are now! I must be discerning, but I must be compassionate.

The denial of such a conflict, or the scoffing at the honest outward manifestation of such a conflict that we all obviously have (but choose to hide), is a choice of ignorance, hypocrisy, and a choice which lacks the compassion and will to help those in need (the people in conflict!). It is here that I fully appreciate the music of Nine Inch Nails. How shocking!? Right? Why would I listen to NiN? Isn't he demonic (C.S. Lewis spells it: Demoniac)? Isn't he evil? Look at his lyrics to some of his more blasphemous songs (and I rarely can even hear lyrics in a song, I only hear music, ask anyone; I still don't know lyrics to songs I've heard hundreds of times...but when I have a spiritual stake in the matter, I can remember the words for some reason...Church music and Nine Inch Nails).

NiN songs, the best ones of course, are concerned with this idea of control. While I do not make the same conclusions as my friend from NiN, I can see where is coming from. I see him across the bright boundary. I know I jump to his side of the boundary each and every time I sin, and I cannot act like I have never been there. I see why he is there, and I admire that he has the balls to flat say what the conflict is in the end: an issue between our control and God's control. Do we give up ourselves to God? Yes, he chooses incorrectly, but he is no hypocrite--that boy sins boldly.

To any autonomous and sentient being of this world, giving up the true authority and control of self is a much larger thing than most anyone can imagine. It can feel worse than death (and there are several things worth than death if you need further explanation). It is a willing sacrifice of that which we most value about ourselves. We honestly cannot justify our occupation of this control, we are required to give it back. The greatest good is to give the control back to God. You are meant to be a slave--you are not meant to value yourself. You are only valuable insofar as you are useful or good to God. Do you know what is required of you? Can you possibly fathom the robotry asked of you? I doubt many do.

Yes, welcome to existentialism. The land where everyone fails, where most are blind, and where the few live in anguish as we recognize both what is required and why we fail over and over again.

While I listen to NiN, I know where I stand, and I am sobered. This is the spiritual battle that is before us all. It is real. It is the most important choice we can make, and NiN does a better job of showing this than half of the happy-go-lucky-warm-fuzzy crap I find in church. I would rather dine with a sinner that knows he is a sinner than the likes of the people I goto church with. Lukewarm is really a continual denial of this battle of control--it is no different to me than the unforgivable sin.

You are all in or nothing. I have much more respect for those who choose nothing than the lukewarm. The ones who chooses nothing has a chance to repent, just as I have a chance to repent when I choose to sin and when I have temporarily chosen the nothing.

Here, at the recognition of our base conflict, it is easy to see why one would &quot;mourn their faith&quot;. Every bone in our body seeks to maintain control of ourselves, we want to be ourselves. Being a true Christian is more than a leap of faith, it is the purposeful casting of one's self off a cliff, hoping never to return. It requires, to some degree, self-hatred in that sacrifice. Matured faith is much more difficult than we make it out to be. God help us.
So, I've had the opportunity (I.E. free time at work) to do some reading. And, on top of everything I always read on the interweb while in the Ville of Louis, in the past couple weeks I've read actual words on paper, including:

6 of 6 Harry Potter series (7th book is coming next month, be prepared!)
'Manufacturing Consent'
Some of 'Anna Karenina'
'This is Your Brain on Music'
C.S. Lewis's Space/Sci-Fi Trilogy

Nothing much to say about the Harry Potter series. I mean, I've read them before, and I'm just prepping myself again for the final book (hard to keep that much storyline in your head all at once). Although, I must say that after a 4th time reading through, I am struggling with the underlying presence of relativistic thought in this book. The struggle between good and evil amounts to something less meaningful in these books. It is apparent in the last part of the series that &quot;love&quot; conquers all, and our enemy is &quot;fear&quot;. Oh, please--Donnie Darko again? I am now having to think about when I would let my child read these stories.

'Manufacturing Consent' was simply fantastic. Noam Chomsky has created a masterpiece essay. 1/3rd of the book is introductory thesis. The stuff in the middle is highly relevant and exhaustive support for his thesis, which is maintained by the last third of this book: pure citation. This book was made in 1988, and it reads like a book attacking our world today. Superb book.

'Anna Karenina' is a loathsome book. Don't read it, please.

'This is Your Brain on Music' is a book by a neuro-bio-physio-psychologist with a few extra PHD's and a wealth of experience in all things music. It is seriously a good read. He dives very deeply into the brain, the mind, other biological functions, and how music interacts with these objects. I found it to be thrilling.

C.S. Lewis's Space Trilogy was...different. 'Out of the Silent Planet' was the first book. It honestly hinted at moral relativism and Darwinian thought. It was decent sci-fi, but we were left more confused than when we started by the end of the book. Wonderfully, the first book is resolved and completed in 'Perelandra' (the 2nd book). The second book was by far the best of the series. It was obvious C.S. Lewis writing. Only he can make you read a story that you would have been unwilling to read if you had only known what C.S. Lewis was writing about in the first place. I am certainly glad I did read it though. The 2nd book is a fascinating account of the fall. Every 40 or 50 pages, you'll find the few paragraphs that he has been working towards for the entire book, and you will be astounded by the astute insight he has in store for us. And, frankly, C.S. Lewis's genius was that he could put immensely complex theological ideas into fun, tightly composed sentences and allegories. He does not fail us in the second book. The third book, yes, he fails. My wife didn't like it because it was &quot;sexist&quot; (which it wasn't blatantly). I just thought it was a poor resolution to the story. He should have stuck with the 2nd book, and left it at that.

And, I'm starting in on Flannery O'Conner's short stories (Epiphanautic Grim Allegorical Southern Gothic Protestocatholic Overly-Symbollic Existential Revelatory literature with a pinch of Egalitarianism, and probably too much detail that we are supposed to glean &quot;deep meaning&quot; from...). You know what, these stories put me in such a good mood. I am inspired to glance off the pages of Mz. Flanz stories, to look up and observe the finer qualities of &quot;humanity&quot; in my co-workers. ROFL. Oh, and I'll define the odd word for you. Epiphanautic is an adjective that refers to sailing or navigating in a metaphorical sea of epiphanies (generally, if there is a sea of them, then you are hallucinating--you just think you are receiving an inundation of divine manifestations of wisdom and insight). Please savor this word. Yes, it is very good.
My brother said something odd to me the other day: he thinks he is not a good writer. I've seen my brother's writing (for a long time), and I simply have to disagree with him. I don't disagree just because his writing has always been much better than anything I can do, I know he is a good writer because he communicates truth (and does a good job of presenting it to boot). I know he can write very well, but JRE simply disagrees. He wouldn't explain what led him to the conclusion, but my guess (which is probably quite accurate) is that the English professor that teaches JRE's &quot;Christianity&quot; class is overly harsh, critical of the wrong things, and maybe even lacking a full understanding of what &quot;a good writer&quot; exactly means. JRE will see his paper marked up or given a poor grade, maybe due to &quot;passive voice&quot;, and he feels crushed over it. I told him otherwise.

Don't get me wrong, I would be disappointed in the low grade I got if I had worked so hard and produced something I considered so good. But, JRE doesn't stop to think about why he got the grade, or if the grade was warranted. His base premise concerning his belief that he wasn't a good writer was essentially:

His writing isn't beautiful or elegant.

My reply: So what? What does that have to do with good writing? If you are writing an essay (which is all our family tends to write--even our letters our politicized essays), the beauty of your essay does not spring from your rhetoric, use of syntax, or colorful language (f-to the l33t izz0). The beauty of an essay is in the truth-value, relevance, and significance of the very contents of the essay--not the way in which it is said. Wouldn't you prefer (or in fact value) an essay with mere coherence (so, I guess it isn't flowery or aesthetically pleasing) and insightful content than a useless, shallow, and illogical essay that we might consider aesthetically pleasing? The form of an essay has nothing to do with aesthetics--the essay exists in virtue of the argument to be made. And, we will soon find, all forms of communication (and writing) have one purpose in mind--they all are a type of essay (some are just better essays than others).

Now, if you have a poor argument, then you have grounds for dismissing an essay as awful, regardless of the other qualities of the essay. The beauty of an essay can only truly be analyzed insofar as it fulfills the form of the essay. Poor arguments translate into ugly essays, while good arguments are beautiful essays

But, what of the linguistic mechanisms required to transport those beautiful thought-capsules? Obviously, the mechanisms will be valuable insofar as these are necessary in communicating and transporting the ideas and details of arguments. Coherence is the base requirement of communication--not aesthetics. I propose that we have a false sense of aesthetics, a twisted sense of beauty, and an ill-conceived notion of the purpose of communicating in general. It is not about the emotions you inspire; emotions that do not stem from rational propositions are meaningless. Communicating is about transporting truth--all else is secondary, including that which we perceive to be &quot;aesthetically pleasing&quot;.

It reminds me of my principle disagreement with my own &quot;Christianity&quot; professor. He was a mystic and spiritualist--generally irrational. More important to our topic, he could truly impress us with his language of decor while speaking of his beliefs. He was eloquent, but he was very wrong. The lack of truth (which was hidden to most) made for hollow or even damaging communications. This false beauty was dangerous!

Ironically, both our professors are &quot;very close friends&quot;.

JRE really has taken to Berea more than I did, not because I didn't have a chance, but I think I had a good reason for being so cautious. I am glad he is leaving that place, he should know he is a good writer and why he is a good writer (and why he is not to be Berean). I did not wish to be sucked in by the false prophets--and believe me, these guys are pro's. Their belief is based too much on emotion, which they problematically use as a justification, as if their feelings had something to do with their rational argument. Sure, they use big words like &quot;Christomimetics&quot;, but they truly lack the fundamental principle behind the &quot;image of Christ&quot;. I remember reading an article by JRE's teacher on &quot;orthodoxy&quot;, and I couldn't help but laugh. Why? Because, this heretic, this...relativist English professor was going to try and preach to me what the &quot;straight path&quot; was? He has no earthly clue; all he has is his emotion. These are well-spoken emo-kids who convert masses into believing that God and religion are mere &quot;mystery&quot;. They are concerned with a spiritual revelation that is far from true belief, from--orthodoxy and that actual Imago Dei. They pursue some heretical neo-catholicism, which they consider &quot;orthodox&quot; (roflcopter), and use semantics and beautiful language to mask the empty and meaningless &quot;ideas&quot; that they disseminate to their students.

I can see why students like these teachers. We are taken in by their appearance of intelligence and through the false beauty (aesthetics) of their words. But, their ability to spread heresy within that false beauty is truly dangerous. It is why I do not think so highly of aesthetics in the end (although, I must admit, I do enjoy them, especially when they are used to display the truth).

The longstanding feud I will have with these....artists is the question of aesthetics. Why pursue beauty? It is not important in and of itself, not outside the context of the truth atleast. Beauty requires relevance, it is only revealed from something much greater--something with a moral purpose.

And, it is here that their argument unfolds. They seek aesthetic appeal. To them, it is here that words and art, while attempting to communicate truth, are mysteriously mixed with emotional and irrational expression. It is contradictory to the very nature of absolute truth. These professors think of communication in general, as an emotive tool, not as a truth-seeking tool. This is a warped perspective. As they cannot understand the root function of communication, they cannot understand the value of JREmy's thoughts and what he has written.

JRE's Spanish teacher (my Christianity Professor), held interviews for going to Rome on short term. JRE was denied (not just because he is related to me), but possibly because of one question on his application and in his interview. JREmy explained that his favorite piece of art was &quot;1984&quot; by Orwell. De Rose thought this was odd, and asked JRE for the reasoning behind the answer. My brother did me proud.

JRE essentially said: &quot;The purpose of art is to communicate truth&quot;. And, in this case, JREmy was fond of the moral truth and ways in which it was communicated in the art piece of his choice (books are a form of art). JRE is correct. He understands WHY we read, why we look at pictures, movies, and listen to music. While words may not be necessary (you can listen to a symphony or observe a painting), the use of words might in fact be the most effective form of communication.

Of course, De Rose didn't like this. He felt the trip (and life in general) was about finding meaning exclusively through what he considered to be true &quot;art&quot;. But, it is evident that he fails to understand what is &quot;art&quot; means, and the limitations of certain mediums (and the limits of natural human perception/deduction). De Rose thought JREmy should pursue pictures instead. The professor thought this because he didn't understand the limited value of pictures, or even the reason why one would create or observe a picture. He thought communication was meant to inspire emotion, and probably felt that pictures did a better job of this than words.

They say a picture is worth a 1,000 words...but that is only because people are too lazy to read and too stupid to realize how difficult it is to describe important and complex truths in a picture. Only the immortal genius can look at the world (or a picture) and decipher and deduce the complete meanings of what is around him. Not only is the picture not a medium for the everyday man for the most important truths, I don't think it is possible for our small minds to make such deductions from those pictures when we already have such great difficulty with a much clearer and more effective medium for important and complex truths, words. If you can't understand it in word, how could possibly come to know it through a lesser medium?The picture, to gain any serious meaning, requires too much work for a mere mortal to deduce things from (not that it isn't possible, but rather it probabably isn't worth our time). Words, on the other hand, have the beautiful ability to easily and effectively communicate a truth to even the stupidest people. The written text and spoken word are tools; they are the best mediums for communicating substantial truth to a population. In reality a word is worth a 1,000 pictures to small minded mortals like us. We seek the truth, and in our pursuit, we will be most effective in using the best medium: words. There are very good reasons why God would choose to communicate truths to us in words (no Holy Ghost arguments please, the Holy Spirit guides us toward the Word, grace through undeserved and unjustified emotional pursuit of God--this is grace, not justice...for our own pursuit, stick to rationality).

Our teachers do not agree. They see a meaning deeper than what words can express--and it is here that they fail. They do not understand the full implication of words. They do not understand absolute truth. They do not understand relevance. They do not understand form, function, and orthodoxy.

JRE is a good writer because at his core he knows what his teachers do not. He knows the fundamentals, and he understands why we write. For now, maybe he is just longing the bliss of our teachers' ignorance because their path is much easier. It isn't hard to be stupid.

I don't want a fuzzy picture, I want an immaculate concept! Words paint a much clearer picture than oil on canvas. Mortals should be economical (as we don't have eternity) and realistic in our pursuit of truth. While somehow our foolish professors are blind to the obvious, it is evident that the guiding invisible hand of opportunity and lifenomics has long been persuading us towards mediums which most effectively and efficienty express and imbed in our minds the truth of God, and in this case, the beauty of truth-seeking words in virtue of their orthodoxy, relevance, and truth-value. JRE seeks truth in his writing, and for this, he is a good writer.
So, yesterday, I realized we are bad parents. k0sh3k was sleeping on the couch (she was exhausted, the 'j3d1h' can drive anyone crazy). I was, of course, on the computer, with headphones so as not to disturb the living dead on the couch. The floors were clean and the bathrooms were as childproofed as we can make them. The door to the baser closed, electrical sockets plugged with the plastic thingies...you name it. The front door (the wooden one) was open, but the screen/plexiglass frontdoor was shut.

Somehow, without my active listening (headphones) and visual observation (the screen) directly on j3d1h, I found myself completely ignorant of her whereabouts and status. Anyways, the doorbell rings, and this old lady (a neighbor from across the street named &quot;Caroline&quot;...tells you how much I know about my neighbors after 10 years in E-town, a sad state of affairs in this world, but another matter altogether) was ringing the bell. k0sh3k and I got up, and Caroline was holding our child in her hands.

Apparently, j3d1h escaped the prison-house we have provided for her. I had no earthly idea she could get past that plexiglass door. All it takes is a tug on the handle (high up for her) and a push on the door (a decent push for her actually)--but man, that is a lot for a little toddler like her. j3d1h, as usual, burst through the gates to freedom, running straight for the danger zone that makes my heart stop: the road. The sad part is that neither k0sh3k nor I even knew that j3d1h was out there.

We are very fortunate that j3d1h didn't get hurt and that a neighbor (who we don't even know) came to our rescue. It only takes one second of inattentiveness to ruin a lifetime. Uggh. We were kinda freaked out, especially about the part of not even knowing she had escaped.

Onto better news, I'm reading one of the best books I've ever read. It is called &quot;The Language Instinct&quot; by a this Stephen Pinker. It is a jam-packed thriller of psychology, philosophy, biology, grammar (I know, wtf, right?), and, oddly enough, computing. Plus, he puts in funny lines. I found this joke from to be very funny (k0sh3k thinks it is stupid, so it probably is--I was just tickled by it):

A woman landed at Logan Airport (Boston) and asked the taxi driver, &quot;Can you take me someplace where I can get scrod?&quot; He replied, &quot;Gee, that's the first time I've heard it in the pluperfect subjunctive&quot;.

ROFL! (Scrod is a type of fish I believe, but the taxi driver ironically misunderstands the word to mean something very different)

Anyways, the book isn't about jokes. Although, there is a good deal of humor in it which is helpful when navigating the annals (better spell this one correctly!) of brain-mind-language-philosophy stuff. I think I'll let mom and dad have my book (they can't get good books in Thailand); I think they'd find it very interesting. This book is definitely &quot;archetype&quot; or &quot;era&quot; defining. A classic fo'sho'.

Also, in other important irrelevancies, I got a new cell phone because my other one died. Thank goodness, I need the battery life for my travels, and I use it constantly. I can't manage without one anymore.

We have been looking through schools, and we've decided that Talbot School of Theology is for us. We can't seem to find other schools that fit our desires, and Talbot has been spot on. k0sh3k is questioning what she will focus on. She is torn between Theology and Biblical studies (Old or New as well). I think she'll go for the Biblical exposition because she seems to enjoy that most. Although, she really is driven to apply the Bible in today's world, and Theology may be somewhat useful in that respect. I still think our understanding of theology (*a hybrid of biblical exposition and philosophy) is simply better than anything a school could ever give us. But, I won't discourage her from either of the studies simply because I don't know what they will be teaching her exactly. I just want her to be happy with whatever she chooses.

Allen said he might stay over the summer. Or, maybe he might live down the street and just chill at our house. Either way is cool with me.

Oh, and President Bush is retarded--and, I don't have to respect his office (quote me St. Paul and I'll give you a mouthful, as usual).
Lots of sympathies on the j3d1h's Minutes Out (her escape). Apparently, it happens. Of course, life seems even more fragile when slip ups happen in such large quantity. We will try not to underestimate this child. She can be deceptively smart, as exhibited in several instances. We are now using minor punishments as it is clear that she understands yes, no, and certain commands. Putting her in her room is what we are doing for now (she hates it in there, except when she wants to sleep). When she becomes further sentient I'll be using the corner. Although, as we've taken her pacifier away from daytime use, she has decided to use her sharp teeth on other objects. It has been a struggle to teach her not to bite people, nor hit people. We are very firm with her (and for now our facial expressions make her cry). If she goes any further she may need to have her hands tenderly slapped. I can't have her being abusive towards anyone, especially not k0sh3k.

Also, I'm no longer subscribing to WoW. =( ...I think I would do better to write my own game.

Anyways, onto our awesome news: We are pregnant again!!! WOOT WOOT!! We have tried and tried; It has been a year and a half, and we didn't think it would ever come (the contraceptive shot was extremely overpowering). But, finally we have been blessed again. I just found out this morning. Boomshakalaka!! So, we have good reason to stay in KY for now. Of course, we'll still be aiming to goto school and Thailand thereafter.

Oh, yeah, we have been asked to teach a second Sunday school class. Actually, I have been asked, but I don't feel comfortable doing it. k0sh3k does such a good job, I am better at clarifying and helping with background work. I can be a wizard as a student, and I'm much better in 1 on 1 conversation. But, I don't have what it takes to communicate or teach to the masses. I'm confrontational, elitist, somewhat disturbed, and I lack the ability to draw out the steps I've taken to reach my conclusions. It takes a very smart person to follow what I am saying in several subject matters. The problem, essentially, is that I cannot help someone see the world as I do, I cannot teach someone to howto acquire and use my lens. I see the answer, but I can't show my work. It is frustrating to say the least. I have long had this problem. I do not write my answers out. My deductions are so severely layered, often based in a cross of several subjects that require at least intermediate knowledge, that I don't have a compatible language to communicate and discuss what I am thinking.

This reminds me of the very context in which I was asked to teach this class. We were in a seminar about &quot;Methodism&quot;. All the pastors showed up, one of them previously a professor. It was clear that these people were morons. They don't even follow their own religious structures, how could they possibly understand what I am thinking? I sit in a room of people doing addition and subtraction while I'm doing Calculus. I cannot explain calculus to someone who can barely comprehend the fundamentals. While I am good in many subjects, the truth is that I am a prodigy in the philosophy of religion. God has granted me an extraordinary talent. Will I use my talent to change the world? It would be nice, but perhaps not (I don't know God's plan for me). It is possible that God gives gifts to people just for them to glorify God directly. My knowledge deepens my faith, my reverence, and my awe. When I sit in a room of people who can barely add and subtract, I feel sorry that they cannot see the beauty of mathematics, or in this analogy, I feel sorry that they cannot see the beauty of the intelligence, rationality, significance, and design of this world and of the Master of the Universe. No doubt, He is. I cannot teach this wisdom if they are unwilling to pursue the truth.

It is here that I question what, or sometimes if, I will teach. The Sunday school class is a starting place. We will see. I am glad I married k0sh3k. There are only a handful of people in this world with such an orthodox handle of the scripture, the depth of knowledge in philosophy, and the mind to appreciate what we do. We are equally yoked. She keeps me sane, she keeps me thinking, she keeps me happy.

God, Give us direction, Give us wisdom, and help us to do Your Will.
I admit I rail against relativism, after all, it IS the plague of society, but often I'm overly eager to simply dismiss (split inf ftw btchz) entire eras of thought that have any elements of relativism. Usually it is good to dismiss, but there are a few brief exceptions. Point in case: romanticism. I can definitely see why one would criticize it. The denial of rationality is always wrong. But, there is a specific, and ironically, reasonable and rational sect of the Romantic world that actually states reasonable arguments against civilization, society, and industry. One of these Romantic arguments is provided in a film called &quot;Instinct&quot;.

&quot;Instinct&quot; is a fascinating film. It is a psychological thriller between Anthony Hopkins and Cuba Gooding Jr (both play their characters very well). The film could be classified as &quot;Romantic&quot; (the era) as it explores the psyche of a scientist who lived with gorillas and has been brought back to civilization. We, the audience, intially assume that the scientist, who is examined by psychologists and what not, is a crazed killer. We assume the worst of this man as he does not follow our civil ways any longer. How wrong we are!

The film unfolds a story that is both anthropological and highly philosophical in nature. The film is a very good lesson as it brings to our a attention a defense of proper and natural barbarism that we should all seek and pursue. We come to emphathize with this gorilla-scientist. We see why he does what he does, and we understand the rationale behind his disgust with civilization. We switch sides. In watching this movie, you will recognize who you, as a &quot;member of society&quot;, have become and why we have the socialization thing all wrong.

The title could have been &quot;civilization and society be damned&quot;. And, wonderfully, it portrays a realist's view of modern culture, an insightful criticism of what we have become, and curious prescription to a web of immoralities and corruptions that &quot;civilization&quot; has birthed. You will realize that so many of your day to day activities are truly useless, stupid, and perhaps immoral.

I cannot help, after having thought about this movie and other things, but think that society and civilization are innately flawed. I'm hardly against rationality, but I see that I no longer could be called a tradition rationalist by any stretch. It is the thesis of this film that captures the essence of why I could not be considered a &quot;gnostic&quot;. Although, my wife does say that I might be &quot;proto-gnostic&quot;. I'm not necessarily for &quot;getting back to nature&quot; for the sake of nature, but rather because of the corruption of civilization. It is the argument against Babel, the argument against politics, and social norms, and politeness. A person is not less worthy because they do not conform to society (a belief that is even shocking to the church).

Make no mistake, I do not claim any sense of social relativism, acceptance of evil, or tolerance. I am being strictly intolerant in every sense of the word. There is only one way!! Conformity for the sake of conformity is wrong. The principles of love and kindness are static, but clearly these are expressed in different fashions. Pursue the principle, not the practice! Civility does not consider your intentions or what is in fact morally right, it considers the size of your wallet, what is &quot;productive&quot;, and the vogue. It is a skewed system of utility! Idiots!!

In reality, I claim a new rationalism. It partakes of the most important aspects of gnosticism and traditional rationalism. This neo-rationalism uses our rationality to defend a barbaric Christianity, one which does not care what other people think(including the so-called &quot;church&quot;--those hypocrites! lukewarm scum!! Vile animals! May God Blot them out!).

Okay, ....need a breather, my blood pressure might skyrocket if I think too much about people. Deep breaths. Writing it out can be good, it is at least better than bottling it up. It is odd that I can love people and want the best for them, but somehow be enraged with them. Aight, back on topic.

Neo-rationalism is against true empiricism, it is against atheism, against relativism. It is for value, truth, absolutes, and rationality. It is against superfluous social conduct and meaningless civil requirements. It is for a barbaric, base, and real pursuit of truth and value, a pursuit of God. Neo-rationalism concludes not in self-worth, nor even in equality or humanism, it is the conclusion of slavery to The Master. Neo-rationalism is hardcore. Neo-rationalism isn't about protective warm-fuzzies, but neither is it about anarchist suffering. Neo-rationalism isn't about reading the Bible word for word, sitting on a slippery slope of literalisms, symbollisms, and contextual interpretations; neo-rationalism reads the Bible as a book that God intended for us to read, as a preordained text to move humanity towards the center of God's will--not in virtue of the perfection of the Bible, but rather the perfection of the Will towards which humanity is guided. Neo-rationalism is rational and yet looks at the world as a series of moral choices. There is meaningful, valuable moral choice or there is nothing in the eyes of neo-rationalism.

All of this I fail to convey. I can point towards it, but I cannot sum it up in a sentence or paragraph. I need time.

I feel somewhat like the man in this movie &quot;Instinct&quot;, and oddly enough slightly found in C.S. Lewis' Space trilogy. I sit silently in a world of idiots. I see through a world of man-made chaos and sin, and I see the beauty which we ought to pursue. It is a very hard path. I will not be successful, but I will try.

Summa Theologica here I come. I've been working on my opening chapter (of which I'm sure I'll never stop writing). It is damn good. I wish to have people to brainstorm with. I cannot systematize such a thing without thinking it aloud and hearing the arguments for and against it from other people. I will do my best.

Any takers?
Democracy is the doctrine that the numerical majority of an organized group can make decisions binding on the whole group (literally: Majority rules). Mind you, Democracy is a word used with pride in America. We live and die by this very word. And, for a long time, I agreed. Why wouldn't I agree to democracy? After all, the majority told me it was good.

Now (oh yes, in my age of wisdom), I don't see how one can think so highly of democracy at face value. What is so special about it? Why should we implement it? The usual argument is both bland and ambiguous, and yet its invalid conclusion is so deeply important to people that we fail to fully think through the premises and implications of democracy (i.e. the invalid argument). The basic premise is that democracy (supposedly) grants us &quot;freedom&quot;. How and who are we that are freed through democracy? What is freedom? Why should we pursue freedom? Even if one could possibly show a link between democracy and freedom, I wonder if people are too lazy to justify the meaning and purpose of &quot;freedom&quot;. Obviously, freedom exists in virtue of moral decisions. And, even if someone got that far (not a big leap), most are too stupid to define what is &quot;moral&quot;. If they think of democracy as a means to these wonderful ideals (freedom-&gt;morality), then they need to be able to defend the conclusions as well. Specifically, they better be able to defend morality and freedom (you wouldn't think such things need explanation and defense, but they must be justified if these are the aims of democracy). But, I will attempt to be charitable (after all, I myself am sucked into the argument from time to time).

Democracy is the idea that you have a guarenteed stake or some degree of control in your destiny. And, the latter is almost definitional of modern views of freedom. Albeit, democracy, direct or representative, rarely lends more than very slight, nomiminal, or sometimes illusionary degrees of control. You are one in a million pushing this way or that way. But, remember kids, &quot;your vote counts&quot;. This is true. And, insofar as you count with the masses, you have an &quot;equal&quot; vote of power (or at least the illusion of it in practice).

Democracy can be touted as a &quot;fair&quot; system, in which the poor man's vote counts as much as the rich man's. Now, obviously I'm not talking about the corruption we see today, I'm talking about the ideal democracy (which we are far from). And, obviously, we can all appreciate the aim to eliminate descrimination for such arbitrary reasons as race, gender, or social status. Democracy rides upon our desire for &quot;equality&quot;.

Democracy also seems to be a better alternative than something like a monarchy, as we have seen in practice. In a monarchy you are either the one or you are the screwed. Right? So, in order to even the odds of having any power of yourself at all, democracy at least gives you some upfront guarentee. And, of course, one person can be wrong, but could millions? Which leads us to our next point:

Democracy uses the invisible hand to guide us towards what is most useful (or atleast in theory it does). In a fair and vacuumous dissection of democracy, we can see a network of minds and choices that adapt and evolve into a better society.

And, finally, I think that many would consider democracy, while not perfect, the most practical option, or, at the very least, it can be the &quot;lesser of the evils&quot;. The basis of their argument is that practicality makes right, not right makes right. Democracies are corrupt. And, you may argue that every argument befalls this, and that the democracy is most resilient in virtue of masses with choice.

All seemingly good concrete arguments, right?

Even moving to the abstract conception, concerning the role/purpose of government, the meta-ethical evaluation of rights, utility/deontology debates, etc., we find that democracy excels in answering these questions. At the very least, democracies would seem as if they are adaptive to a culture. They are powerful, and yet, this does not mean that democracy is correct.

What is right is not always practical, and generally, Pragmatism is laziness (hmm...another article altogether). In reality, democracy is a form of social, or more specically governmental, darwinism (no caps for joo). It is a failed experiment. Even if we wanted to apply pragmatism, or rather, utility, one would never arrive at democracy.

The fact is: some opinions aren't worth as much as others. If half the population is stupid, do you really think that it is most &quot;useful&quot; to have that half of the population voting? Honestly, do you really believe people are equal? Justify it! I dare you. I cannot justify equality, it does not exist. Now, do I believe their is a bare minimum of value to humans, yes; but, I don't believe we are equal. Some are stronger than others, others smarter, others prettier, etc. And, no, don't buy into Humanism. It is garbage--it is philosophically unsound. Humanism exists in virtue of half-truths. Humanity for example, cannot have infinite value. Nor are we equal. But, you may argue we do have value.

Is it really &quot;for the best&quot; that Johnny boy over there has any corporate power? He is retarded. Even in the face of utility, it is stupid to let stupid people rule. Obviously, none of us deserve individual or corporate power. The next stage would be one of representation (but, obviously not democratically chosen, else the purpose is defeated). Smart, non-democratically chosen leaders that are qualified to lead would be better than some direct democracy. But, even this has its problems in utility. And, of course, the pragmatists would still be wondering, how would those leaders be chosen?

What ought the savvy person do? Obviously, corporate government is a failure.

It would seem to be there is only one answer: do the Will of God. Let God rule you. All else is meaningless. All is a question of value, and there is only one value to consider in this world: God's Will. If the masses fail to hear God, and they will, then let us do it individually. I can only be responsible for myself and my own. This isn't relativism, but I can certainly see why someone would think it is.

I've come to the fact that I trust the opinion of a very small minority of people on this planet (and usually only based on specific subject matters). I know none of us are qualified to answer all of these questions, but I think some have the right direction (which is transformational): the Will of God. Will I know or follow this? No. Will I try? Yes. I know democracy is an idiotic plan because there are so many idiots. I want whoever is closest to the Will of God to rule (God Himself perhaps?); and I want someone who wants whoever is closest to the Will of God. Essentially, I know the base answer, I think most don't, and it is because of that democracy fails.

In closing (which is sad, because I've not said much), I thought I would consider something slightly off topic.

I'm not in for Zen-BS, false-dichotomies, nor am I interested in supposed &quot;paradoxes&quot;. All is black and white, there is no equal. There is only absolute right, and all the rest is absolutely wrong. With that in mind, I still find myself amused by the ironies in 1984's mantra:

War is Peace; Freedom is Slavery; Ignorance is Strength

I come back to this statement over and over again. We are in trouble. Do you feel like a madman sitting in front of doomsday? Man, I do. I can appreciate Donnie Darko's laugh at the end.
&lt;p align=&quot;left&quot;&gt;Â &lt;/p&gt;</post_content>
Briefly elaborating on my previous commentary on Democracy: I think it is important to evaluate one more point. People don't necessarily have a right to an opinion. We all take this as a &quot;right&quot;, and we assume it to be true. We don't want to put ourselves in a position to ever deny our own &quot;right&quot; to our opinion. But, frankly, it is obvious that we don't believe people have a right to their opinion.

The only people with a &quot;right&quot; to an opinion are those who are correct. If you say 2+2=4, and that statement is true, then you have the proper warrant to believe it, and thus I might say you have a &quot;right&quot; to that opinion. But, then again, it isn't opinion at that point.

Opinion is useless outside the truth.

Utility arguments fail. A &quot;right&quot; requires some innate value that mere utility simply cannot justify. We cannot value opinions which are blatantly flase, we can, however, admire the truth an opinion contains. Again, this doesn't necessarily justify &quot;rights&quot; per se.

Obviously, there are too many stupid people that have incorrect opinions, and probably no right to hold those opinions. Warrant and reason are required. The lack of those justifies a lack of &quot;right to opinion&quot;.

When we talk about gaming, a matter in which I'm an expert, then I generally have the right to hold an opinion (I.E. because I know fact). If you wanted my opinion on the mechanics of automobiles, a subject that I know nothing about, then I must inform you that I really don't have a &quot;right&quot; to hold any opinion.

In the same way, I think stupid people should say, &quot;I don't know&quot; and shut their faces.

This isn't practical. And, it will never be put into action. But, it is true.
Shame on us...God have Mercy on our dirty little hearts. Shame on us for all we have done and all we ever were...Just zero's and one's.&quot;

Good Gracious. That is excellence. Virtue of the practice of poetry if I ever saw it. What can I say?...this captures an essential principle I hold to be true. We are lucky to be alive, and look at how we waste it. We are sinners and relativists. We deserve to lose our lives. We are nothing better than zero's and one's.

Christianity, for the mortal, requires a good deal of self-hatred. If you don't have this component in your faith, then you do not recognize reality. I doubt you can be much of a Christian if you aren't struggling, else, you live a flawless life. Forgiveness is soothing, and in those moments, you should be sitting in awe.

Slave and Master relationship to God, not friends. You are nothing without God--do you understand what that means? Do you!? Existentialism is not some meaningless mourning or loss. It isn't relativistic or coffee-shop intellectual jargin. It isn't a happy thing. It is rational, realistic, and points out the ideal principle. All people answer these questions, some just really suck at it.

While I'm having random thoughts:

I wonder if women with short haircuts have disproportionately high divorce rates.

I found out that I'm closer to Scholasticism than proto-gnosticism in a general theological approach. I'm all for labeling...it gives me places to research, read, and think. I can see where other people have been before. Why do the work when they already have?

This reminds me of MTG (Magic the Gathering). In MTG, someone, somewhere has already built the deck you thought of...in fact, most of the time it has been done for years. You have to dig up the variations, and read through the forums and notations to see why they did what they did. Some were metagame (context) specific, and others were based on synergy, and other based on defining the role and function of the deck itself. It would seem likewise that labelling myself lets me work on shoulders of more giants. Digging through the past lets me see the less-than-obvious synergies and connections made through the great dialectical work that we call history, literature and the grand pursuit of truth.

This isn't a &quot;who we were, who are we, and who will we be?&quot; type question. It is a tool to sift through the sands of retarded people for the gems of truth.

As I'm going here and there: Mom is flying into the states tomorrow. She is taking the swicky (sweet-icky, j3d1h) to Wisconsin and Chicago. It will be the first time that k0sh3k and I have been seperated for more than a day from j3d1h (I've been away the longest, probably with a record 18 hours or so, go Magic Tourney Go!!).

It should certainly be an interesting experience for us all. I guess I'll need to prepare for it. Phone card, CC, phone numbers, the works. Oh, and quickly discuss habits, discipline, and nutritional requirements. Good gracious, do I sound overprotective? yeah, yeah...call me a noobie. It is better to be prepared for the worst and hope for the best than to get stuck in a very bad position on something as important as my own child. Pascal's Wager with a smaller subject/topic/focus anyone?

Speaking of MTG, which I have recently picked up as I no longer play WoW, I have been playing with this guy at work called Fred. He's, as they say, pretty 'chill'. He certainly has been around the game long enough, although, he doesn't have a lot of decks to show for it! =)...But, his experience is quite welcome. He can recall decks and metagames from long ago. He is also an avid reader of the same forums as I read. He recalls game rules like a guy who hasn't played magic in a while, but has obviously played magic for a long time.

He is, interestingly enough, a casual player that doesn't play awful decks. He watches the competitive scene very closely. He plays for fun, but he doesn't play suboptimal decks if he can help it. I certainly admire that quality. Additionally, he seems like a pretty smart guy. Who else do I meet that reads &quot;The Prince&quot; for fun at work??

We play during lunch. I'll be happy to see his decks (we've been playing with my decks primarily).

Moving onto other topics, Jim is graduating. He is almost immediately heading out to Thailand to do missions/teaching. I think it is good that he is going to Thailand. A change of venue and breathing room from that place-of-relativism (Berea) would be welcome. Additionally, I'm envious of his job.

Jumping topics again (no transitions for you!!): I am glad that k0sh3k is my best friend. We certainly have lost nearly all social contacts and friends in some way, with very few exceptions (I like the exceptions of course). k0sh3k is the bomb. Oh, yeah, she just started showing too!! woot woot. I think we might be having twins (not confirmed, don't spread rumors...and that means you!).

Rigging Hypercynic for Mom and Dad to use. There are several reasons for it, but I think they'll find it very useful. Storage, downloading, etc.

k0sh3k doesn't use her space on this site much (3 times?)...Never has time to write, or the will to do it. That is odd for her. She usually loves to write.

Speaking of which we've spiffied up my resume some more...I'll be applying for more jobs. Some in Humana (moving up the ladder if I can I guess) and some in E-town. I'd take a paycut for a job in E-town. Which reminds me of something idiotic my aunt said to Jim about me. I'm always complaining about Commute as being part of the opportunity cost of a job. Obviously, it is....Aunty Ann is retarded enough not to realize this is true (she is generally very unwise). It costs 2-3 hours of my time travelling, which could have just been used for overtime elsewhere, and it costs $3k-5k annually to commute like this. Anyone with half a brain would realize a pay cut would be worth it!

I'll be rigging (yeah, I like this word) the old computer for remote access over the network. I'll be running the resource-hog Bit Torrent on it. This will lighten the load on my computer by a great deal. Additionally, formatting is coming to both computers. Have to gear up for this because it takes a lot of work to bring my computer back online.
While a great deal of the work has already been done, and a lot of my job is really sifting through arguments and explaining the systematic workings and synergies of proper arguments into a larger framework, I have found that the introduction has been quite difficult and must be written completely from scratch. I have no sources to turn to, and nobody to ask. Consequently, putting the base argument on paper has been very difficult. I already suck at writing, so to make me think about a very complex subject, organize it, and THEN compose it with zero examples, sources, or help is not that easy (although, I recognize I have already had and will have future help--it is still difficult).

Of course, this is a very, very rough draft. It is a good start I hope. Even if it won't look anything like what I've written (perhaps Jude may write the actual thing), I will have a direction to point us towards. I do need a translator. Anyways, I'm at a point in the introduction that I need to sit back and get some 3rd party opinions. There is much work to be done, and I have to make sure that what I do have completed or worked out in the introduction is accurate and clear. So, even though it isn't nearly finished, I ask you to bare with me please. Fix and forgive my errors, redundency, any contradictions. Please help me find the missings gaps.

 

 

Summa Theologica

 

 

Section 1: Value

To some this chapter will be obvious and elementary. The assumptions and conclusions we make here, at least at first, do not seem groundbreaking. You may even find yourself thinking that I work too hard to assert the obvious. I argue in this fashion because it is necessary that we setup an epistemological base for a grander study. We are, as they say, starting from scratch. Where is ground zero? The foundation of all things and the reason you exist, move, and pursue anything is because of value. Value is our epistemological base on which we build everything. Value is an assumed variable—we cannot justify our existence or the pursuit of anything without begging the question of the reality of value. In what seems like an unlikely argument, as it really is so basic, I hope to guide you through the fact that all things we do and believe rely upon an assumed reality of innate and absolute value.

What is value?

Value is the property or aggregate properties of a thing by which it is rendered useful or desirable, or the degree of such property or sum of properties; worth; excellence; utility; importance.

Honestly, we see this word thrown around in so many contexts. Economics, politics, religion, commercials, and social relations all provide slightly different definitions of this word. In the end, they all point toward the above definition. And, ironically, all of the places you hear this word used really are going toward the same exact thing, they simply may not recognize it.

Value is an absolutist’s term at heart. It implies that a particular thing has some innate metaphysical property which requires that we should pursue it. To say something is valuable is to say it is innately valuable, and that regardless of perspective, that which is valuable contains universal and absolute value independent of our existence (whether we perceive it or not). To ask whether something is of value is to ask: Is it worth pursuing, and how much is it worth (pursuing)?

Why should you believe in value? Some may think that value is a façade, just an idea with no meaning or true application in the end. Perhaps value is a social or biological construct. Perhaps something can only have value when we apply that attribute to it. You will find that dismissing value as a concept is not as easy as it may initially appear.

Look at the meaning of value once again. What is the significant principle to the definition? Value is the concept that something is worth pursuing. It is, by definition, an implied ought. It is the case that, if something has value, you would rather it existed than not--you cannot be indifferent to its existence. To say something has value is to say that it is in fact significant and important...that it is desirable, that it is above neutral or nothingness. Something with value is something that innately is worthy of pursuit! Value entails the existence of an ought by its definition (in modern terms, value implies morality). What appears to be a very generic term is actually quite explicit and completely universal.

This, of course, is a very substantial (perhaps even valuable) claim to make of anything. Value is an assumption at its very core. It is an assumed belief—a true leap of faith. You cannot initially prove it. You don’t even need to fully understand it to use it. But, most importantly, the very consideration, application and use of value requires you to beg the question of value’s existence.

Example:

A child sees a ball a few feet away. The child desires the ball, and goes to retrieve that ball to play with it. This desire for the ball must stem from some belief that the ball is worthy of pursuit. The child assumes the ball has value. Now, whether or not the ball had value isn’t the point of this illustration. The principle to consider is that the child couldn’t logically consider the ball, or even desire it, or go retrieve it, or play with it, unless he felt that ball had value.

This sort of principle is quite universal of all things. If something is worth pursuing in any sense, then it is valuable to some degree.

Ironically, to even read this sentence, to even consider this sentence worthy of thinking about, to actually spend your time doing anything, is to assume that there is intrinsic value in whatever you pursue. We beg the question of value directly whenever we pursue anything. To even argue with me, or even have the will to agree or disagree with me means you have already assumed that it was worth pursuing, as though you ought to read or contemplate this sentence. You have already assumed value was innate to your object or idea of pursuit.

If there is no value in this world, then stop reading. Nothing has meaning. You have no warrant to do anything. You are merely particles floating around, doing whatever particles do and what not. But, who cares? You can't care, you can't think, you can't do anything, you can't pursue anything because it has no absolute, innate value.

When we pursue, we pursue that which we believe is innately valuable. Not one thing can exist apart from this idea of value. To merely concern ourselves with the idea of anything is to assume, from pondering its very meaning and logic, that it has some degree of value (in virtue of the truth of its existence, albeit possibly a weak value). This begging the question of value and meaning has been around for a very long time. From the defeat of Heraclitus to the abundant criticisms of post-modern relativism in Abrahamic religions, we can see the necessity of begging the question in regards to basic logical and value-based claims. And, it still holds true today. It is an inescapable truth, a necessary one for us to continue to hold true even with no deducible evidence in order to move on in conversation and the pursue anything of consequence.

So, we will start with our first begged premise. From there, we will be able to elaborate on other begged premises and deduce other conclusions.

[1] Object(s)* and idea(s) of value exist. Object(s) and idea(s) worthy of pursuit exist. We ought to pursue those valuable object(s) and idea(s). (Begged)

*(The possibility of the plurality of value, such that more than one object can have value will be discussed)

It is here, at the core of value that our search begins. The pursuit of something is the pursuit and acknowledgement of the truth of something. Truth exists to be known and acknowledged; truth is the worthy idea and reality. Truth is logical and valuable. To not seek truth is to seek nothing. By definition, we seek truth because we ought to seek it. Even the activity of pursuing truth is valuable in itself. Either we are called to be philosophers or we are nothing.

Section 2: Mechanics and Underpinnings of Value

To say something is valuable is to say it is worthy of pursuit. You do not just beg the question of whether value exists, but you also, in virtue of mere recognition and pursuit, beg the question on other fundamental issues (whether you consciously believe this to be true or not). At the very least, you’ll need to assume the basic claims of logic.
After all, if A is not A, then you have no way in which you could reasonably continue any conversation or thought, as no thing is itself. You assume that A is A, or the pursuit or belief in it (even if subconscious) is important, that is has value. You in fact, believe A must have value just to acknowledge its very existence. Value and logic are the root of all meaning. Logic, beyond 'A is A', which is truly simultaneously assumed with any idea of value (to think A at all it to assume the value of A and 'A is A'), is the manipulation of value and the deduction of further value from assumed values. You my friend, you believe in value, and consequently logic, at the basest level, and you continue to assign value to other things from your logical deductions in your value-based logical pursuit.

Value and logic go hand in hand. Once you can admit that the value and logic must exist, that things exist in a coherent and absolute fashion, that value is truly innate rather than imposed upon an object or idea, that truth is absolute and independent of us rather than subjective and relative to your perceptions or existence, you can shut the doors on a plethora of ridiculous concepts that have plagued the ‘intellectual’ (how ironic) community for a long time, namely relativism and its kin.

However, we need to evaluate the structure, architecture, begged, and deducible mechanisms of this value-logic system. There are further implications that stretch far beyond this base which we must address here before we can move on. Without considering the epistemological base in detail, we have no authority to make deducible claims regarding any number of subjects.

Section 2A: Metaphysical Innateness of Value

It is already established that we beg the question of value and logic. Furthermore, it is illogical to consider true relativism at all, as it denies the very essence of value. There is no reason to consider or refer to anything with anyone if you cannot (at least metaphysically and logically) consider or refer to the same thing together. Value, logic and meaning are innate to an object or idea.

How do you know this is true?

It is true that we pursue things because we believe they are valuable, not necessarily because whatever we pursue is in fact actually valuable. Now, be careful, I am not making the relativist’s claim. Of course we could be wrong about what is and isn’t valuable, but that does not negate the logic of value actually existing. Our very belief and pursuit in anything requires us to think in terms of innate value.

Innate value means that an object or idea is independently worth pursuing. There could be nobody to pursue it in the universe, and yet it would still be valuable. Innate value is static and unchanging. It has nothing to do with our perceptions! The perception of an object or idea’s value is not the same as the actual innate value of an object or idea. This is important to distinguish because it requires us to answer further questions, and, more importantly, it is required that things have innate value, rather than applied value, because applied value means nothing.

What do I mean by applied value? It is a basic form of the relativists’ stance that there is no true, absolute, and innate value (or logic or truth), and that we merely impose such notions on the things we perceive. This relativistic thinking has huge implications, and is clearly, poorly applied even by relativists (although, you shall see we all have committed this sin at one time or another).

If one argued that only applied value is all that exists, and that we only perceive things to have value, then we fall back into the trap of relativism. We cease to beg the question of whether value exists because we have reasonable doubt of value’s actual existence. If you actually doubt value’s actual existence, then you can’t reasonably justify any pursuit. To really apply the relativist’s stance correctly is to doubt everything to a degree that is absurd, including their beginning premises!

I think of this paradox (which is actually a strict contradiction) in the ironic rules:

No Rule is true 100% of the time or This sentence is false

This captures the contradicting engine behind the relativist’s thinking. It is the failure and the irony upon which we all irrationally choose sin. Surely people do not apply relativism correctly (to the nth degree). There would be no point to anything. Do you not see the mistake of this sort of thinking? If you really think that truth isn’t absolute or innate, then you can’t think. The very act of thinking begs the question of the reality of value in an absolutist’s sense.

Essentially, at some level, you are going to justify your pursuit not in terms of mere perception, but of the belief that something is in fact valuable independent of your (or anyone else’s) perceptions.

Again, the perception of an object or idea’s value does not require that the object or idea is truly valuable. We could be wrong about whether an object or idea is actually valuable. And, we could easily be wrong about how valuable an object or idea really is…Nevertheless, if we assume value to exist, we must assume it exists in a deeper manner than we perceive it to have value. We must assume that objects and ideas have true, innate, intrinsic, and absolute value, regardless of perceptions otherwise.

What does it mean that something is universally and innately valuable?

It means that whenever we pursue or desire anything, we are assuming that someone in our position should conclude the same thing. It is the belief that the standard of a thing’s value is static and independent of us, and that we all must regard the reality of its value in an identical fashion.

For example:

The desire for a purple car is the statement that the purple car is valuable universally and innately (not just to you). The universality of value requires that your desire implies that all people should value that purple car in the same way you do. Now, your perception of the value of a purple car could be wrong (I don’t doubt your perception is in fact wrong), but it is obvious that the value of the purple car is stable, static, and innate. It is valuable in virtue of its value not in virtue of perceptions. To say something is valuable is to imply that it must be valuable to everyone in the same way.

And, while this is almost contained in the first premise, I seek to distinguish this highly relevant truth about the nature of value, and thus I will make it our second begged premise:

[2] Value is innate and universal. (begged)

Now, assuming value exists (and we are going to assume the claim from now on), we will assume there are in fact things which are actually worth pursuing. How do we know what things are actually valuable and what things are actually not valuable? Are there choices to be made between valuable objects? Are there varying types or degrees of value, and are there varying types or degrees of pursuit? And, if there are different types and degrees of value, how would we go about comparing, just as an example, financial and moral value? To move forward we will first discuss how one goes about designating attention to the proper pursuit in the face of equivalence.

Section 2B: Choosing Value

We really haven’t given any thought to what it means to choose value at all, or even what premises we hold to be true in assuming that one can choose value. This is ironic because value is meaningless outside the context of the possibility of something choosing it. Read carefully. I do not imply that value is meaningless if there is no one to choose it, I said value is meaningless outside the context of the possibility of choice. If there is no true choice possible, then value is meaningless. So, even if there were no people in the universe to choose what is valuable, we can at least say that value can still exist as long as it remains logically and metaphysically possible for choice to exist. Technically speaking, in some possible world a being with free will chooses something of value. This is just an expression that means choice must be possible in the most minimal sense (even if nobody physically had it) in order to value to remain valuable.

Look once more at the definition of value. Value is that which ought to be pursued. There are two very functional words in that definition. The first being ought (which is a very moralistic word), and the second being pursue. Both ought and pursue implies, in fact they beg, the notion of beings with free choice.

Pursue means to seek, to follow, to quest after, to act on, to go after, etc. Pursuing is a choice! Pursuit can only be accomplished by a being which can pursue. This word isn’t used lightly.  It is the act of a sentient, aware, and rational being. Pursuing requires choice. You can’t pursue something without choosing to do it.

The rock does not pursue the ground as it falls through the air. Photons do not pursue their destinations. Billiard balls do not pursue other billiard balls. You need to mean what you mean when you say the word pursue. You must mean something more profound than a deterministic object doing what it must do by this word pursue. You assume free will by the very notion of pursuit.

Ought has no meaning outside of pursuit. Ought implies an ought-not. It would be meaningless if all things ought to be pursued. Ought would lose meaning. Ought has more weight to it than most attribute. It is implies Ought and Ought-nots, and it implies that it is possible for being to choose between the two.

We have come to our next begged premise, one that you readily accept to be true in virtue believing that you ought to pursue anything at all:

[3]You have free will (begged).

Of course, this isn’t some compatibilist notion, this is true free will—the ability to do otherwise.

You can’t say that you deterministically pursued in ignorance and that free will does not exist. Even if it were the case, such a revelation would disable you from future action or choice. To those who argue against free will, and are now educated about what they consider to be a fully deterministic reality, one in which they don’t have actual choice, then please, show me how you are pursuing. You can’t possibly think anything is truly valuable. Why pursue at all?

Value doesn’t require there are free beings, just the possibility of free beings. But, you believe in more than just the possibility of free beings, you believe in the reality of at least one free being, if not many. And, in this case, since you think there is value, and you must if you believe you are pursuing in some relevant sense, then you also believe in free will. You believe you had an honest choice to do A, B, C, etc.

You beg this question. It is certainly useful to consider how it exists, but it is not a deniable premise. There is no mystery about these begged premises, they are true not in virtue of the begging, but because they must be true for us to continue on in life. To not believe in free will and value means you are nothing.
Section 2C: Value Equivalence Problem (the true Dilemma).

Almost putting myself in the Cartesian predicament, by which I am forced to think from a rational base starting place (although, one with sensation), I realize that we have other problems to consider. In this problem, we have to consider how we choose what is valuable.

It is easier to demonstrate the problem in an example first and work from there. Bear with me please. Our example:

If Object 1 and Object 2 have innately equivalent value, and we could only choose to pursue one or the other, how would we choose which one to pursue? While one could randomly decide between Object 1 or 2, the method of random choice has placed additional, yet artificial, value on whichever particular object is chosen--other choice-mechanisms would impose a similar artificial value on one object or the other. As one object was artificially worthier, they were not truly equivalent in our perception. In reality, there is no way to choose between two equally valuable options. It is illogical.

This problem can applied to everything in our initial evaluation of all valuable objects. If we live in a world of equivalence, where everything is just plain valuable and equally so, we could not pursue any one thing could we? As we cannot pursue everything we perceive to have equal value at one time, we must understand the begged mechanism for choosing that which is valuable.

The value of all objects and ideas cannot be truly equal because we cannot logically choose one option or another if both are truly equal. In addition, there can be no simultaneous pursuit of two objects or ideas which cannot be simultaneously pursued.

Now, surely, some would think in their minds while reading this: if both pursuits are equal in value, then what does it matter which you choose? Here, we enter a realm of weak psychological egoism and determinism. It is an age-old idea, one that holds some merit. Now, I say this is a weak version of egoism because it is. Stringent egoism would imply that a person pursues what they consider to benefit themselves the most because the person in question perceives themselves to be the most valuable thing to pursue. Our evaluation does not need this premise, and in fact, can easily go against this notion of such a high degree of self-worth. However, the very base sense of egoism and psychological determinism remains true. We will beg at least three questions in order to solve the value equivalence problem:

[4] A person will pursue what they believe to be the most valuable object or idea. (begged)

Obviously, [4] is a huge concept. It implies free will, it implies rationality, it implies personhood, and so on and so forth. It is not so easy to do away with the above concept, it remains resilient, and to most it is already an undeniable truth at heart. And, for now, as I have much to cover, I will ask you to wait for further discussion of this issue. I promise we will re-examine these ideas with depth.

Assuming [4], we want to consider how a person would choose between two objects of equal maximal value. The key word in [4] is most. Most requires a single object or idea to have more value than all the rest. So, from begging [4] we will arrive at our next premise:

[5] One object or idea will have the most value (begged)

So, if there are two or more objects of value in the world, one must have more value than the others. Since value is not just perceived, rather it is innate, we must also claim, if we wish to have rational pursuit at all, that some object or idea has the most value.

The equivalence problem is solved by begging the question that, at least for whatever we are choosing, which we assume to have the highest value, there is no equivalence at the very peak of the value spectrum. That which is most valuable is truly most valuable, we believe this to be true at any point we pursue anything. Now, it is obvious (as I have stated over and over again) that what we believe to be most valuable may in fact not be the most valuable object or idea—but, this does not contradict the explicit logical requirement, one that we already believe at our very core, that there is a single most valuable object or idea.

Section 2D: Prime and Secondary Value Problem

If some one thing must be the most valuable thing in the universe, then what does this say about all other objects and ideas? It only implies, at face value (*cough, just making sure you are awake), that all other things must have less value. The question then becomes, do other things cease to have value in virtue of not being as worthy of pursuit as the most valuable object or idea?

We can consider that a ball might have value. But, surely a ball is not the most valuable thing in the universe. As we seek that which is most valuable, we will pass over the ball, regarding it as not to be as valued as the most valuable thing. Is the ball still worth pursuit in any possible way? Remember, this is not an issue of perceptions (perceptions lead us to the original begged question, but not to actual values beyond the begged propositions directly); this is an issue of actual value possibility. Can the ball, as a secondary object, something which is not the most valuable object or idea in the universe, be valuable? To even acknowledge the existence of the ball is to recognize some semblance of innate value in the ball. To ask whether the ball can have value is to ask whether it can be considered, used, acknowledged, and so on and so forth. The consequences of denying the possibility of secondary objects of value, opting for a sole prime valuable, could prove disastrous.

There are really two options.

1.) There is only one thing of value, and we wrongly perceive other things to have value.
2.) There is one object of greatest value, and all other objects and ideas are of lesser value, but are still actually valuable to some extent.

Luckily, we’ve already required of ourselves the pursuit of several ideas. Deductions upon deductions, each of these have value, most in virtue of the previous, some begged in themselves. You can’t even form singular idolatry of Logic (going back to the root deductions and begged questions), assuming that logic itself is the highest value. Why? Because the steps required to consider logic, which are composed of several things, are not singular, they are plural (there are several premises you will value). You will eventually (just as a begged question) consider and pursue more than one single idea, even in these small deductions. We beg the question of the plurality of valuable objects. Thus,

[6] More than one object or idea has value (begged).

This brings up other important questions. Firstly, what is the most important object/idea in the universe, and how would we know? (Hello, Anselm’s ontological proof!—existence is a perfect making property) And,

Section 2E: Degrees of Value

How does one make sense of a world with multiple objects/ideas of value? One will have the most value, and the others will have at least some value. This leads us to our next conclusion.

[7] The value of objects and ideas must be ranked by degrees.

At the very least, we can see that there are two degrees. Prime and secondary. We have no begged reasons as of yet to think that secondary cannot be separated into a much larger set of degrees of value. On the contrary, we have very good reason to suspect a spectrum of degrees of value larger than a binary system.

Which is better--A world with 1 kiss or a world with 2 kisses? If a kiss is actually valuable, and unless a kiss had infinite value, then 2 kisses would seem worthier of pursuit than 1 kiss. Most would agree to this. Things can be ranked in value. 1 dollar is worth more than 2 dollars (by definition?), one action is better than another, and so on and so forth.

It would seem that by definition, since 2 is greater than 1, that there must be the existence of quantity and quality of the objects and ideas in the universe. We can easily create a spectrum, a huge array, a LIST of all the objects and ideas in the universe in which we could prioritize them from the most valuable object/idea (Prime) all the way to the least valuable object/idea in the universe.

Metaphysical values of objects and ideas can be different—essentially there are degrees of value. Some utilitarian thought has outlined excellent ideas concerning principles of mapping out objects of value. For now, it is good enough that we can justify the existence of multiple objects of value. It is also noteworthy that secondary valuables could possibly have equivalent value without interrupting our choice-mechanism. The single prime value is our true and sole pursuit, all other things are secondary. There is no specific reason at this point not to allow for the metaphysical possibility of equivalent value in the secondary valuables.

The last significant conclusion to draw is this: The degree to which something ought to be pursued rests simply upon the degree of value of the object in question. This seems self-explanatory, but we simply must emphasize the mathematical beauty of a value system. Each exact degree of value is equal to that exact degree of value. This would imply utility from a deontological logic/value base. We assume basic principles and rules (deductions), from which pours out further rulesets, primarily a teleological notion or mode of thought.

Section 2F: Types of Value

We’ll take a step back and look at the bigger picture for a moment. When most people think of value, they can’t really put their finger on what it is, but they certainly appreciate it. What is ironic about our perception of the world as post-moderns is that we separate the world into categories of value. This is financial value and that is moral value and so on and so forth…

What we really need to ask is whether there can be different types of value at all. The short answer is no. If something is worth pursuing, then it is worth pursuing, period. Universality of value means that each degree of value of is equivalent in every possible way. For now, I’ll count utils to mean a degree of value. These utils of value are equivalent and universal, and all things with value must be compared to such a system. (*you’ll notice that it is here that modern Economists have inadvertently crossed into the value system).

I bring this up because it has an immediate effect on how we perceive the world. It is true, every man has his price. Essentially, this is ironic and maybe even startling. For example, just as a thought experiment: It means that X-utils of money is worth something else with X-utils of value. Now, whether economics and trading exist at all has to be established (and is not within range of our deductions at this point). It is quite conceivable that economic systems which trade capital and money are merely a façade, a true Darwinian evolution, something that is entirely man-made. Ownership may very well be an illusion. But, if money and economics are real, and actually valuable, then we can buy things of finite value with it. This, you will see, is an odd thing to say.

I think the one of the more revolutionary aspects of this value system is how we come to understand the universality of value. We can no longer attempt to separate or distinguish types of values. We are required to think of value in the mode of the moralist. Having universally valuable objects, one of which is the most valuable as we have begged, there is that which we should pursue by definition and that which we should not pursue by definition; there is that which we ought to pursue and that which we ought not pursue, there are universal statements of absolute right and wrong based specifically on the innate and independent value of objects and ideas in this world. The value system is one of absolute morality.

There is value, or there is nothing; There is logic, or there is nothing; There is morality, or there is nothing. All choices are moral ones. They are meaningful in virtue of our freedom to choose amongst the many objects and ideas, and meaningful in virtue of the specific and innate values of each object and idea.

The universality of value is highly relevant, and in my opinion, greatly misunderstood by most people. It is only natural that we compartmentalize our lives, creating separate types of values—but, this process of separation isn’t necessarily correct. Essentially, there are problematic distinctions made concerning different values and value systems—these distinctions are facades. One cannot simply designate this as ethics or morality (words that people have far too many definitions for), and this as finances, and this as political law, and this as religion. There is only one value: Is it worth pursuing, and how much is it worth pursuing? This is the only question we should ever ask.

The funny part is when I hear you can’t compare this to that, and frankly, with a universal value perspective, you MUST be able to compare everything. Sure, it takes a great deal of work calculating each objects utility, and we may be too stupid to be able to do it perfectly, but it is at least metaphysically possible—and that is a necessary distinction to make.

Learning to rethink value at its core will be difficult for many. They are blinded by their artificially imposed (and nearly useless) distinctions. Consider, for example, the separation of church and state (which is still technically possible even in a universal value system, but not for the reasons that most people choose to accept this separation). The reasons for this are not genuinely good ones. It is, of course, a philosophical choice to do this, but it is by no means good philosophy (and thus, it is really a form of relativism). Law and morality and ethics all seek to regulate what one ought to do…or, to be more specific, what is worth pursuing. They all are attempting to do the same thing. The reason we really don’t need these distinctions is because there aren’t necessary distinctions to make. Sure, maybe religion and politics have different methodologies in producing what they consider to be the right correct answers and implementations of value, and of course, this distinction of methodologies is useful insofar as we can point out which system is which, the fact remains that we cannot forget the end goals of all of these institutions. We are so caught up in the maelstrom of details that we forget the overarching picture.

This idea of value permeates everywhere. It is inescapable, even in what you may consider the most minor things. When you evaluate two different investments, and you say one is worth more than another, you are making several claims—all of which have everything to do with a value-centric world. You are claiming something like, money is valuable and that money is tangible representation of value, finite and quantifiable. You are reaching out to an economic system and assuming that it in fact valuable to even consider investments and valuable to consider economics. You are thinking that what makes one investment more valuable than another is the difference in the financial returns. You are assuming that ownership of property even exists (metaphysically, this is very difficult to prove), and so on and so forth.

Don’t you see the implications of really thinking in terms of straight universal value?

So, again as an example, if money is really valuable (and trade/property exists, which is the only way money could have value), then you should technically be able to buy any finitely valued thing with it. This is huge. It means you could technically buy the entire planet. Or, what about this: Humans are imperfect, thus they are lacking some value; Thus, humans do not have infinite value; Thus, a human can be bought with money. Ah, I do see problems with assuming that money has any true value.

But, the universality of value, and thinking of each degree of value or util as being equivalent as some mathematical measurement of value, is even further reaching than what we have imagined. It means that the ought to do in a moral sense must be equated with all other things of value.

Morality is universal. All questions are moral questions. When asking, should I get the purple or the red car, you are in fact asking which has more value. Value is value. This is a moral question by today’s standards of the word morality. There is a definite right or wrong. A yes or no, a this is more valuable than that. This is what you ought to pursue in this situation.

People want there to be a neutral. People don’t want to have to think so hard about everything they do. People don’t want to be held accountable for what they might consider insignificant things. But, remember that our perceptions of what is and isn’t value, and to what extent a thing is valuable, are often wrong. So, if red or purple is truly significant in any sense, and choosing reveals it must be significant, then we must say that it is a question of value (significance), and therefore is a moral question. Of course, people haze the issues, they want there to be a relativistic underbelly to the problem. It is so much easier to say, what is right for you is right for you, and what is right for me is right for me. We don’t have to think or actually pursue truth. But, from the very beginning we have shown relativism at its core to be deeply problematic. It cannot stand. You MUST choose between this or that. Choices are moral choices.

This is wonderful. Responsibility may seem like a burden in some aspects, but in reality, it is a gift of trust and value. We are given much, let us do well with what we are given.
Section 2G: The Rationality of Morality

Morality is a rational pursuit. It means that, as we will see in the end, Theism and Christianity require a better foundation than mere faith. At some level, you will be using deductive reasoning to pursue what you ought to pursue. Some are just better at it than others.

Irrational belief is meaningless belief. If a madman says they love you because they are mad, do you really think their statement has the same relevance as when a rational person says I love you? Think about how we praise God. He made us rational beings for a reason.

In the universal value perspective, by definition, you must compare things based upon their value. You make all decisions, deductions, thoughts, and choices from a value-perspective (even if it is a warped one). You must be warranted in your belief. You are climbing a ladder of deductions, and you cannot get to the top without climbing the bottom rungs.
Section 3: Right and Wrong

It is clear that value is universal and absolute. There are no types of value, only degrees of it. All values are, as we would say as moderns, moral values. All things are moral—there are things you ought to do and thing you ought not do. Value and logic show this to be definitionally true. You beg the question of morality as the fundamental component of choice. Essentially, the world is divided into right and wrong.

Given our choice-making system, i.e. pursuing that which we believe to be the highest value, we realize that only one option can be available in any given situation. What is the most valuable thing to pursue is the right thing to pursue. Right is dictated by the single most valuable object or idea in the universe. Pursue that one thing, and you will be doing what is right.

Simple enough? Now, all you have to do is deduce what is in fact the most valuable object or idea in the world, and pursue it. You will find that reason will guide you to God (it is splendid that the gift of the Imago Dei should lead us to such a fitting conclusion, no?). For now, we will wait to cover arguments for theism. Just be mindful that value and reason already push us in such a direction.
Section 3A: Relativism

What does it mean for something to be wrong? And, how do we arrive at the wrong conclusion and end up choosing to pursue something which is in fact not the most valuable object or idea? The answer to the question of why sin exists is relativism and irrationality (Synonyms).

What is relativism?

Relativism is the denial of absolute truth. It is the denial of reason and universality. This philosophy (the irony of such a contradiction, the greatest of them all), is really a means to justify immorality and lazy thought—relativism is the way of the pragmatist and of the evil. There are ideals or there is nothing—the right thing requires diligence, planning, hardwork, and pure reason. Relativism is irrationality.

At any point we are not pursuing truth we are in a state of relativism. It is the state in which you do not care to pursue what you actually ought to pursue. You decide for yourself that what is actually valuable is not valuable. You are in a state of sin. It is blasphemy in the end. As none of us are perfect, we are all, at some time or another, in some way, committing the act of relativism. Your goal, as a philosopher, is to eliminate any remnants of this backwards thinking, and to pursue truth entirely.

Relativism is hidden in a shroud of individuality. These are just barriers to the truth. Truth is independent. To even claim relativism is to claim some sort of an absolute. What about not all truths are absolute or something along those lines? Can you pick and choose what is absolutely true and valuable and what isn’t? Will you allow yourself to arbitrarily justify such things?

Relativism may have come from scientists who claimed the world is unpredictable. The initial ambiguity of such a statement is quite problematic, and probably a starting justification for relativism by those who didn’t fully comprehend what science meant. The scientist of course didn’t mean random or metaphysically or logically impossible to predict, and in the case of scientists, not even physically impossible. Unpredictable just means that something is technologically impossible for us to predict an event. This is our own fault, it is our ignorance that disallows us from possibly predicting something. But, people take unpredictable to mean something much larger, such that it is physically, metaphysically, or even logically impossible for something to be predicted (which would not be our own fault). And, this is the first relativist slip. They changed their perception of a predictable and absolutists view of the word, one in which we are ignorant, to the view that the world is what we make of it, and that we are omniscient in our own sight.
Mom is flying in tomorrow. I've got to make sure she buys supplies for herself (and dad's mentionable unmentionables). She is taking j3d1h for a week, so we will escape. We are going to Orlanda, FL...sweet. Space shuttle launch I hope, dinner, less stress I hope. We are going to chill...err...boil. Whatever.

Did I tell you about a moron I work with? The guy is a decent programmer and knows his math. Just a highschool education, but in many respects he can be intelligent. Of course, he knows he is smart. I can appreciate that. The difference is when he starts talking about things he really has no warrant to talk about. When he debates with me, he attempts to cover his retardation up with an argument about argumentation. He says that all argument isn't about truth, it is persuasive, and even more blasphemously he explains that arguments aren't really innately true or false. He says that there are arguments where there are two differen &quot;right&quot; answers. Good gracious, stupid people, please die.

He walks me through his spurious proof of how 1=2. Lol, I'm not an idiot. So what, you can dig up algebra that would appear to show a contradiction to be true. This isn't a paradox. Idiot. Division by zero or improper mathematical procedures (which I KNOW he knows he isn't following proper procedure) is already begging A and not A.

It goes to show: you cannot argue with a true relativist. You have to trick them. You have to manipulate them into the subdual and submission. You must force them into the truth. Sledgehammers for brickwalls people!!

Do I agree with manipulation? Another question altogether. Perhaps a paper. Believe me, it is VERY difficult to justify emotional persuasion or manipulation...it often breaks the very rules by which we were intially trying to condition a person to follow.
In light of recent concerns, I've created a forum. The forum will be open for several topics (although, I truly doubt it will be significant to very many people). The initial purpose of the forum is to give us a place to discuss whatever the topic may be. For now, I'm interested in being able to post and discuss while at work. I realize that my family in Thailand have difficulty talking, and frankly, I don't like email. Forums are a cleancut way to DISCUSS. Forums &gt; Email. I hope our family will use it.

The first forum will be devoted towards the Summa Theologica.

To reach the forum, look in the top right hand corner. You'll see &quot;Home&quot; and &quot;Forums&quot;. Just click on the &quot;Forums&quot; button, and you'll be redirected to forums.hypercynic.com.

Pic, yay!
‘Did you know there are numerical concepts larger than than Infinity??’ (At least, mathematicians think so…)

You certainly wouldn’t expect this to be the case, after all–You can’t “add” anything to infinity. That is part of its meaning–unbounded. The natural question to ask is:

Can one infinity be larger than another? The answer, according to mathematicians, is No. Why is this true?

An older demonstration of the infinity principle is the Hotel example.

In a hotel with a finite number of rooms, it is clear that once it is full, no more guests can be accommodated. Now, imagine a hotel with an infinite number of rooms. One might assume that the same problem will arise when an infinite number of guests come along and all the rooms are occupied. However, in an infinite hotel, the situations “every room is occupied” and “no more guests can be accommodated” do not turn out to be equivalent. There is a way to solve the problem: if you move the guest occupying room 1 to room 2, the guest occupying room 2 to room 3, etc., you can fit the newcomer into room 1.

Additionally, you can solve this problem by just matching infinite sets.

Take as an example the set of positive integers N={1,2,3,…}. These natural numbers are like a ray, they start at one and continue infinitely. What if I took half of those numbers, for example, all positive even integers E={2,4,6,…}, which is also an infinite set, would E be 1/2 N? Intuitively, you might think so. You might visualize a pseudo-ray of N, in which every other point is missing. So, how could infinity be 1/2 of infinity? We find that Infinity divided by 2 is nearly meaningless because it is definitionally non-divisible. How can we say that E/2=N and also N/E unless N and/or E=0?

The way to solve the issues of whether or not one infinity can be larger than another is through the lens in which we comprehend infinity. Infinity isn’t just any number. Unlike other numbers, the way to think about Infinity is simply to understand it as a repeating process. It is:

Step 1: A+1-> A (the new and improved variable)
Step 2: Go back to step 1

Clearly, infinity doesn’t follow the same rules as a finite number at all. In order to answer questions about infinity, we’ll need to think in terms of steps and patterns as well.

Infinity retains one very important characteristic: infinity remains countable (theoretically), and this is why mathematicians think Infinite + Infinity = Infinity and how Infinity / 2 = Infinity.

Notice that we can just compare the two sets N and E.

N->E

1->2
2->4
3->6
….

Here is a pattern that describes the numerical concept of infinity. It also explains, at least in the minds of mathematicians, how one infinity cannot be larger or smaller than another infinity.

N’s Size of Infinity=

S1: N + 1->N
S2: Go back to S1

E’s Size of Infinity=

S1: E + 0.5->E
S2: Go back to S1

If you could count either set in any meaningful way, you’d get the same as size the other infinite set as well. Thus, even though N/2=E, the size of N=E. This is the size of a countable infinity, which is denoted by the ability to systematically associate each element in an infinite set to an element in the natural infinite set.

It would appear that every element in any infinte sequence could be systematically associated, in a one-to-one correspondence, with an element on the natural infinite set. Thus, if it is infinitely large, it is purely infinitely large.

However, mathematicians believe there remain numerical concepts larger than infinity. Remember, the lens from which we understand the number infinity allows us to think in terms of patterns and processes. For a number to be “larger” than infinity, requires that a set of numbers be larger than a countable infinite set which rests upon the backbone of that initial “infinity” pattern.

(Cardinality enters the room)

Can you make sets that don’t do this?

1->A
2->B
3->C

….

The answer may be yes. And, it is here that infinity is supposedly belittled. The uncountable is larger than the unbounded. Georg (no “e”) Cantor offered us some interesting proofs about it:

Cantor’s most well known proof considers an infinite sequence of the form (x1, x2, x3, …) where each element xi is either 0 or 1.

Consider any infinite listing of some of these sequences. We might have for instance:

s1 = (0, 0, 0, 0, 0, 0, 0, …)
s2 = (1, 1, 1, 1, 1, 1, 1, …)
s3 = (0, 1, 0, 1, 0, 1, 0, …)
s4 = (1, 0, 1, 0, 1, 0, 1, …)
s5 = (1, 1, 0, 1, 0, 1, 1, …)
s6 = (0, 0, 1, 1, 0, 1, 1, …)
s7 = (1, 0, 0, 0, 1, 0, 0, …)
…
And in general we shall write

sn = (sn,1, sn,2, sn,3, sn,4, …)
that is to say, sn,m is the mth element of the nth sequence on the list.

It is possible to build a sequence of elements s0 in such a way that its first element is different from the first element of the first sequence in the list, its second element is different from the second element of the second sequence in the list, and, in general, its nth element is different from the nth element of the nth sequence in the list. That is to say, s0,m will be 0 if sm,m is 1, and s0,m will be 1 if sm,m is 0. For instance:

s1 = (0, 0, 0, 0, 0, 0, 0, …)
s2 = (1, 1, 1, 1, 1, 1, 1, …)
s3 = (0, 1, 0, 1, 0, 1, 0, …)
s4 = (1, 0, 1, 0, 1, 0, 1, …)
s5 = (1, 1, 0, 1, 0, 1, 1, …)
s6 = (0, 0, 1, 1, 0, 1, 1, …)
s7 = (1, 0, 0, 0, 1, 0, 0, …)
…
s0 = (1, 0, 1, 1, 1, 0, 1, …)
(The elements s1,1, s2,2, s3,3, and so on, are here highlighted, showing the origin of the name “diagonal argument”. Note that the highlighted element in s0 is in every case different from the highlighted element in the table above it.)

Therefore it may be seen that this new sequence s0 is distinct from all the sequences in the list. This follows from the fact that if it were identical to, say, the 10th sequence in the list, then we would have s0,10 = s10,10. In general, if it appeared as the nth sequence on the list, we would have s0,n = sn,n, which, due to the construction of s0, is impossible.

From this it follows that the set T, consisting of all infinite sequences of zeros and ones, cannot be put into a list s1, s2, s3, … Otherwise, it would be possible by the above process to construct a sequence s0 which would both be in T (because it is a sequence of 0’s and 1’s which is by the definition of T in T) and at the same time not in T (because we can deliberately construct it not to be in the list). T, containing all such sequences, must contain s0, which is just such a sequence. But since s0 does not appear anywhere on the list, T cannot contain s0.

Therefore T cannot be placed in one-to-one correspondence with the natural numbers. In other words, it is uncountable.

Such a ‘proof’ of an uncountable number would seem to overcome, in size, the pattern we think of as infinity. But, doesn’t this all seem like cheating? The proof appears to defeat infinity in name only.

Surely one could see that we are using a pattern that is definitionally non-associable, it is always one step ahead. It is saying, infinite sequences can never reach this sequence because this pattern is designed to be “larger” and unmatchable via a pattern. It should be perfectly obvious that an infinite set of all possible sequences of all possible combinations of infinite elements MUST match any such sequence of infinite elements….That is part of the definition of infinite set.

Here is the size of the ‘uncountable’ pattern I see:

Step 1: Infinity (step 1: A+1= [new] A, Repeat step 1) * Infinity=A

Step 2: A + 1->A.

Step 3: Repeat step 2

I think of it as a computer, with only so much processing power. In this in instance, it would require that either infinite sequences or infinite elements were assumed, and we were computing the other. Insofar as we are forced to compute, the uncountable number is larger simply in virtue of having started at an assumed larger number in the computation.

Technically, if a computer had infinite processing power, it would possess all possible combinations of sequences/elements, including the supposed ‘uncountable’…It is only through the understanding of a limited computing resources can we say that, following these steps, an uncountable type number is always larger than infinity.

I realize that most don’t see infinity as something to be understood as a “computable” number…but this is EXACTLY what we mean when we say it is a “countable” number..

The uncountable number either makes patterns that are simply “infinite + 1″ (or similar) larger than infinity, as they definitionally are larger and “unmatchable” in the creation of their computable pattern, or the uncountable number is nonsensical.

It all boils down to this. Infinity is understood as a pattern (steps). The only way to understand how other infinities are not larger or smaller than other infinities is through a pattern solution (1-for-1 comparison). Ironically, the only way to say something is larger than infinity is to have an initial pattern (steps) that pre-emptively begs the question by saying it is “larger” than infinity, so that it be larger in the pattern solution (1-for-1 comparison).

Uncountable numbers beg the question of being larger than infinity, but they don’t prove it. You already had to assume the (step) pattern of uncountable numbers to be larger than infinity before you could conclude the pattern solution (1-for-1 comparison). This doesn’t mean that the uncountable number (essentially, Infinite + 1> Infinity) isn’t real or true; I’m just pointing at that we are back where we started….Can only infinity be larger than another in a meaningful sense?

The computational answer does seem to me to suggest it very well could be…

So, I ask, do you think something can be larger than infinity? Show me why or why not.
At the risk of sounding like a &quot;coffee house intellectual&quot; moron, an epiphinaut, or someone trying to sound too deep, I'll share my thought for the day. Maybe I'm seeing too much into the issue, but for now, I believe it is a worthy thought to consider.

Out of curiosity (and boredom), I chose to lookup the meaning of the &quot;4th dimension&quot;, specifically what a 4-dimensional object looks like and how it could be relevant to someone like me who tends to visualize 3-dimensionally. I found that it was a fairly odd, and maybe even not fully explored topic in my research. On one hand, the mathematicians look at it as a tool, simply something that is &quot;capable&quot; of being demonstrated, but the visualization not useful in itself--or rather, the mathematical implications (which I still don't understand) seemed more important than the visual applications. On the other hand, we have the spooky sci-fi freaks who probably make it out to be more than it is...But, after further consideration (or simply due to my own ignorance?) I can't help but wonder if there is more to this issue that I thought at first glance. I read even further about what a &quot;4th dimension&quot; visually implies, and it was astounding. So, I thought I'd make a quick note about it, simply because I thought it warranted discussion (even if only with myself).

At first, I didn't even know howto fully visualize a 4-d object (and, to be honest, I still struggle to think about it, probably because I'm so used to thinking in 3-d and seeing in 2-d). For me to understand 4D is like explaining 3D to a being which lives, breathes, and thinks in 2D. If I talked to a &quot;plane&quot;, how could I possibly describe the 3rd dimension (depth) to the 2D object or thinker? He has very little reference to work from, with the exception of understanding the changes in perspective from 0D to 1D to his 2D. Still, it is a very large gap for him to overcome to even begin to think in 3D, no? I think the same is for our case when attempting to &quot;visualize&quot; 4D in a 3D mindset. What is really funny is the learning I've done so far in regards to +dimensions, the 4th and so on, have only be visually explained to me in 2D. It seems like it would be much, much easier to explain 4D to me in 3D than 4D to me in 2D, much like explaining 3D to a 2D thinker is best done in 2D rather than 1D or 0D. I would like to more fully grasp 4D. Perhaps when I happen across a math/science department they'll have a good 3D model/projection of 4D for me to observe (although, I assume it would be impossible to make a &quot;good&quot; representation of 4D in 3D, I assume it would atleast be better than the 2D projections).

&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/en/thumb/5/5e/Dice_analogy-_1_to_5_dimensions.svg/400px-Dice_analogy-_1_to_5_dimensions.svg.png&quot; /&gt;

This doesn't perfectly demonstrate the initial thoughts of 4D (or 5D), but it gives us a place to start. I decided to draw it myself just to better understand the picture. I like to think of dimensions as &quot;movement&quot; in some direction. In this case, I take a ready made object in the lower dimension, and then I 'move' all vectors of the lower dimensional object in the same direction (and 'length') and then recreate the lower dimension as a new projection, then I connect the corresponding vectors of the lower dimensional objects, and I've created a new dimension. Try it out! Point to Line segment to plane to Cube...and then you see the 4D cube. Here look at this, it is color coded (what I used to draw the 2nd time as well):

&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/0/00/Tesseract_net.svg/451px-Tesseract_net.svg.png&quot; /&gt;

Just focus in on the object to the right, and you'll see how it works. This is a good start in the right direction (hehehe). But, unfortunately, I am just a 3-D guy who uses his retinas to reconfigure 2D images into 3D perceptions. Attempting to &quot;put myself&quot; in the picture to fully understand that 4D object is a daunting task. I have 2 other devices that help me right now (it only gets more complicated when you start using things other than cubes). The next useful projection is the &quot;net&quot; tesseract at the left of the above image. Imagine what other nets would look like to us:

&lt;img src=&quot;http://mathworld.wolfram.com/images/eps-gif/CubeNet_900.gif&quot; /&gt;

This demonstrate 2D planes that are &quot;folded out&quot; to give us a better understanding of the meaning of a 3D cube. The 3D Net is a &quot;folded-out&quot; tesseract (4D cube).

&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Tesseract2.svg/188px-Tesseract2.svg.png&quot; /&gt;

This helps me to understand a basic principle about 4D: 4D naturally perceive things in 3D in the same why I naturally perceive things in 2D, and only through a mechanism like a &quot;retina&quot; could a 4D thinker reconfigure the multitude of 3D images into a 4D perception. More importantly, in the same way that depth perception (3D) is simply a miracle to someone who can only see in 2D, there is an extra type of depth perception, namely seeing 3D objects in their entirety (all at once) that would be miraculous to those of us with normal depth perception.

&lt;img src=&quot;http://upload.wikimedia.org/wikipedia/commons/c/c8/Glass_tesseract_animation.gif&quot; /&gt;
I like to think of it in terms of points. A 1D thinker can see (all at once) the infinite set of points along the line.  A 2D thinker will see a set of points on a plane, something that is infinity larger than the 1D thinker's Line. The important aspect of the 2D thinker is that he can perceive multiple lines rather than multiple points on a line. The 3D thinker, likewise, will see more than a plane's-roaming 2D thinker, and will see infinity X infinity X infinity (I like to think of X,Y, and Z on a graph in this respect). Again, the 3D think will see &quot;the whole&quot; of multiple planes, not just &quot;the whole&quot; of multiple lines like a 2D thinker. In this way, the 4D thinker would need to see &quot;the whole&quot; of multiple 3D objects. The 4D thinker's visual of 3D objects would definitely be analogous to a 3D thinker's visual of 2D objects.

Interesting things to think about. Consider that a 2DT (two dimensional thinker) will be unable to see a plane that moves back or forth (depth) even a few inches. It would appear the 2DT that a whole plane &quot;disappeared&quot; or became invisible. Would not such link between the 3DT and 4D exist? Are we not blind to it in the same way?

Lastly, if time is really the 4th dimension (which I still have trouble understanding at all), then would we not say that God perceives (if He does such a thing) at least 5-Dimensionally? Sounds stupid, I know. But, remember, things with depth are invisible and unintelligble to the 2DT, and likes things of the 4th Dimension are unintelligble to the 3DT. Assuming the 4th dimmension is time, and God is more powerful than time itself, then he must be 5-dimensional to see &quot;all the points&quot; of 4-D objects at once. And, if God is &quot;bound&quot; by time, and co-exists with it, then He might be 4D.

Or perhaps, we can go back to linear time thought, Kantian ideas of time being relative to movement, and just say that &quot;He Knows&quot; it...

But, cmon people!!! wouldn't a world so beautifully made, so perfectly scientific, be made by a Being that is also mathematically precise as well? Would it not make sense that there is a science and a method to this madness and not just &quot;oh yeah, He knows it...through omniscience&quot;. God is a creator, the Great Deducer, THE Scientist. If it can be known, then He knows it not just because He is omniscient, but also because He could DEDUCE it and because He can PERCEIVE the entirety of our world. He can see ALL POINTS at once. Be careful my Boethius-sympathizing friends...

As an additional note, at further consideration, it seems we are possibly 4D observers as we &quot;move&quot; through time. I don't know if that is geometrically equivalent or not...regardless, I think a case still might stand for arguing that God has -scientifically- better depth perception than we have, perhaps in the way of viewing the world through higher dimensions than we do.
Wow, it has been a while since I've posted. This has definitely been a busy month.

1) JRE graduated
2) Mom visited
3) k0sh3k and I went on vacation
4) Grandpa and Grandma moved close to us
5) JRE moved and Mom went back to Thailand
6) I've been teaching another studentless class (I never had many students to &quot;drive-away&quot; in the first place)
7) Birthdays for AIR and k0sh3k.

That was in no particular order. Short and sweet though. I'm sure things are just heating up for our new arrival. The incubatee is now muscling his or her (or its, heaven forbid) into the second trimester. Yay!

Oh yeah, I guess I didn't write this down before...but it is important. We've decided to go straight to Thailand instead of going to school first. k0sh3k and I knew we wanted to live outside the states and do missions and maybe teach our subjects if given the opportunity. We realize that we just won't benefit enough from going to school at this point, and we feel there is much more to be gained (and purpose to be fulfilled) by just entering missions now.

School is more of a barrier to where we should be than a path. School offers us education and certification. Both of which can be important, but unfortunately, these are not entirely useful in Thailand. k0sh3k and I have had to ask why we want to goto school, and we needed better reasons than we had.

Without a doubt, k0sh3k and I have peculiar intelligences, and I believe we have reached a basic threshold in our fields in which we are fully capable of learning, analyzing, and creating knowledge entirely on our own if need be...So, if we are really serious about learning in the first place, then we will do just that, regardless of our circumstances. The basic principle of school can be completed outside of school (the certification no, but that isn't why we really would want to goto school).

If we were called to teach elsewhere, then k0sh3k and I have the tools to do it already. Others may disagree, but that shows in my mind that they don't know us or see the larger plan at all. Of course, of course, we have committed the usual crime of our generation, the usual line goes: &quot;I'm the exception to the rule&quot;...&quot;I'm special&quot;...Lol. While ironically this isn't true of most who say it, k0sh3k and I are chosen. I could loop this back to &quot;other may disagree&quot; at this point. But, there is no point. k0sh3k and I have proven ourselves exceptional (it is one of the perks of being &quot;weird&quot;), and I know that we have the tools to do what God asks of us. There is a reason why I find &quot;4eak&quot; so fitting, I've pretty much taken it as a second name.

Anyways, this shift in plans is obviously important to us. We've been gathering what we need to move. We've talked to our doctors, and we've been advised that we cannot move until at least 8 weeks after the baby is born. This seems fine. We have so many loose ends to tie up. Preparing for the next baby, having it, present and future work and finances, getting 1-year teaching visas, figuring out what to do with the house and the stuff we have.

I will admit, the shift is somewhat bittersweet, but in no way regretful (in the end I am content[THE word of sufficiency]...nay, even happy) about the decision. It is only bittersweet on the surface of things, and that would only be in terms of the opportunity costs foregone to complete our mission. These, obviously, are acceptable &quot;losses&quot;.

I do have to say though, my parents have offered us the house indefinitely, and it has been a true aid to my family. In order for us to have payed for rent elsewhere, both of us would have needed to be working (which would have been fine, but certainly not preferred). The house has offered us the ability for k0sh3k to be a stay-at-home-mom (which sometimes she likes and sometimes she doesn't, although, it is growing on her). We are very grateful for the use of the house.
As usual, a fairly interesting week or two. Beware a post with no transitions. I’m just regurgitating thoughts…it may go on “family guy tangents”…

j3d1h has had an odd diaper rash for a week (she very, very rarely has a diaper rash). We are good about cleaning her (k0sh3k especially), but this diaper rash was very weird. It was a bit all over, but it was heaviest on her lower back…weird. So, we tried different rash-creams, and nothing worked. It would look like it was getting better, and then all of the sudden, it would get worse. k0sh3k took her to the doctor (regular checkup) and we found out that j3d1h has eczema.

Ironically, diaper rash ointments tend to remove and eliminate moisture, which only makes eczema worse. We have a special eczema cream, and I’m sure we’ll be careful to make sure it doesn’t get any worse.

Switching topics…

I also wrote something interesting:

———————————

The Equal Pay Act amended the Fair Labor Standards Act in 1963; it provides that where workers perform equal work in jobs requiring “equal skill, effort, and responsibility and performed under similar working conditions,” they should be provided equal pay.

Essentially, the law also reads:

If an employer asks me to perform an unequal amount of work, then I should get a proportionately unequal amount of compensation. If I am asked to perform using a higher amount of skill, responsibility, and comparative effort than others around me, then I should be provided higher pay.

Expecting more work from an individual, but not paying for it is a form of discrimination. Munesh, and by proxy his supervisor(s), discriminates against me.

The degree of satisfactory work (quota) is clearly defined per task. Take for example Outbound calls which require 8.6 per hour (adjusted to show the actual quota) equates to 65 calls expected in a 7.5 Hour period of production (breaks and lunch do not comprise productive time). To meet expectations requires 65 call in a work day.

Munesh has directly told me he will raise my ‘individual quota’ above everyone else’s quota to 75 per day (as opposed to my co-workers’ 65 calls per day). He has explicity stated several times over the year that those who do not meet their quota will be endangering their employment and future written references. According to Munesh, by not meeting 75 calls per day, I risk termination of my employment and a poor reference letter. I make the same wages as my fellow employees. Why should I be required to perform tasks of higher skill and effort without being paid for them?

Munesh requires that I perform 8.7 hours of work for only 7.5 hours of compensation while my co-workers are only required to perform 7.5 hours of work to receive 7.5 hours of compensation. This is discrimination.

There are two solutions:

If the quota were universally changed so that everyone was required to work 75 calls per day, then I would not feel discriminated against.

If I were paid for 8.7 hours of work instead of 7.5 hours of work, then I would not feel discriminated against.

——————————

I have no idea how it will work out. I know that I can’t goto my supervisor, or his supervisor, or even her supervisor about this issue. I’ll either goto HR or the VP (he is a good guy, and I’ve seen him “weigh-in” before on behalf of small folks like me in regards to similar issues) for advice about it.

For now, I am working to find a new job entirely. I’ve applied to many jobs just within Humana (and I’m applying outside as well). I need 30k + benefits a year for our family to do this with breathing room (kids aren’t cheap).

Moving on (no transitions for you…):

I got a jump-drive with 2GB on it for 15$ (that is a steal!). It is a very neat device, and I’m sure, it will be archaic within a year. 2GB is still a good deal of info. The 5GB will be what matters, as it will catch up to one-time media storage like DVD-R’s.

Speaking of Gift-ish buyable things:

k0sh3k and I have decided to work together on our birthday gifts. We are getting teh gr8 bukz (I have to teach mom some l337 speak while I can). I think this will be a wise choice for our childrens’ education. No matter where we are, we have the heart of Western thought summarized for us…and it will be important for our children to be educated in such things.

Speaking of which, I don’t exactly know how we will go about teaching our kids (I’m honestly not a good teacher…but k0sh3k is awesome). Reading and math are everything. I look at all other topics as advancements to these fundamental topics…these are the modes or languages of all other scholastic pursuits. Obviously, I wish to concentrate on the modes first. I suppose I will need to add logic and music to the list of modes as well. Hrmm…but school requires more. Trades, travel, dealing with society, and other “extras” seem to be relevant experiences. How does one pack all that in? I honestly have no idea how I can give my kids better than what I had, lol.

One major issue is knowing the line at which I will force my children to do something and when I’ll just let them start and stop at whim. Learning about frogs is about them, reading certain types of fiction is just up to them…but, as we move closer and closer to the fundamental modes we begin to see more necessary bodies of knowledge. I don’t want to eliminate their interest in the necessities, I’d much rather they strive to learn and grow in those areas just from plain curiosity, ambition, and self-growth rather than just because I said to do it.

I suppose I look at everything we do as a parent as a form of education. We are conditioning our children (influencing, manipulating). Do I trust my gut/instinct? Should I? Definitely a difficult proposition..this “raising the kids” things appears to be a solid challenge. I am responsible for what they become (in part).

Of course, we all know all of this. We’ve known for a long time…it is just more relevant to me when I am in the midst of such decisions.

I’ll tell you one thing though: parents wing it. Straight up. No lies. At some point, no matter how prepared you are…you will wing it. We might say life is improvised…even though there is only one perfect script to follow.

oh snap….btw, to family members who read this:

The Tattoo-word is out. Grandpa and grandma know. They caught k0sh3k and I…they were fairly polite, we played ‘light-hearted’ defense fairly well. It was clear they believed us all to have them…they saw mom’s…LOL! Of course, Grandpa and grandma were not terribly happy about it.

I always wonder about the generational gaps (a fascinating concept to me). The ebb and flow of “memes” in generations, the biological differences, the change, and especially the similarities…these are important things to watch. what is the statistical relations between my parents and their parents? How will k0sh3k and I, and our bro’s+sis’s, be similar/different to our parents? How about our children? What aspects of these things are good, and what are bad? If good, what can we do to promote such things, and if bad, how do we eliminate the cycle? How should such evidence influence our perception of our grandparents, parents, selves, and children? But, be careful not to be wrapped up in identity…unless you identity is simply seeking God’s Will. And, insofar as this would be God’s will, you should purusue it. I think we can deduce several uniquely hard to understand elements of God’s Will for familial relations and so on from studying the generations.

Oh, they saw our tattoos at Ann’s July 4th party. I was surrounded by Old Southern Republicans…Always a long event. Morons. Anyways, the party was short for us (j3d1h needed a nap)…and we had a good visit. The house was clean (not for long I assume).

k0sh3k’s Morning sickness is an all day sickness, and it appears to be getting worse and worse. Thankfully she can take her Medicine to have fewer Migraines. Throwing up sucks still. I’m trying to keep her eating because if it gets even worse, then she might not be able to eat (or keep it down). I’m not worried at this point. But, I will keep watching.

I’ve begged people to post on the forum…I realize I need input. I need to formulate the picture, and the innovation might require some questions from outside sources.

We’ve been making awesome proxy cards. I clean cards off we acetone, erasers, and sandpaper. Dry em, print them, and dry them. Beautiful proxies. I can get cards that look identical…I could use them in tournaments…even sell them (which I won’t…obviously).
I was talking with [[k0sh3k]] earlier about a funny observation (one I continue to make over and over). I keep looking at a world of people who all are in a struggle of wills…everyone thinks they know best.

Inevitably, people think they are right. Honestly, I’ve never met a person with any opinion on a matter beyond the explicit “I don’t know”, that didn’t think they knew the answer. Everyone with an opinion thinks they are right.

Someone can see a small part of the picture here, and Johnny boy knows the answer to the world’s problems over there. And, somehow, I remain surprised that everyone thinks they have a right to an opinion at all. Who the hell are we to think we know the answer to political/social/religious issues unless we’ve actually sat down to think from the base up? Or, why think from the base up? I guess that requires justification…almost like a rational base to support a conclu…oh nm. Stupid people.

It is here that I sympathize with a fringe/intelligent relativist. We know there IS absolute truth. We know that truth is knowable, and that we can deduce such things. We question what makes someone an authority on an issue. We wonder why the morons around us think they are right…and why we would be wrong? It is completely ironic that we should trap ourselves in the cynic’s case: people are stupid. After all, we are people, but we think we aren’t stupid. I’m not here to promote the world as if it SHOULD be a land of swarming idiotic individuals, but I will say that is what the world is…

I am constantly asking myself, why try? Why should I even try to teach? I know the answer (oh, yes, I said it). But, are people ready to learn? What state of mind must a student possess? There is one relevant variable that decides whether or not you are ready to be a student: do you think you know the answer or not? Do you think you could be wrong? Are you willing to accept that you don’t know the answer for the time being? The world answers these questions in the negative. They are all experts on morality and what “ought” to be (some phrase the answer as if it isn’t morality…but they are ignorant). What could anyone possibly teach them? THESE are unteachable. They choose their ignorance, they choose irrationality, and they choose relativism. They choose for themselves the unforgivable sin of being unable to grow.

How do you teach the unteachable? Should you even try? obviously, we WANT to teach everyone…Let us be honest, pragmatic answers are lazy answers. I can’t give a practical answer because that isn’t “ought”…unless you are omniscient and you can calculate all effects (in which case the ‘ought’ is the practical…but hey, you are always all-knowing, probably all powerful too…what isn’t practical for you?).

I often wonder what the prophets thought and felt. What went through their heads as they taught those who were unteachable? God tested the prophets too. My favorite word of the day: “Woe”… It fits, ironically, both the prophet and the people.

Good gracious. I sound Emo. Lol, what can I say?…”I’m the exception”…?? It is true, I am limited. But, I ask you, show me how I’m not the exception? What about me rings…normal? Shouldn’t a chosen person be exactly that…the exception?

Did God make prophets that were never heard? Was it the fault of the prophet? The People? Both? I suppose, the world need smart janitors…after all, the aim to know God..regardless of your position or circumstance.

It is odd that we should strive to be: unique. I can look through history (not just what moderns teach their children “you are -so- special” talks) and point out exactly where people strive to show they are the exception. People want to think they are unique. And, I’ll agree with them: they are the only people to be exactly where they are…to live in those exact circumstances.

My answer to this is, of course, one that comes straight out of gaming (haha, I know…so sad…although, I’m betting my religious knowledge influenced my understanding of games…in which it is much easier to write about things like “fairness”..so props to God still):

Life (Gaming) isn’t about what you have, it is about what you do with what you’ve been given.

Your praised uniqueness is irrelevant. What you believed and how you behaved in your ‘unique’ position is all that mattered. This is obvious. I think we forget that it is true. It is obvious from our pursuit of uniqueness that we forget why we are here…to become a Godbot (btw, best F-ing word ever…I may name my book “Guide to Becoming a Godbot”). Literally, Godbot=Slave. Get used to it. Oh…I suppose I need to justify a book, or even why I write this blog? Do I do it because I want to be unique? Does it serve the Will of God?

I think this serves as 1.) a brainstorming center (obviously God’s Will for irrational beings), 2.) A reflective center that inspires change in belief and behavior (obviously good), 3.) a place to vent (I don’t know if this one is God’s Will to be honest–but, you might say this is a more constructive form of ventilation), 4.) A place to collect and remember my thoughts (mental function, seems reasonable…*cough), and 5.) I am good at deducing answers, I am bad at showing my work…and writing forces me to show my work (an area I need to grow in if I ever wish to teach).

Uggh…

I am constantly reminded, in light of our stupidity: God is merciful. He gives us grace. We need it.

Hell, look at this fragmented writing (/sarcasm on…obviously there are more relevant aspects of my stupidity), doesn’t it smack of stupidity and Emo. Silly me.

Anyways, Go check out [[JRE]].hypercynic.com
As the relevance and power of your counter-base deceases in relation to the tempo of your opponent’s relevant threatbase (or as the fundamental turn of the format becomes faster and faster), the more MUC becomes reliant upon tempo-type control features. Generally, the earlier a control piece can be played, the weaker it is comparatively to a later game control piece (often with diminishing returns as you scale down, with few exceptions like FoW). The mana to degree of effective to control should certainly scale, and often there are large, even disproportionate, sacrifices made to have free, cheap, and early counters and control. This means that Force Spike is obviously not as good as Mana Leak, except in circumstances in which the tempo of the game is so fast that your only shot to relevantly control the game with permission requires you to “down-grade” in both scale and often proportionate mana to control effectiveness.

At some point, MUC can no longer counter every threat and continue to generate card advantage. Obviously, eternal formats have evolved to the point that MUC doesn’t even consider it possible to counter all possible threats. Thus, MUC is forced into board control. Board control generally boils down to either permanent removal or bounce (both serve different functions), but essentially they both help MUC bridge the tempo gap. Bounce is the cheapest and most versatile form of removal, but it is quite temporary. It clearly doesn’t deal with threats in the long-term (and this is quite relevant to a control deck), but it can act as tempo gain (something MUC desperately can use often enough)…practically a timewalk in many cases. Again, bounce is not card-advantage, and thus it is limited and least preferred in true control, but often its versatility is necessary to fill in gaps. Single target permanent removal does exist (splash for STP?). But, again it does not answer the problem of MUC only being capable of so many 1v1 for trades while generating spell-based card advantage. The only good answers comes in the form of mass removal. Massive permanent removal is more expensive, less versatile than bounce and pin-point, but it offers MUC the end result in wants: card advantage with no relevant threats on the board (or in the opponent’s hand).

To the extent that the counter-base can no longer scale with the tempo of a format, permanent mass board control must substitute. This does mean that MUC is vulnerable because it is often forced to wait to eliminate threats. But, life is a resource, and MUC can certainly use several tempo variables to its advantage to eventually establish control of the game. Legacy’s fundamental turn decreases the relevance and power of a counter-control strategy, thus MUC is forced to win the game not in virtue of controlling exclusively the stack, but also controlling the board. Pin-point removal and bounce do not solve the problem, although they can be used to fill in the gaps between Counters and Mass board controllers.
MUC does remain quite powerful (played correctly). You need to understand your role thoroughly. Mass Board control does offer very strong card advantage, often giving 1 to 3 or more. Some mass board controllers offer continual advantage (which make them extremely powerful), such as Back to Basics and Vedalken Shackles. For MUC to exist (and not become fish), it will need to rely upon mass board control. The most important aspect of board control is that it does what your counter-base can’t do for you while often acting as card advantage like FoF. The more you play MUC in such a fast environment, the more you will come to understand that the tempo of the format decreases the relevance of permission to the point that counters exist to supplement the mass board controllers, not the other way around.

The deck wins strictly on card advantage, and the principle must be continued for MUC to exist. At any point a blue deck doesn’t attempt to generate true card advantage, and simply disrupt, it is an aggro-tempo deck…Fish. When you build and play MUC for Legacy, it is from the standpoint that you are attempting to resolve and use a mass-board controller. Counters help you live long enough to do that.

In a fairly slow format you would go: Counter-control -> Stabilize -> Win condition

Legacy is closer to: Counter-control -> Board Control -> Stabilize -> Win Condition

Stabilizing is the point at which there are no relevant threats on the board or in the opponents hand and you have relevant card advantage. Of course, cantrips, card-drawing, permission, and even bounce will be used throughout the cycle. The important thing to note (yes, I sound redundant): The general aim of MUC has changed. The job of the Legacy MUC player is to get a board controller into play.
So, the short summary:

I find the early game cannot be won by MUC. As we cannot counter every single threat and solely use spell-based card advantage (FoF/TFK/AK/etc.), we have to base our card advantage, in part, on board control. Modern MUC is based upon the card advantage created by massive board control. MUC shouldn’t be trying to win the early game by countering every single threat and using pinpoint removal because it can’t. It really seeks to crop the most relevant early game cards from an opponent (buying time), and then drop a card-advantage producing board controller.

When I play MUC in Legacy, I realize I’m only going to be able to counter 1-2 of the most relevant threats in the first couple turns, and that I’m simply buying time to find the card that gives me actual card advantage while neutralizing board threats. Once I’ve neuatralized the board, I just build up card advantage through FoF and my artifacts, and then flood my opponent with my superior resources.

With that in mind, after extensive play, this is the artifact-bomb centric MUC I use:

1 Morphling
1 Meloku

2 Force Spike
4 ManaLeak
4 Counterspell
4 Force of Will

3 Vedalken Shackles
3 Nevinyrral’s Disk
3 Echoing Truth

3 Brainstorm
3 Impulse
4 Fact or Fiction

3 Quicksand
3 Stalking Stones
4 Polluted Delta
15 Island

I’ll explain my choices in order of functional relevance.

Board Control–

Vedalken Shackles: The MVP of the deck. If you play against a creature deck (with the exception of a reanimator concept), then Shackles is the goto card. It is without question the most potent tool in MUC. I’ve found running 3 to be a minimum, but also optimal number, including a decent cantrip/CA base. There is no substitute for this card. It is all too often so relevant that you might even call this a Vedalken Shackles deck. Despite what some of its critics might say, this card is not too slow for the format. MUC definitely has the tools to live to turns 3, 4, and beyond. With a solid island count (you cannot drop below 16 Island/Fetches) this card can not only begin trading cards immediately and stabilizing, but it also serves as a great win condition.

I will admit, it takes a great deal of practice to maximally use this card. Assuming you know the rulings about the card’s targeting/resolution, you will constantly need to think about what it can do to change the state of the board, and where you hope to end up with this card. Wonderfully, this card be very powerful in multiples, but I’d argue the 2nd (and especially the 3rd) has diminishing returns.

Nevinyrral’s Disk: The best board clearer in the game. My testing has pointed me again and again to this classic. Other board clearers either don’t match Nevi’s mana-efficiency or its card advantage and ability to clear ALL relevant board threats (with DSC as the exception). PK and EE are faster, yes, but they do not perform the function of a board clearer well enough. Use your counters and bounce to drop the Nevi’s disk, not your PK/EE to use your counters. This is strict board control and card advantage.

While initially you would think this conflicts with Shackles, it very rarely does. It will be obvious to you after much testing that both artifact bombs play different roles, and that you’ll be seeking one or the other. Additionally, we have bounce to save our artifacts. And, remember, you can always go: Disk’s ability on the stack, in response (or before you pass priority) Echo your Nevi’s. Yay…

Echoing Truth: Pound for pound, the best bounce available in Legacy. CoV, Repeal, and Boomerang are powerful as well, but unfortunately, they are not as good. CoV is excellent. It can save your own permanents, and it is very cheap. Unfortunately, it allows your opponent to bounce your relevant board controllers as well, and this is simply unacceptable. Boomerang is solid…hitting a land can be powerful. However, the double UU isn’t always available (no matter what turn it is). The ability to hit land simply isn’t worth the extra U requirement and the inability to hit multiples of the same name. Repeal is probably the next best option to echo. It is a fantastic card, but it can be fairly mana-intensive, which cannot be afforded for this function of the deck. Echo is a solid response to tokens and multiples obviously. It is nicely colored.

Bounce does give us some breathing room. Sometimes that tempo boost is what MUC needs. This card fills in a lot of gaps. At the worst, it is brainstormable and pitchable to FoW.

Other consideration: Back to Basics. B2B is a different form of board control, and it certainly acts like a time walk against decks that rely very heavily upon non-basics. In some metagames, it is ridiculously awesome…in others, it is lacking. If an opponent runs enough basics (and many decks do so to avoid Wasteland), then this card isn’t worth the slot or investment. This is a strong sideboard card.

Permission–No longer is it the primary control feature of the deck. It is the smoothing element that hits nearly everything in a format. These are timewalks. I find 12 is the bare minimum number of counters MUC can run, and 18 is really the maximum. These will last 4-6 counter slots should be based around your metagame.

Force of Will: No explanation required.

Counterspell: No explanation required.

Mana Leak: Mana Leak is strictly superior in the early game to Rune Snag (and probably any of the other available permission options). It is a hardcounter for several turns, and it fills in a permission gap. This is a minimum 2-of…I prefer to see 4 in my testing. Do remember: mana to permission efficiency DOES matter, and mana leak is fairly efficient. It does lose some of its late game, but I find it still useful even on turn 10 all too often.

Force Spike: The little counter that could. MUC still can have some early game counters left in it (the metagame isn’t Vintage fast). I prefer Force Spike to Daze simply because I can’t afford to miss a land drop, ever. It is brainstorm fodder and pitchable to FoW. You will still be surprised how many times you’ll use it even in the late game.

Other spells to consider: Delay, Remand, Misdirection, Logic knot (yeah, it can be fairly good), Daze. With the exception of Logic Knot, these counterspells are tempo spells. They are not true always strictly permission unfortunately. This deck needs true permission to eliminate threats. I find Daze would be most playable in general, but the land drop does matter. MisD can also be an fantastically good card against specific decks/cards, but unfortunately, it lacks versatility and all too often just sits in your hand.

Draw–MUC has access to both card quality and advantage spells, and obviously, it should use them. Ideally, you want to open a hand with a cantrip to guarentee land drops, and you want to mid-game Chain FoF/Cantrip.

Fact or Fiction: The best card advantage in Legacy. It gives you the choice along the spectrum of card quality and quantity. It has the ability to capitalize off opponent error and the use of the secret knowledge of your hand. This is a 4-of…no question. Chaining FoF’s together is exactly what MUC does in the mid-late game, and it is part of stabilizing.

Brainstorm: I hated bringing this down to 3. I believe if you run blue, you should be using this card. It is ridiculous, and I’m not even going to take the time to explain the comparative gains of seeing 3 cards. I’ll be honest though, I don’t like to brainstorm without a fetchland. Running 3 means that I’m more likely to have a fetch available. This could easily goto 4, but it would be at the cost of impulse, which is a guarenteed dig.

Impulse: This card is a brainstorm+fetchland in one. All too often you are just digging for your artifact-bomb. This card does it for you. This also bypasses CotV@1

The other consideration: Thirst for Knowledge. A powerful, powerful card with the right deck. Add 3-4 Seat of the Synod and CoTV, and I think it is a must run. My build tends to want to dig FOR the artifacts…pitching is not always best. Additionally, Seat does not work well with other disruption pieces (B2B, Nevi’s, EE@0, PK@0), and it can be wastelanded.

In any case, your mana-base and cantrip/draw engine are connected to each other.

Creatures–The more and more I play an artifact-centric MUC, the more I find that my creatures are not the best win conditions. Creatures, without question, are the oddest part of MUC. They are dissynergistic with board clearers, they are mana intensive, and they are generally not very powerful in blue. MUC’s win conditions are at their best when their are either free (or not casted during your mainphases, like Stalking Stones), part of the control game plan in the first place (shackles), or allow you to switch between and fill multiple roles.

I find three relevant creature spells that allow you to do the latter: Morphling, Meloku, Psychatog, and Rainbow Efreet.

The most important thing to remember is that your creatures exist primarily as a filler to your Shackles, not the other way around. The majority of games should be won on the back of your shackles, not your actual creature spells. Your creature spells should be filling the roles that shackles cannot.

For now, I don’t feel it is necessary to explain these creatures. It is obvious that they have fairly different functions and are better or worse against different decks. Shackles and Stalking stones do a lot for you, these creatures can be excellent at filling in the niche.

In addition, I will have to say that my testing has shown Ophidian not worth the slot. It is a great card in the right metagame, but it does not belong in a creature and removal heavy environment like Legacy. When it is active, it is easy to see where this card is just amazing (much like LoA). But, I ask you to look at the less obvious aspect of Phid: the times in which it is not actually better than other cards that could take its slot and the spells that could have been cast instead. To be oversimplistic: I look at it as a choice between Disk and Phid, and I’ll take Disk anyday.

Mana Base–Always important. Keep it heavy island (shackles), at or above 24 count, and not too heavily fetch based (you still need to drop lands even in mid and late game). In my mind, it is all about the utility of your extra land slots. The slots seem relatively obvious. I could easily see different MUC variations running Wasteland, Seat of the Synod, 6 fetches, 1-of Duals for splashes, and even Winding Canyons. My version keeps it fairly simple.

The card I don’t like: Chrome Mox. Not only is it terrible in multiples, dies to SO much hate (including your own board clearing), Chrome Mox is card disadvantage, so much of it that it can’t be supported by MUC’s gameplan. It does have synergy with TFK. It does give you 2-mana (bye bye Force Spike). I suggest that this could be a sideboard card in certain matches, but it is strictly awful in too many cases.

Cards I wanted to see maindeck, but instead went to sideboard:

Chalice of the Void: This is a hard card not to put in MUC. CotV at 0 and 1 are excellent (game-breaking perhaps against several decks). However, it needs a whole deck to be built around it mainboard. Brainstorm isn’t as good with it, and more importantly, Nevi’s Disk doesn’t interact well with it. CotV also takes up your all important 2-drop (@1), which can be fundamental to MUC’s success. It, unfortunately, is not a versatile card. Testing has shown it to be an amazing card against certain decks, and against others, I’d MUCh rather have a different card.

If I did run CoTV in MUC, then I’d use a mana-denial theme to create virtual card advantage by eliminating an opponent’s card relevance (uncastable is as good as useless). I’d use this deck:

1 Morphling
1 Meloku

4 ManaLeak
4 Counterspell
4 Force of Will

3 Vedalken Shackles
3 Powder keg
3 Echoing Truth

2 Back to Basics
4 CotV

4 Impulse
2 Thirst for Knowledge
4 Fact or Fiction

2 Quicksand
4 Wasteland
4 Polluted Delta
15 Island

Back to Basics: Wow. Such an amazing card. How unfortunate that so many decks can play through it. It even hurts MUC’s extra land slots. Depends on the metagame. Unlike CotV, this doesn’t need a deck built around it. It can easily go 2-3 in a deck, just make sure your mana-base does get owned by it. Again, this is just not synergistic with Disk. In the end, I find Disk to be too important to accept a mana-denial theme. All too often CoTV and B2B come down too late to be relevant, and I’ll need to clear the board anyways. Of course, B2B, if it isn’t Main, should be in the sideboard.

As for the sideboard, I’m not in a position to say how you should tailor yours…If not already maindeck, Tormod’s Crypt, LotV, Crucible, Boseiju, CoTV, B2B, Blasts, misD, and black or white splashes all seem viable in the right circumstances.

Conclusions:

Many people think MUC simply lacks good win conditions. This shows a fundamental misunderstanding of what MUC is doing. It isn’t about jumping the gap from stabilization to win condition, it is about getting to stabiliziation in the first place. You might say that MUC only has a temporary amount of stabilized turns, and that is why you want to be able to so effectively switch roles. If this is the case, I advocate Psychatog. However, I really question whether you stabilized in the first place if the stabilization is really that temporary.

MUC in Legacy, unfortunately, cannot act like a mana drain powered BBS. MUC must control the game entirely, whether it is through mana-denial/CoTV or board control. My testing has shown the latter to be more effective.

The Deck is certainly skill intensive. I don’t know of another deck that needs to think so thoroughly through the implications of both decks at the table to make decisions in the early game. It is, unfortunately, one of those decks with a high enough skill minimum (like solidarity) that it is often passed off as unviable simply because a great number of people cannot play the deck correctly.

The lovely aspect of MUC is that it can compete against nearly everything (given a skilled player). It has tools that are fairly versatile and a gameplan thatmolds around the opponent’s deck. While control decks are definitionally metagame dependant decks, as they seek be to be interactive (in virtue of a more reactive strategy), MUC has more potential to be a more universal control deck than any other control deck I’ve used. It can interact with nearly any deck, and it keeps a generally high level of card quality and advantage against most any archetype. Having relevant and higher card quality and advantage is exactly what wins games, and I’ve found MUC to be plenty viable against the current environment.
Affinity (Raffinity/Vial Affinity)

Affinity is an artifact-based aggro-combo deck. It uses fairly powerful tempo enhancing effects such as the affinity mechanic (the namesake), modular, and highly synergistic artifacts/spells to apply a great deal of early game pressure. The aggro element is powerful and versatile; it has so many combat tricks that the deck often appears to act as a combo deck in the last few turns as it can often bypass many control features presented by an opponent (removal, blocking, unmanageable disciple life loss, etc.). Some might say that affinity breaks several of the general principles of magic as it possesses the ability: to play multiple extremely undercosted spells, to dodge pin-point control too effectively, and to put more permanents in play within the first 3 turns than a normal deck should.

The pivotal strength (and what some may eventually find to be a weakness as this deck is limited in evolution) of affinity is the raw synergy and tempo that exists in the deck. Affinity rarely draws hands that it doesn’t want to keep, and nearly every card you draw in the deck will have a positive interaction with other cards in the deck. Generally, everything in the deck is relevant to your current board position, and cards often have a multiplicative effect beyond their initial perceived relevance and power (artifact + disciple + ravager + modular + affinity factor + etc.). Essentially, the whole is much greater than the sum of the parts. When played correctly, the high average card relevance, synergy, and well-abused tempo mechanics gives affinity resilience and speed that is rarely matched by other aggro decks.

This strength, however, can act as a weakness. There is a common misconception about the deck and how affinity can evolve in a format. Many people fail to realize the problem with a deck that requires every single piece in the deck to maintain synergy. The problem with affinity is that it is very difficult to change the deck without impacting the synergy of the deck itself. So, for example, to add 4x Cloud of Faeries and 4x Somber Hoverguard, while subtracting other relevant artifacts, acts as a barrier not only to a proper mana base (and the abuse of it), but it waters the deck down, eliminating the very strength of its synergy. If you cut artifacts for non-artifacts, you decrease your average card relevance in terms of the average progression of your gameplan itself (aggro-combo). Even cutting certain artifacts for others can demonstrate a decrease in synergy. Affinity exists in virtue of its synergy. Watering the deck down only prevents affinity from doing what it does best. This means that Affinity has very limited sideboard options and few evolutions available. Admittedly, this misconception is fairly widespread because it is difficult to see the web of synergy interactions that each card helps to compose.

Taking into consideration this synergy issue, affinity will fail to evolve away from a very specific type of aggro-combo. For example, affinity, unfortunately, cannot be properly built as an aggro-control deck. To add control components is to weaken its architecture as an aggro-combo deck. Even further, removing an aggro card for a control card is more than just a 1 for 1 substitution in affinity. There is more than a 1 for 1 proportional change in functional effectiveness when switching from aggro to control. The change forms a much larger loss in the aggro-combo functionality of the deck than merely 1 card (as synergy multiplies an aggro card’s relevance), while there only remains 1 control card to be gained. Some may argue that the disproportionate loss is worth it. All I can say is: you have misassigned your role as the affinity player.

To the dismay of some, this two-edged synergy means that Affinity will never be an aggro-control deck, it only has one direction to continue evolving: aggro. Now, surely, some might point me towards some AfFoWnity decks and the like, but that doesn’t mean these decks are optimal, nor as good as straight Aggro affinity.

You lose a lot more than you gain by choosing to use non-aggro cards in affinity. But, it isn’t just using aggressive cards, affinity requires a very specific type of aggro card. So, while Jitte may be a fantastically aggressive card to use (and versatile), Jitte is such a tempo sucking whore that the deck cannot afford to use it.

Affinity should continue to specialize and develop as an aggro deck if it wishes to further its competitive advantage. Developing and modifying affinity requires a great deal of justification. It isn’t as simple as, “the metagame would suggest we use X” to take care of Y. Adding and subtracting cards from affinity is innately more difficult and complex to do correctly. The opportunity cost of running one card and not another is difficult to measure in this deck. Now, that doesn’t mean there aren’t innovations to be had, but with a deck that revolves around so much synergy, the proponents of the status quo are fairly justified in denying the vast majority of “innovations and tech” that people prescribe. Just remember, it all adds up. All too often, modifications actually decrease the effectiveness of the basic shell of vial affinity.

Affinity is at a disadvantage in terms of how it can evolve. The deck structure is extremely rigid, and, unfortunately, that prevents affinity from becoming much better than what we already have. Throwing Phyrexian Dreadnought and Stifles, Fling, etc. into this deck does not make it better than what it once was, and admittedly, that is difficult for many to see. Innovations will be small for this deck. It is a deck to fine tune, not revolutionize.

As some will not fully recognize there are diminishing returns and limits to substitutions in this deck, I will clarify a fairly universal principle for those individuals who wish to innovate and evolve affinity: There is a difference between a deck that can win a game and an optimal deck. Most every build posted can win a game or two, but some builds will win more than others. Optimal builds will have the best chance of winning (not just ’some chance’). Winning some is not the same as winning the most possible, but many fail to see this fact. This makes it difficult for many people to see why their tech is suboptimal or flat out sucks. They still win games in spite of their tech, not in virtue of their tech.

Assuming that affinity is built and played correctly, this once dominating force is really hindered by only two things in Legacy: 1.) Combo, and 2.) Amazing hate available. Each of these contributes to affinity becoming strictly a metagame deck. A metagame deck is one that can never be tier 1, but given the right metagame is very viable.

Affinity does suffer from the classic aggro problem of not being able to disrupt or race Combo effectively enough. Affinity does not defeat well-played and well-built combo decks in Legacy. You can run CoTV, FoW, SoR, and Therapy, and you’ll still get owned by a competent combo player. Watering your deck’s strategy down puts you turns and turns behind on the board (on average), while your disruption simply delays the inevitable. Even if affinity can curb the losses in the combo department, it will usually require major sacrifices against other archetypes, negating the reason to play affinity at all. In environments flourishing with combo, you probably shouldn’t be playing this deck.

The other reason why Affinity could never be Tier 1 in Legacy is due to the amount of hate available — affinity simply can’t live through it. For example, Energy Flux, Shattering Spree, and Pernicious Deeds are just a few exceptionally deadly tools against Affinity. Combined with several other cards, sideboards prepared for affinity would impose insurmountable barriers.

Affinity, at best, is a metagame deck. You choose to play the deck because you know your opponents are not packing enough hate and that they can’t outrace you with combo. However, with that said, if the metagame does not anticipate the deck (and it currently doesn’t in many areas), it can be a very powerful ‘rogue’ deck. Affinity is a deck that is underestimated by many, and in part, this is why the metagame would allow for affinity to be a viable competitor. Affinity can play like a tier 1 deck, it simply can’t afford to play in a metagame that anticipates it.

As a metagame deck, affinity can be tailored somewhat. For example, in many cases Atog is brokenly good, and in other matchups it can be terrible. This goes for a few cards. Keeping in mind that the deck should be slightly tailored (even if it can never be revolutionized), here is the basic vial affinity shell:

Basic Vial Affinity Shell

24 Creatures
4x Disciple of the Vault
4x Arcbound Worker
4x Arcbound Ravager
4x Frogmite
4x Myr Enforcer
4x Ornithopter

18 Spells
4x Aether Vial
4x Thoughtcast
4x Cranial Plating
3x Shrapnel Blast
3x Chromatic Star

18 Land
4x Seat of the Synod
4x Vault of Whispers
4x Great Furnace
3x Blinkmoth Nexus
3x Glimmervoid

In a vacuum, you’d want to start with the above shell. Darksteel Citadel and Atog are also very viable components of a basic shell, but their inclusion may require more justification. Again, given a specific metagame, adjustments should be made. Cards outside the card pool I’ve mentioned have yet to be properly justified.

The basic gameplan is to drop your hand in 3 turns, laying down the beats. Use your non-creature spells wisely to force a dominant position. Usually the game is won by an unblocked creature with either modular’ed counters on it or cranial plating, the use of the Disciple/Ravager combo, and often Shrapnel to seal the deal.

Card explanations from the Basic Shell:

Disciple of the Vault—I still can’t believe this card costs 1cc. 1 for 1/1 is fair. His ability is brokenly good. His obvious synergy with Arcbound Ravager (and Shrapnel) can turn his 1 mana cost into massive amounts of damage. I am not surprised to see his 1 mana cost turn into my opponent’s 10 life loss. This card is excellent in multiples.

Opponents often forget about disciple both in the deck/hand and in play. This gives you an excellent information advantage that will often surprise the opponent as they didn’t properly anticipate the effects of Disciple. Generally, it is best to hold back on playing Disciple until mid to late game if possible. While he is a lackluster 1st turn play, his late game vial-into-play can flat out win games on the stack. Top-decking this card can turn losing-board positions into winning ones.

Additionally, mass board sweepers can become deadly with disciple on the board, and it often forces control players into pin-point removal before they can sweep the board.

Arcbound Worker—A truly underestimated card. This is a high synergy card. He enables combos, enables affinity, and greatly assists ravager-based board positions. His power level is much closer to Aether vial (the other amazing 1cc) in this deck than most would think.

At 1 for 1/1 on the table he is fair. But, his artifactness and modularity allow him to do some extraordinary things for his cheap casting cost, making this card much better than 1 for 1/1. The death of Arcbound worker is not the death of 1/1 on the table (as long as you control another artifact creature). Not only can you get disciple triggers, but the modular ability allows your 1 mana spent to continue being damage on the board. To assume his removal or sacrifice is to assume that you spent 1 mana for 2 consecutive 1/1’s with multiple synergies in between.

For example, it is common for him to be sacrificed, and for the saccer to gain the advantage of the +1/+1 counter (Ravager) or 5 damage (Shrapnel), while the Worker’s modular can enhance another creature.

Arcbound is definitely a combat tricks creature with excellent synergy.

Arcbound Ravager—A card I feel has been overhyped at the perceptual expense of the other components of affinity (don’t get me wrong, I know this card inside and out, and I love it). Ravager is good, in part, because of the rest of the deck. With that said, this card more than pulls his own weight; he is arguably the core of the deck (although, the artifact lands would be a runner-up). He is much like Psychatog, only he is an artifact-board-based tog. He converts permanents into resources that are transferable (often unblocked) damage while abusing Disciple of the vault. Ravager channels your board position into damage based tempo. Assuming you don’t need your permanents after you’ve won, ravager make the most of your board by efficiently sacrificing into stronger board positions than any normal deck has the right to boast. The card should have cost 4-5 mana for what it does.

The stack tricks with this card can be as basic as sacking to live through a bolt, to sacking out for disciple triggers and putting modular on an unblocked creature, or even much more complex tricks on the stack. He gives the deck versatility. Ravager allows you to overcome a great deal of control elements in the game, negating the effectiveness of removal and blocking, while simultaneously creating a huge threat on the board. I would compare this card to Morphling (a card which I know well in MUC) in terms of its utility and power-levels.

Frogmite—Bread’n’Butter. You never play this for 4. Usually he drops for free, but once in a while you’ll pay the 1 or 2 to put him into play. 0-2 payed cost for a 2/2 Artifact creature with a very high actual CC is excellent (CC-based removal have difficulty with him). Frogmite is to your 2nd turn as what Arcbound Worker is to your 1st turn. This is a solid play, and it is part of bricks and mortar that binds this deck together in synergy.

Myr Enforcer—He is a fattie in Legacy and an aggro-control slayer. He is a clock, and he becomes castable generally on 3rd turn. He is a threat that the opponent cannot ignore. Myr Enforcer is to the 3rd turn as what Frogmite is to the 2nd turn. Enforcer comes into play earlier than a 4/4 creature should, and this is exactly the sort of tempo advantage that an aggro deck seeks.

I am amazed at the number of people that opt not to run him. He is an awesome drop 3rd turn or 10th turn, and multiples are certainly a good thing. When you find yourself in board positions that do not seek to sac out to ravager, Enforcer is the largest and often most relevant creature on the board. Enforcer can be seen as a stabilizing aggro card in this deck, allowing affinity to reach critical mass.

Enforcer does require a high artifact count in play, but this doesn’t make him not worth running. Just look at the efficiency of this card:

7 artifacts- 0cc for 4/4 artifact creature
6 artifacts- 1cc for 4/4 artifact creature
5 artifacts- 2cc for 4/4 artifact creature
4 artifacts- 3cc for 4/4 artifact creature
3 artifacts- unplayable.

At any point you would cast this card, he is mana-efficient. A turn 2, 3, or 4 enforcer will often win games. Think of Enforcer as being similar to Arrogant Wurm in UG madness, only better.

Ornithopter—Sometimes an underestimated card. 0/2 for free not only gives you early game artifact-factor, but it gives you something even more important: evasion. Ornithopter is damage over the top, and affinity desperately needs good ways to maximally abuse modular and cranial plating. This creature will win you countless games that non-evasion non-artifact creatures could not.

Aether Vial—Probably one of the strongest 1cc cards in all of Legacy, and affinity can abuse this card better than most. I’d call this the best 1st turn play in affinity. Paradise mantle is a joke compared to this card. Aether vial is a true tempo card (as demonstrated in several decks), it offers:

Uncounterable creatures
Mana Color Smoothing (no black/red mana available? Vial doesn’t care)
Mana Acceleration (each use beyond the first is all gravy)
Playing Creatures as instants (most importantly Disciple/Ravager tricks)
It is an artifact…and a first turn play at that.
Remains relevant from start to finish.

Thoughtcast—Card advantage, straight up 2 for 1, usually for 1 mana. This is 2/3’s of an Ancestral recall at sorcery speed. It remains in the top 3 card drawers in Legacy (at its affinity-based cost) as it doubles the efficiency of the 1 mana for 1 card draw ratio. While this isn’t a cantrip, primarily because it is played after turn 1 (usually around turn 3), it is extremely undercosted card advantage. Several people do not advocate the card, and I cannot stress enough: learn to trust your card advantage. Too many people don’t see the relevance of drawing in affinity.

It is easy to see where you don’t like Thoughtcast. The color and affinity factor are definitely constraints on its playability. And, you may even say, why waste the slot when I would rather have a threat in my hand than a thoughtcast? The difference is that Thoughtcast allows you to run only the most relevant threats, increasing your average card relevance like a cantrip, while also giving you a much stronger mid-late game because of card advantage. It is both card quality and card advantage. Thoughtcast is very similar to Ringleader in Goblins.

Card advantage is not mere card advantage in affinity either. Card advantage in affinity often translates into immediate tempo advantage as well. While other decks might be tapping out or expending very important resources to even draw cards, affinity can pay one mana, and in most cases will still have resources left to play what it drew. For example, drawing an enforcer and a land off a thoughtcast and playing them that turn has immediate effects. Most other decks will not experience tempo advantage in the same turn that they gained true card advantage. Affinity gets the best of both worlds with Thoughtcast.

This card is so powerful that it alone makes blue the most relevant color to have on the table in affinity (although black comes in a close second). If I drop a first turn land (assuming I might lose it), and if I have a choice, it will never be a blue producer. Resolving thoughtcast is that important.

Cranial Plating—The “other ravager”. While it can be mana intensive, this card wins games. Like the ravager, it turns each artifact on the table into 1 damage. Unlike the ravager, you don’t have to lose your permanents to reap the benefits. This card is so central to the aggro theme that it is an auto-4-of.

Cranial plays a similar role to Atog in that the equipped creature is a definite threat, one that often functions as a bluff-card or forces your opponent into less preferred positions. You will often equip your weakest creature (Arcbound Worker/Ornithotper), forcing your opponent to pin-point control the least of your creatures, while other cards like Frogmite and Enforcer swing through. And, like Atog, a single connect from an equipped creature might be the end of your opponent.

Additionally, cranial can play as a defensive card, making your blocker of choice lethal. This is a versatile card.

The instant equip is often overlooked by an opponent. It can switch to unblocked creatures before damage is on the stack, and that gives you an upperhand. Double black can be difficult to come by, however, Chromatic Star and Glimmervoid greatly aid you in reaching this color requirement.

Shrapnel Blast—Good affinity players know that this is not card disadvantage in a relevant sense. It is mana-efficient, niche-filling, and extremely aggressive. Generally, this card is used as a late-game finisher, but it performs finely as removal (taking out damn near anything).

To understand this card better, let us look at the mana and efficiency:

1R + Permanent= 5 damage

You spend two cards to get that effect. That is equivalent to something like adding these two together:

Lightning Bolt for 3 (R + Card cost of Shrapnel itself)
1 + Permanent for 2

Lightning Bolt is already good. But let us evaluate the last factor.

1 + Permanent for 2 could be compared to Shock. You spend 1 card and 1 mana and you get 2 damage. The difference is that this is colorless mana (and that is very relevant to a deck that can barely manage double color). Otherwise, it would look like RR for Shrapnel. A colorless shock is already very good. But, I think this card is even better.

When you use shrapnel you will generally choose the least relevant artifact on the board. How much is that artifact worth to you? That 5th land might be a dead card to you, right? That creature that is taking lethal damage on the stack might be irrelevant to you, right? The 3rd Aether vial could be useless. When you choose to sacrifice irrelevant cards, you are technically not even spending a full card. Or, the better way to phrase it would be: shrapnel’s colorless cost effect increases the relevance of the least useful artifact you control to become as good as a colorless shock. This is very, very good. It increases your overall deck’s average card relevance.

Beyond the general increase to card relevance and super mana efficiency, Shrapnel is to be seen as a true finishing card. 5 damage on the stack is 1/4th of an opponent’s starting life total. This card forces through lethal damage. Often, sandbagging a Shrapnel blast or two can be very powerful. An opponent will often underestimate the value of the cards in your hands, and will misplay without realizing you hold a lethal set of damage in hand.

Chromatic Star—1cc artifact factor with mana smoothing and triggered card draw (definitely an upgrade to sphere, except against leyline) is excellent. The ability to use it as artifact-factor and sac it later without activating for draw makes it a 1 colorless for 1 card (which is excellent). Add in the ability to smooth the mana curve, and you have a very powerful artifact. It can do some tricks, including announce thoughtcast->sac for blue, and even blind digging for the spell you need. Like thoughtcast, this is a relatively efficient card drawer that fills in the niches. Glimmervoids and Chromatic Stars are aiming to do the same thing in the end (although, they have different secondary characteristics), and star is a solid choice. In affinity decks with lower colored spell counts, this is a stronger card than glimmervoid, and the opposite for affinity decks with higher colored spell counts (12+).

This card shines against things like Blood moon and LD. I also love having another 1cc artifact to play first turn. But, do not be deceived: this card is not another land. It functions as a resource transforming device and artifact factor exclusively. Running 16 lands and 4 stars is suboptimal. Affinity decks should be running both Star and Glimmervoid.

Land– The landbase is often misunderstood. The artifact lands in particular are fundamental to the deck’s construction. You can run no less than 12 artifact-type lands (preferably 15-16 including man-lands).

What is an artifact land to Affinity?

-1CC of up to 12 cards or a -0.2 shift in the average CC of the deck (this is tempo)
+1/+1 Counter
1-4 Disciple Triggers
1-4 +1/+0 Cranial Plating
A very strong late-game target for the additional cost of Shrapnel blast.

People who play affinity with the mindset of running the fewest possible lands with the most spells possible are missing the point. The artifact lands might be subtle, but they are extremely powerful in this deck. So, while you can certainly win games with only 1 or 2 land in play, you will often fail to recognize what those 1-2 lands really did for you during the game. The best part about land in this deck is that land is never a dead draw. Land can always be put to use beyond mana production. This means that affinity, just in virtue of its land, has a higher average card relevance than would be initially expected. Don’t be afraid to run 19-20 lands in this deck.

Seat of the Synod, Vault of Whispers, Great Furnace—These are the holy trinity of affinity. They make the deck work. Darksteel Citadel and activated-artifact lands (Blinkmoth Nexus) are also useful in this calculation, but only the trinity is a guaranteed in every affinity deck.

Blinkmoth Nexus—An underused card. I can’t see an affinity deck playing less than 2 of these. Like ornithopter, nexus offers us important evasion. The activated abilities offer several combat tricks as well. It is important to note that Nexus is actually fairly difficult to remove, can keep counters on it even after losing its manhood end step, and was free to play (costs only a land drop). Additionally, nexus can be activated to increase artifact-factor.

Glimmervoid—Like the nexus, an underused card in affinity. Affinity, problematically, can be color-starved. While Aether Vial curbs the mana color inconsistencies to some degree, affinity is still reliant upon other chromatic mana producers.

You don’t want to be sitting on Disciple, Atog, Shrapnel, Thoughtcast, and instant equip Cranials because you don’t have the color available. In fact, without a proper mana-base to produce the rainbow, you actually decrease average card relevance in this deck. It is absolutely essential that affinity has the ability to use every single component of its hand as soon as possible.

The arguments against Glimmervoid would be that it has a condition to keep in play, it isn’t an artifact, and wasteland eats it. However, even with these negatives, the need to smooth your mana color curve is so great that Glimmervoid is still a worthy pick.

Glimmervoid smoothes your mana color curve very effectively and it can be used several times (unlike Chromatic Star). 1/5th of your deck is going to be colored spells, and you can’t count on having a Chromatic Star everytime you need one, but you can almost always guarantee that you’ll have an artifact in play. Additionally, it costs almost nothing to put Glimmervoid into play, unlike the star, and that means you can be using that mana to cast game winning spells. This is a minimum 2 in affinity, and 3 if you run something like Naturalize in the side.

The other staples:

These remain somewhat interchangeable with other components of the basic shell.

Darksteel Citadel—Depending on the metagame, this can be a solid choice. In a vacuum, this card is subpar. It would definitely be quite possible to see 3 of these in affinity given the right metagame.

Atog—The other, other ravager. +2/+2 per artifact makes him the fastest clock available, but at a huge risk. Often times, this card is a bluff card. People are forced to block him, while your other creatures do the business. Atog becomes better and better against decks with less and less creature removal. Because of the ability to use instant removal in response to pumping, the more removal in the game, the weaker this cards becomes. It is a severe let-down to sac out 3rd or 4th turn for a lethal atog, only to eat a bounce or StP before damage goes on the stack. You need to be very careful how you use this card, and you should be careful in what metagame you run him. If you don’t mainboard him, he is definitely a strong sideboard choice. 3 is the max in this deck.

Other Card Considerations:

Fling vs. Shrapnel—Fling is an interesting card. While shrapnel blast converts your least relevant artifact on the board to deal 5 damage, Fling has the problem often doing the opposite, and usually sacrifices one of your more relevant artifacts on the board. Fling can function like ravager/disciple at the end of the game, acting as another disciple. In so many cases, Fling is forcing you to lose your aggro-advantage on the board, and is thus strictly a finishing card. Shrapnel is much more versatile.

In my experience, flingm like Berserk, has been a win-more card rather than a card that will win you games you normally wouldn’t win. Usually, when I am in positions in which I have flingable creatures, where fling is going to be much larger than shrapnel as well, I’m already winning, and I would possibly be put in a losing position to even use the card. Shrapnel can be used in much different situations and its costs are much, much lower.

This is a fun card, but it is very suboptimal.

Dark Confidant—definitely a favorite of mine, but not in affinity. The card may be overhyped to some extent, not because it isn’t amazing, but more because it requires the right deck to work. Building a deck that abuses this card correctly is difficult. Dark confidant is really not a win-now type card, it does best in a deck that can abuse a one-sided howling mine. Affinity, which is a win-now deck (aggro-combo), is not a deck that should be running Bob. Affinity does not want the game to last long enough to make a real use of this card. Confidant, in my mind, has competed with 3 different slots in this deck: Myr Enforcer, Thoughtcast, and the possible Atog.

Beyond the lifeloss from a technically high CC curve, the fundament problem with Dark Confidant is a.) he is subject to removal and b.) he takes up the fundamental turn 2 (2 mana) slot. Affinity wants to be dropping its major aggro pieces turns 1, 2, and 3, not confidant. Confidants not kept in check can certainly give affinity a better late game, however, removal is a major aspect of the metagame, and affinity could have been using that mana to have just won now instead of later.

As much as I value card advantage, confidant is a liability and usually a loss in tempo for all too often minimal card advantage. Confidant’s advantage requires 2 turns. It will be, bare minimum, turn 4 before you netted card advantage. Compare this to Thoughtcast which can play for 1 mana on turn 3 (possible turn 2). Thoughtcast refills your hand when you need to refill and keep steamrolling (as you’ll have 1 more mana to work with, which is a major concern in the first 4 turns).

Myr Enforcer is a pure aggro card that comes down nearly the same turn confidant does on average (considering the color cost). 2/3-4/4 PT difference (depending on whether confidant can even swing or whether control would knock it out) on the board at any point in the game makes enforcer a stronger choice. Again, this is an aggro deck that should be forming aggressive board positions. Affinity is an instant gratification deck, and it cannot afford to let the opponent live even a few more turns.

Confidant may also compete with atog for slots. Atog, like enforcer, fills the role of creating an immediate board threat. Deal with it or die. Confidant cannot do this.

Somber/Cloud of Faeires—Non-artifact creatures that cost mana to get into play (even cloud requires it, so you can’t always just drop it off a thoughtcast). Thopter and Nexus are free, and they are artifact. No questions here.

Paradise Mantle—What about this card is aggressive? Oh well, a free artifact is nice. You have limited slots, and Glimmervoid and Star fulfill this role much better.

Umezawa’s Jitte— Affinity has much better things to do with its mana, and the deck should be winning before Jitte becomes relevant enough to matter.

Chrome Mox—Bleh. I love fast mana and free artifacts. You’d initially think this is a shoe in for affinity. Play a few hundred games with and without this card, and you’ll see why affinity shouldn’t run it. The 1st turn tempo gain is not worth the 2nd turn (and beyond) tempo losses incurred by both card disadvantage and poor topdecks. Remember: Card advantage in this deck translates into immediate tempo advantage in most cases. Card disadvantage is essentially tempo disadvantage for this deck, and Chrome mox has a snowball effect in the losses it creates.

Essentially, affinity plays very well with very little mana. I’d argue that it is the least mana intensive deck in the format. It can accept mana losses rivaled only by Goblins. Tempo–using cards in your hand before you intially should be able to use them. If it cost 5 mana to cast something, and you cast it with only 4 land or less (or even no mana used), then you used some form of tempo-enhancement to play that spell—affinity does this sort of thing all the time. Resource trades (CA for Mana) aren’t necessary for affinity to maintain a high tempo. You don’t need tMox or Petal to accelerate your way into massive early threats, the mechanics of the deck allows you to do this already

As for sideboarding, I’m not in a position to say what each persons metagame looks like. Please consider the following:

CotV
Therapy
Engineered Plague
Tormod’s Crypt
Pithing Needle
Winter Orb
Sphere of Resistance
Atog
Mana Leak
Naturalize/Disenchant

Affinity is an odd deck. Half the magic players I know hate the deck (they remember its domination in T2). Why? Not only does it do unfair things (and it still can), but it appears that affinity can win without skill. For those who still believe this, you are correct if you are referring to how good this deck was back when it was T2 Legal. When it was originally created, a newbie or a pro could pick the deck up and destroy half the field with it. Legacy, however, is different.

The deck can be complicated to play, and the correct line of play is not as obvious as it would seem. Affinity is constantly evaluating the board position, its manabase, and card quality like a combo deck. However, instead of doing everything in one turn like many combo decks, affinity is forced to think over several turns. Good players do think several turns ahead, and combo decks, by nature, are constantly thinking: what card do I need to complete the hand to win? Affinity, however, often requires even more thought than that. Due to the decks power and versatility, there is a larger quantity of hand and board positions to be evaluated as it works over several turns. Affinity has to consider less redundant hands and board positions more often than most other decks I’ve seen in Legacy, and it is here that the pro is separated from the less experienced. When you run into new situations, being able to calculate what is best (rather than working from wrote memory) is invaluable, and affinity will often require such experience and skill. So, while you can definitely win with affinity without a great deal of skill, there are many, many circumstances in which a good deal of skill and experience is required to calculate the correct line of play. For affinity to be competitive in Legacy, it does need to be piloted a fairly skilled player.

Overall, a skilled player can feel comfortable playing this deck against any deck in the format with the exception of combo. In what is largely a creature based format, affinity is explosive, powerful, and yet versatile enough to have a way to win if you can find it.
I haven’t written anything of consequence in a while. I decided I’d make myself useful and write an update. Let’s see…/activate stream of cons…Oh wait, err../activate poorly organized non-transition-based chaotic writing created by the postmoderns…GO! Zerg! Go!

The pregnancy is a bit rougher this time. k0sh3k has been sick 24/7, but (luckily) she has not thrown-up too much. Everyone says that this is a sign/omen that we are having a boy. I don’t know. I do know that k0sh3k’s migraines have subsided for now, and this is an answer to prayer (perhaps indirectly–again, I don’t know). Additional ailments include (watch my SP?) varicose veins, a hyperextended knee (or feeling thereof), a larger set of pains due to her ligaments stretching more rapidly, spotting, heightened sensitivity (and she is even more ticklish), soreness (weight translated from one spot to another on her body, makes the back carry weight differently), lowered bladder and stomach volume (eat/go more often).

As a sidenote, the heightened sensitivity seems like something that is a human adaptation, giving mothers more information to help keep them out of danger. But, it can be overwhelming for her.

Of course, many of these are to be expected. Some of them are exhibited more intensely during this pregnancy than the last. The doctors will always say “every pregnancy is different”. And, I certainly want to be reasonable and stay away from superstition. But, I must admit, this pregnancy has been much harder on k0sh3k. I do my best to help make sure she is comfortable.

We know it will be worth it.

Additionally, we find out the gender in a few weeks (another Ultrasound, woot!). If it is a boy, then we will name him 1uxb0x M. If it is a girl, then we will name her either a.) Elia Mariah-Abigail (perhaps not hyphenated), or b.) Mariah Elia-Abigail (ditto). 1uxb0x was easy to choose (we chose it a long time ago), but the girl’s name has been a struggle. I’ll admit it is very difficult to match the oomph and dignity of j3d1h S. In any case, if it is a daughter, her name will mean: My father rejoices in a sea of bitterness because my God is Yahweh. That name owns. It reminds me that my children don’t belong to me–and that sucks. How could I possibly want my kids to live in the agony of being a true Chosen Christian? Argghh. I mean, we know we should raise them to sacrifice themselves–but why should I sacrifice my children. Blast you Abraham!@!! This is your fault. I officially am (Infinite-Splitatives ftw) angry at that man (even if *is* awesome).

Which reminds me, why do people always go for Moses and David in the OT? Abraham and Elijah were the bomb. David and St. Peter are similar characters. They are retarded, but God loves them anyway (something we all aspire to achieve). There is a natural literary Charisma in which those characters pop off the page, and people want to be them. Moses and David screwed up too much to be admired. We recognize we are closer in character to Moses and David, but we wish we were closer in character to Eli and Abram. Yeah, Hardcore–like JB (John “teh” Baptist). In the end, Eli and Abram are better and even cooler Biblical character.

Speaking of temperature, it is breaking 100 degrees out here. I’m frying. I’m not going to like that aspect of Thailand. The heat was good in a suit…for my (drum roll please) interview. It was a 2-hour interview for the position of “Strategic Communication Quality Analyst”. I doubt I got the job, but it would be awesome if I did.

We’ve been applying for jobs like crazy. I want out of this one. We need enough money to actually get to Thailand (the logistics of this sort of thing are fairly complex and expensive). For now, to use my dad’s phrase, we are “spinning our wheels” and getting nowhere. It is unfortunate that we are forced into a position in which k0sh3k will have to get a job and j3d1h will goto daycare in order for us to get to Thailand. But, we believe that it will be worth it in the end. It isn’t like we have it bad at all. My parents have given so generous to us that it has afforded us the ability to raise our child in a better fashion than others. I kinda envy my kids (only kinda–I know better than that…who would want ME to be their dad?)…going off to a foreign land, having the best education possible (homeschooling), doing stuff that people only dream of doing, and hell…doing what The Master (henceforth, I will [attempt to] refrain from using the archaic and misunderstood term: “Lord” and just call it what it is: Absolute Master) requires.

This reminds me (/rant on)…our church is insane. How do we get away with not looking at God as Master? These people want (oh. my. gosh. …it is so true) Dogma’s Buddy Jesus. This kind, nice…egalitarian guy who will allow us to justify our actions in a sea of relativism. Yes–we call this Blasphemy. Blatant Blasphemy! Here, let me break God down for you:

1.) Master of the Universe (of all Existence)
2.) ….Did you read 1.)????? What other adjectives and titles do you need to put the proper amount of fear in your mind?

Good grief.

Teacher:Student::Master:???? Take a guess what else exists if a master exists?

Slaves

Isn’t obvious that we are called to be slaves? How do we not get this? Oh, I know…slave sounds too…overpowering and overwhelming. It would be like we don’t have a right to choose our own destiny. There is no gray area. There is no middle ground. You can’t be free and be a slave at the same time. You are all in or all out. Don’t let the relativists fool you. To be a Christian is to be a slave.

We are slaves to the pursuit of that which is most valuable–We are slaves to God. Accept it. The moment you ask for your freedom back is the moment you have overstepped the bounds, you have sinned against God. You are only temporarily given the right to yourself…only so that you can give it back. The only thing I want to hear out of our mouths is: “Here I am, Master”.

(How ironic that “I am” would be used. “Here” makes us small though. Fair enough.)

But, no–Half-breed Christians have chosen to hide the truth. They blaspheme and corrupt. They teach that there is a gray area. They teach that you should pursue happiness and comfort. They teach equality and “human rights”. They teach meaningless secularized ideas that have twisted the remnants of forgotten commandments and fundamental principles of Slavery to God. Self-ownership and free will are illusions to the virtuous Christian. Yes, we have it as a gift and a miracle. But, these are mercy gifts–UNDUE gifts. The recognition of the gift requires that we give such a thing back to God. We are borrowers, caretakers, and stewards of such a gift–but we are not heirs and rightful owners. Half-breeds Christians cannot accept this fact. Their twisted theology is arrogant, self-seeking, and the end to the only correct belief-system which once existed. We are given the gift of Freedom and self-ownership only so that we may recognize that it is undue and USE this gift to give it back to God as a sacrifice. The Imago Dei is the greatest of the spiritual gifts and the second greatest is the forgiveness for our misuse of the former.

God has given us the Image, an undue gift. The gift is extraordinary. It is that which separates us from all other things in the universe. The gift obviously includes the ability to recognize it and the ability to give it back. That is our duty, and it is the greatest thing we can do. As God is the highest pursuit, as the Master TRULY is the most valuable thing to pursue, we receive the duty to volunteer ourselves back into slavery.

I think it is funny that we have been conditioned to use mild, inoffensive, and minimalist language in regards to something that is SO important. Service/Servant. Ha. Slaves and Slavery are the only mindset. All others are false. These people will die as blasphemers.

I amazed by the people who are blind to the true struggle. How could they miss this? If you don’t have something slave-worthy and death-worthy to pursue, then why do you even have a life at all?

The virtuous person will not live a fun or pleasant life. Fun and pleasure are not ‘the good’. While the virtuous person will live ‘the good life’, we must redefine our thoughts as to what ‘the good life’ means.

I tell you what, do an exercise for me. I dare you to write down the top 5 most Virtuous people in history. Seriously, Do it. What about these people are virtuous? Now, look at the lives of these people. Were they happy people? Did they live a fun, comfortable life? Here is the kicker: If you really think that these people are virtuous, then you should be leading lives like these people. If you actually lived virtuously, would your life be pleasurable? Would you pursue pleasure, happiness, or comfort? No. Joy is a very misunderstood concept in the post-modern “church”.

It has taken many years to realize it, but I am a prophet. No, not Elijah. Hell, I’m nothing compared to what is in the Bible. But, I am a truthsayer. I have been given the tools to think and the heart to say the truth. I am meant to say what must be said. I originally laughed at the idea. Who am I to know the truth or tell people it? There isn’t a question about it. Look at the tools God has given me. I could have been a prodigy in any subject, but God has led me to a very specific path. Everything has converged upon this (somewhat daunting and unpleasant) truth: I am designed to learn and teach the Will of God. Of course, I would say that EVERYONE is designed to learn and teach the Will of God in virtue of the Imago Dei. But, I mean it in a stronger sense for myself. This is a vocation and purpose to fulfill. Janitors should learn, follow, and teach the Will of God as well…but they are still Janitors.

Everyday and in everything I do, I see God in the shadows, in the systems, and in the numbers. I see where we are going and why. I am supernaturally gifted for a specific purpose. k0sh3k would say this is a messiah complex (although, she doesn’t think I have one…). Perhaps this isn’t far from the truth. Anyone with a specific purpose should act as a messiah in that specific circumstance–after all, it was the Master who sent YOU to do that specific task. No one else should be living your life and fulfilling your purpose but you (here is where I can agree with “individuality”). Essentially, I see what others do not, and I have long had the intuitive premonition that I am destined to try and use reason and minds to prepare people for becoming Slaves to the Master.

Now that I know my role, I must find my audience (1 or more people) and prepare the message. Perhaps I am called to teach a specific Janitor or maybe a group of Janitors? I am not a very good speaker. But, when the time comes, I will speak well. Although, maybe my audience will be resistant to listening or they might not even listen at all–Food for thought. Manipulation. That is the word of the day. It requires more thought. Also, What medium of communication will be used?

Speaking of Slaves, k0sh3k and I stumbled upon a Bible passage (Exo 21) that we’ve recently seen in a very different light. At first glance, if one interprets literally, there isn’t much to see. It is just a basic law for an old economic/social system. However, after researching it further, and in light of the discussion, the passage becomes so much more relevant.

I’ve pretty much already prefaced this with my respect for the term Slave. With the new concept of our purpose of existence as voluntary slavery, we should have a better look into the meaning and use of slavery found in the Bible. “Servant” is misunderstood. The role of the Slave is a calling for us all. This passage has something to say about a spiritual choice, a choice to become slaves. The interesting part of the Exodus 21 passage is that it is a slave who chooses to stay WITH his master as a matter of choice. This is profoundly parallel to the Chosen’s choice.

I am considering getting an Awl myself. Physical manifestations of your faith are both daily reminders and outward expressions of your slavery. These are good things. Nothing beats getting up in the morning to be reminded: “hey, you are a chosen voluntary slave…now get to work!” And, more importantly, revealing your slavery to the community is essential. You lack identity without others acknowledging what you are and what you’ve chosen.
I haven’t written in quite some time. I’ve enjoyed reading what other people have written, and I’ve definitely had lots to say, but I’ve not written anything of consequence for myself. I didn’t feel like writing–I have no idea why.

Updates across the board:

1.) k0sh3k is doing well. She is much, much bigger than she was at this stage in the pregnancy with j3d1h. In fact, so much of this pregnancy has come earlier than the previous that I’m inclined to think that Michael I.M. could be born earlier than the doctors suspect. k0sh3k thinks this could be true. In any case, k0sh3k is handling this pregnancy like a trooper. The acid reflux (which as been absolutely terrible), throwing up, constant nausea, awkward mobility, muscle and back soreness and spasms, and dealing with a 2-year old while running the house…I’m surprised she has such a good attitude. I know I wouldn’t be able to contain my…”joy”…if I were in her shoes. k0sh3k is amazing. Plus, she is so cute when she is pregnant–everything in you just wants to reach out touch that round belly.

2.) j3d1h is growing up fast. Bless her heart, she is just like her daddy. Strong willed, smart in surprising ways (it is fascinating to see how she develops an understanding of the world…like, how does she know that a pitbull is a dog and so is a golden retriever…they look nothing alike), the child keeps us on our toes. Her intelligence is matched only be her will–and both grow daily (I wish I could grow like that). Half of parenthood is simply a battle of wills. I keep reminding myself that good discipline now will pay off in the long run. I want to give her what she wants (it is definitely easier in the moment and more enjoyable for me), but that wouldn’t be wise. I think we’ve been good about it though. So, if she throws a fit, then she gets one of 3 reactions (in order): verbal warning, time-out in her room (she hates it), a smack on the leg and then time-out. She is never in any real pain, but she is clearly aware of our disapproval (and that hurts her feelings…as it should). The weird part is that in public, that kid is an angel. Seriously, I have no idea–I always considered a store or public place to be a tempting place to act up. Not for her though…her disobedience is only found at home.

One of our current issues is eating what we give her. She wants crackers, or something sweet…or even the food on our plate. She needs to eat her food, and so we train her to do it. If she doesn’t eat her food for lunch, she gets it for dinner, and so on and so forth, until she eats her food-there are no snacks or exceptions. But, believe me…I want to give the kid some ice cream…kids deserve stuff like that. Desert and Dessert, these children are just plain better than we are…scale what they’ve been given with what they accomplish, and in fairness, they are proportionately better people than adults. I don’t mean that we should spoil children…what I mean is: how could I possibly be the steward and model for someone that is doing better than I am? I am completely out of my league.

She isn’t an angel though. She has free will and she does wrong. She does wrong boldly. I admit, it is difficult to discipline a child when you admire some of the qualities that lead to their disobedience. Disciplining a child means dealing with the qualities that lead to that disobedience, and I rather like some of her…pizzazz. Of course, there is a difference between respectfully disagreeing and flat out disobeying. I want my child to obey, but I definitely want her to have the mind to disagree when appropriate (because, face it, I’m going to be wrong once in a while). This is a fine line to walk. In a world that is increasingly individualistic, I must create a child that knows her identity before she gets into the world. She must be independant of the world enough to condemn it and not be swallowed into secularity, but conditioned and restrained enough to know she is a sinner and a peon before God. Now, more than ever, is the time for us to stabilize our identity. She must be chained to her rationality and faith so that she can independantly influence the world to pursue God’s Will.

Going to Thailand is a good step towards helping my children to know they are different and to accept their independance from the world. There, I assume, they will be faced daily with the fact they are called to live beyond survivalism and pleasure-seeking. If we are extreme believers, then we better act like it.

All too often, I feel like the blind leading the blind.

3.) 1uxb0x is kicking. He can hear and tell the difference between light and dark. He might even have an IQ at this point. I don’t know what he looks like, but I’m sure he looks like a purple alien. Go alien, go! I am happy that he kicks.

4.) Church sucks. Seriously. We do Sunday school, volunteer work, tithe, but…skip as much Sunday morning service as possible. I can’t stand any church I walk into–they aren’t churches! The services are an even uglier reminder of it…I miss good services–alot. In fact, I miss the feeling that there were good churches where I live. Cynicism has opened my eyes to truth. It isn’t that “we all have problems”…the so called ‘churches’ aren’t even real Churches. They are half-breeds. I’ve said this for a while, I’ve considered for a long time, and I still have a hard time swallowing it. I know they are useless to God. As a PK (who is exceptionally cynical), my rule of thumb is about 1 in 100 people IN the pews are actually chosen. The rest are garbage. I feel like I’m becoming garbage just from being around them.

I don’t know how I could do this without k0sh3k. She is my spiritual partner and my accountabilibuddy. She is my best friend and she challenges me. It is such a blessing to live with another true Christian. I feel like our family is a lone-island of Chosenness in a sea of lukewarm. I’m seriously considering just holding our own services.

Finding other true believers is harder than you think. Thailand is more likely to have true believers per “Christian capita”, even though they are few and new. I am glad we are coming to convert, cultivate, and serve.

5.) Me. I’m doing good. I’m playing WoW. I’m enjoying my job. I like the flexibility and the brain-power I use. My life is never boring.

6.) Stephen Colbert is running for President in South Carolina (his homestate) as “favorite son”. I’d vote for him.
k0sh3k came and woke me up at about 5 A.M. this Monday and said that she needed help because she was passing out. This, of course, got my attention. I helped k0sh3k to the couch as she explained the problem. k0sh3k had been throwing up all night and was very dehydrated. When I saw her in the light I could see that she was struggling to stay conscious (she was going in and out), and it was then that I became fairly terrified. I’m surprised she even had the energy to come and get me in the first place. k0sh3k couldn’t see or talk straight, and so I tried feeding her a banana popsicle (she can usually keep those down) as I called her OBGYN to see if there was any immediate thing I needed to do before we went to the hospital. The OB told me to stop what I was doing and take her straight to the ER. I packed k0sh3k and j3d1h in the car as I called Flint and Kathy because I didn’t know what we’d be up against. Seeing your pregnant wife’s eye’s roll back into her head (and not just a normal roll because I’ve said something stupid) is a very scary sight.

We got k0sh3k to the hospital and in the ER in record time. It was difficult to juggle a sleepy j3d1h while walking k0sh3k inside the hospital. I went into the entrance and ask for help. k0sh3k was plopped into a wheelchair and taken straight to the ER as I explain she had been throwing up and was dehyrated to the point of a.) losing her vision, b.) confusion and babbling, and c.) going in and out of consciousness. Because she is 7 months pregnant and there weren’t too many people in the ER, they took her straight back without triage. At this point, I was asked to move my car out of the no-car/parking zone. I restrapped j3d1h back in the car, parked it, pulled her out, and ran back to see what they’ve done for my wife. Not so fast, I have to get the paper work done *sigh. I do the paperwork and Kathy arrives. We find my wife being pumped with fluids, having blood drawn, and being asked questions. I become relaxed though as I see she is fully conscious and has her vision back. We were out of the danger zone– I <3 Saline Solution.

Kathy stayed as until we felt k0sh3k had stabilized enough. Throwing up “red” bile did concern me, but other than that, k0sh3k seemed to be recovering very well. They did an EKG and hooked her up to a bunch of machines and she turned out all right. The baby was fine…still kicking too. We thanked Kathy for coming and said we didn’t need her to take j3d1h or anything else. I feel bad for calling them when everything went so well at the hospital, but I couldn’t have known how things would go.

I made the round of calls on the cell phones. A few hours later Grandma and grandpa M came, but they weren’t allowed back to see k0sh3k (according to the nurse). They took j3d1h, and I’m glad they did because I wasn’t expecting to stay in the ER for as long as we did. Generally, we are only in the actual ER for only two or so hours, but this had already been 4 hours, and we clearly had a long day ahead of us.

At about 2 P.M. I felt my exhaustion. I had been very sick all weekend too and I was just recovering. I was tired and hungry. Since k0sh3k was fine (just being pumped with fluids and monitored), I felt it was okay to get something to eat. I had brought both cells, so I gave k0sh3k her phone (so she could call me if she needed) and got a Pizza from across the street. This is usually a weird thing to do when you wife is still in the ER, but I had only eaten one meal since Friday and I needed some energy. Cell phones are great.

k0sh3k layed in nausea on that hard bed for 12 hours as the machine pumped fluid into her. Eventually, they found the right anti-nausea medicine that would actually work and k0sh3k was able to hold down a few ounces of Sprite. This was the ‘good sign’. k0sh3k and I were happy to go home.

It has been tons of Gatorade (the blue ice stuff is pretty good), prescription anti-nausea medication, and baby-steps of food for k0sh3k. I think she even had oatmeal this morning.
One of the most elusive words today is the concept of relevance. What is relevance?

A dictionary says: the relation of something to the matter at hand.

This is fairly broad, fairly odd, but you can see that the dictionary’s definition is at least getting where we want to be going. However, the existence of a relationship between two things is not enough. Relevance is not just any old relationship, relevance must be more. It must be a specific measurement or degree of a specific relation.

As usual, I like to look at the synonyms of words to get a better feeling for what it is and is not. Context becomes fairly important. And, it could be the case that synonyms shows paths of relevance of a word. (Yes, the word “relevance” gets me giddy).

Synonyms include: applicability, cogency, connectedness, connection, connexion, materiality, pertinence, pertinency, point, reference to, regard to, relation to, respect to.

Further inquiries into these synonyms results in circular definitions all pointing towards relevance and relation (whether concerned with ‘practical’ application or semantical connection). We’ll just say that the world in general “thinks” they know what is meant by relevance, even if they can’t define it.

Don’t worry, even the elite are confused.

For example, many philosophers and word scientists have suggested that it is a relation such as: q is relevant to p if q is implied by p. Logical implication still may not draw out the *ahem* relevant characteristic of relevance. There are problems with such a theory. For example, while [”Circles are round”] may be eventually logically implied by [”Cats are mammals”] in the long chain of deductions that we call the “conjunction of truths”, the logical implication, however “close” the relation, simply does not seem actually relevant. Relevance just isn’t captured by logical implication, it misses the point. The philosophers, who turn to man-made language, predicate logic, etc, to solve their problem, will not find solace in such a definition.

It was a nice try, but like the dictionary’s argument, it does not reveal the form of relevance. Perhaps, *cough, their definitions are not as relevant to the discussion of the meaning of “relevance” as these sources would hope. The missing piece to the logic puzzle is simple and elegant–maybe even too obvious.

Relevance is about importance–relevance is about value. Relevance is a value calculation. Let us see why.

First, I commend the sources of truthiness for pointing out a very relevant characteristic of relevance. The most concrete thing we can understand about relevance is that–

Relevance calculate a relations of two variables:

1.) The matter/object at hand (often misidentified and more complex that initially conceived).
2.) The relevant object (”").

There is only one specific type of relation (of the many that can exist between two objects) that we can call relevance. It is a value-linking relation, one of value-contributor and value-receiver or sum, that enables “relevance” to have any meaning at all. Relevance is a scaling term. Some things are more relevant than others to a matter/object at hand. To the degree that an object is necessary, fundamental and important to the matter or object at hand is the degree of its relevance. Explicitly:

Relevance is the value of the relevant object as related to the object at hand (not necessarily perceived by, rather actually contributed to ‘the object at hand’)

When I ask, “what is relevant?”, I am actually asking, “What things have value?” Relevance cannot be understood outside a value-system. Relevance is more than a causal relation or logical implication. Relevance is meaningless outside of value. How an object contributes value to another is the calculable relevance of the contributing object to the object at hand. Let us go through a series of relevance questions to better understand it.

What is the relevance of cats to mammals? -> What value does “cats” contribute to “mammals”? Take the sum value of “cats” and that is what it contributes to the value of mammals. Insofar as mammal increases in value because of cats’ value contribution to it, cats are relevant to mammals.

[Value of Cats]+[Value of non-cat Mammals]=[Value of Mammals]

Relevance percentile would look like:

[value of Cats]/[Value of Mammals]=Percentile relevance of Cats to Mammals.

These are basic (very basic) relevance-object and object-at-hand, with an easy to understand relation, and one of the easiest types of questions to understand relevance. The relevance-object and object-at-hand can become as complex and specific as any particular characteristic of anything. It can also be mundane and obvious. Regardless, all of them follow this formula. Relevance questions become slightly more difficult to understand when we ask more universal ones because we have to really accept the notion of universal value to make any sense of it at all (and that isn’t an easy task). Consider the question:

What is relevant about boats?

There is a hidden statement in this question, namely, while we have the relevance-object (boats), we lack an explicit object at hand. The object at hand, in general and in this question, is “the universe” (all existence, this actual world, etc.). The question should actually be read:

What is the relevance of boats to the universe?

The answer, of course, is that boats are only relevant insofar as they contribute to the sum total value of the actual world. We presume that the total value of boats is fairly small, but remember kids: it all adds up. Assuming the hidden variable’s value is the total sum value that could ever be considered, then the answer to [what is relevant about boats?] is the exact same question as [what is the value of boats?].

Notice that defining a hidden variables makes our job easy. Defining variables can become even more complex. We could, for example ask:

What is the relevance of [the value of boats] to [the answer to the question “What is the relevance of boats to the universe?”]?

Obviously, ‘the value of boats’ itself is really the key knowledge. We would say that [the value of boats] has 100% relevance to [the answer to the question “What is the relevance of boats to the universe?”].

No matter how complex or simple the two objects or relations they hold, as long as you define the variables exactly, you can calculate relevance.

Essentially, the solution of any relevance problem requires the prior identification of the relevant elements from which a solution can be constructed. If you don’t perfectly identify your relevance-object and object-at-hand variables, then you can’t even form a true relevance question. Even when we can identify, we must evaluate each variable. Here we run into our lacking capacity to properly evaluate an object and knowing whether or not our perceptions of an object’s value conform to its actual value. That, however, is not the point of this article (even if it is a relevant issue).

[Value of Relevance-Object]/[Value of Object-in-hand]=Relevance

This is the fundamental equation to calculate relevance. Whether you show a relevance-objects value-relation to a particular object-in-hand or even the Universe in general, the equation gives you the mathematical framework to make a meaningful statement about the proportional value contributes of any one thing to another.

How valuable is P to Q? P/Q=the rate of value. Again, two types of relevance questions can be asked. I’ll give an example.

How relevant was [George Washington] to [the American Revolution]?

How relevant was [George Washington] to [the universe]?

Notice how the ratios change. George Washington’s relevance goes from fairly high to fairly low depending upon the amount of value of the object-in-hand. GW might have been 20% of the Am. Rev’s value, and thus he retains 20% relevance to AR. As for the universe, GW might not have much relevance at all. Of course, he probably retains more relevance, proportionately, than some average Joe. Both types of relevance questions have their uses…that is to say, both types of questions remain relevant types of questions among the body of questions that could be asked.
I think the topic of ‘relevance’ is…highly relevant to us because it demonstrates the mathematical strategy model and mental mode from which we can understand and calculate the comparative advantage of one value pursuit over others. It is the basis of our psychological decisions. When we choose one thing instead of another, we are making relevance and value-based calculations. Knowing how we go about making decisions through a clarified definition of relevance gives us an insight into both our responsibility and, more importantly, how we can be more virtuous. We must, therefore, be exceedingly careful in our use of the term “relevant” so as not to misattribute value to objects. Basic distinctions of perceived relevance and actual relevance must be brought to the forefront of dialogue if we wish to bring the former closer to the latter. Our minds are too easily clouded with misinformation and ‘well-intentioned’, relativistic non-sense to waste time with irrelevant definitions and choice-systems of “relevence”.

In the end, it is important that we attempt to answer: “How am I relevant to the universe?”

To answer such a question we must use this definition of relevance. And, we will notice from our relevance calculations that we will also ask: “How relevant SHOULD I be to the universe?” (explicitly: “What is the relevance of [the person I should be] to [the universe]?)
These are distinctly different value calculations. The actual ME is different that what I ought to be. Thus, the first is asking what about my current value, while the second is asking what value I should make myself (through spiritual-value growth–becoming virtuous). This shows the degree of a sinnerhood. We can subtract the AM’s value from the SHOULD BE’s value, and realize how much we need God’s grace.

Anytime you look at something’s relevance, remember to do so from the perspective of a value-based paradigm. When you make relevance calculations, you must do so from the perspective of value-based morality exclusively. You will be asking: How this X relevant to God’s Will?
The word “Community” has a positive connotation. It is a warm, safe, and responsible expression. It is an object of caring complexity. Community serves as a step up, apart from the individual, to allow us to think of a group of individuals, usually in regards to needs, beliefs, and behaviors. This is a word we throw around a lot, perhaps to our injury.

Community is a word, I feel, that is slowly being twisted by post-moderns. It is a word twisted to the benefit of the post-modern, as if it lends credibility to their arguments. Community, as a meaning, is beginning to refer to a less logical construct and a more emotional one. Touchy-feely arguments are persuasive; and regardless of the lacking logical merit of the post-modern arguments, the relativists wield these words to great effect and influence. Arguments imbued with egalitarian, humanist nonsense, as found in the twisted use of the word “Community”, are dangerous and deform the proper perceptions of our purpose and identity. We must isolate and distinguish the exact meanings of weasel words, and I will start with this word: Community.

Current definitions are neither clear, nor completely tainted by the post-modern perspective. They are changing though, and they are being infected with the thoughts of the moral relativists. Our perception of the definition of community affects how we act within that context, and so we must be careful how we define it. The chosen must extract Community-ness if we wish to protect its truth-purity and disable the relativists’ attempt to convert us. If you have no idea what I mean by the post-modern undercurrent that is subverting the very nature of our understanding of community and our purpose, leading to the subversion of our communities and purpose themselves, then start with “Spheres of Justice”, with the subtitle “In defence of pluralism and equality”, a book written by Michael Walzer. Here you will be opened to a dangerous world of thought, one that denies the fundamental concept of absolute value and truth. It is here that the elite post-moderns begin their argument. This is the birthplace of the viral memes of relative-thinking that contaminate corporate and individual responsibility and value.

To arms, chosen slaves of the Word! We must win the thought-war if we are to survive and grow.

The word community is derived from the Latin communitas (meaning the same), which is in turn derived from communis, which means “common, public, shared by all or many”. Communis comes from a combination of the Latin prefix con- (which means “together”) and the word munis (which has to do with performing services).

Ironically, the original meaning is untainted and so very close to community-ness that it is scary. The modern world, even with the benefit of time which can often improve our understanding of a word or concept, has not distinguished this concept or brought us closer to the form of community; instead, the modern world has clouded the truth and even hindered us from reaching the meaning and purpose of this word. The ancient people, at least in this case, have a better handle on the meaning of the word than we do (where did progress go?…yes, we have congressed).

Generalized, a community is any number individuals or objects that share something or some set of things in common. Community-ness is the sameness found in particulars. It is the act of grouping commonality.

This seems fairly basic, as if it is too easy. However, some basic truths don’t necessarily simplify the world, they can help us to even make sense of the world in the first place. In this case, the actual number and types of communities that exist is actually very, very complex. This should remind you of Venn Diagramming.

Consider the people who live in Kentucky. This community is a sub-community/group of two sets. All that is contained in Kentucky and all people are combined to narrow and limit the meaning of both larger communities into a smaller one.

Now, consider the fat people in KY.

All Objects in Kentucky (A community itself)

All People

All Fat Objects

Narrowed into: Fat people in Kentucky.

Sadly, this is not too much different from “People in Kentucky”. Speaking of which, “People in Kentucky” and “Fat People in Kentucky” are two different communities, even if one is contained within the other.

In general, community acts as an identifier. Community gives us the logical relations between objects. Community, of course, is not bound by region or anything, but it requires at least a single commonality. Communities can be large or very, very small. They rely upon sameness in grouping, and that is the first concept to understanding community.

Community, at this point, sounds way too much like Venn Diagrams, the Forms, and just basic grouping. And, of course, it does rely upon these logic and definition systems. But, for “Community” to mean more than just “group”, and retain any useful meaning, it must be distinguished from just “group”. Community is distinguished from those logical grouping mechanisms in that it deals with a very specific type of group, a group so relevant to our discussions of purpose and value that we distinguish it and give it its own name.

The revised and more relevant definition becomes: A community is any number of morally culpable individuals that share something or some set of things in common.

‘The Community’ is comprised of all free individuals that are morally responsible for their actions and beliefs. All sub-communities are spawned from the commonalities found between members of The Community. The Community is more than just a group, it is special and set apart from all other groupings.

A community is a grouping of sameness as found in moral beings. It is here that we will find that a community becomes its own object. So, just as we can distinguish smaller communities from the larger ones by adding other commonality factors to limit the membership, we can also add up and group similar communities to form a new community obviously.

[Fat people in Kentucky] + [not-Fat people in Kentucky]=[People in Kentucky]

It is here, that Community develops its third requirement for relevant meaning. A community becomes its own object. Specifically, a community becomes its own morally culpable object or entity. A community derives a corporate moral responsibility from the morally responsible individuals that form the group. A community, at the very least, is the sum of the responsibilities of the individuals inside it. And, perhaps, moral synergy exists in a community in which even greater responsibility is required beyond the base sum. So, it may be the case that the total sum of moral responsibility of a community is greater than the sum of the individuals’ moral responsibility.

The revised and more relevant definition becomes: A community is any number of morally culpable entities that share something or some set of things in common.

Entity, of course, could be an individual or a sub-community. From this, we can logically conclude that there exists a:

Conjunction of All sub-communities that equates to “The Community”. It is the WHOLE of all possible morally culpable entities that comprise “The Community”.  The Community is an INDEX of all moral responsibilities in existence. This gets us to our final point.

Community is a measurement of moral responsibility and a required degree of value-seeking. Community-ness is relevant in distinguishing Individual and Corporate responsibility to rationally pursue value.

Community exists for the sake of rationally pursuing value, for being virtuous, and in virtue of the moral responsibility entailed with free beings and groups of free beings.

Neo-rationalists, Chosen people, Slaves of The God…you are a Community with a specific purpose and moral responsibility. Know your identity.
One of the most talked about cards in magic, but also one of the most difficult to evaluate. How should we value brainstorm? I’ve decided to breakdown the value of mechanics that form the card brainstorm. This should give us insight into why and when we use brainstorm.

I separate brainstorm’s effect into 3 components:

1.) [Cantrip]
2.) [Library Manipulation]
3.) [Hand+Library Manipulation].

1.) [Cantrip]–Guaranteed +1 Card in your hand, but more importantly, a guarenteed -1 card in your library. Brainstorm, like many cantrips, is 1 blue mana for 1 card, which is already a fair effect. This thins your deck like a street wraith or fetch land. A cantrip replaces lower quality cards in a deck, allowing you to see the highest quality cards of a specific function.

If you run 4 brainstorm in a 60 card deck, and you go through a quarter of your deck on average before the end of a game, then you are paying, on average, a single blue mana over the course of the game to have a 56 card deck. The scaling of the cost to cycle through more of your deck per average game is linear too.

Why would you want to turn 60 cards into 56? Some cards have a higher utility, value, or relevance to your deck or specific circumstance than others, and in reality, we only want to play those instead of lower quality cards if possible. Cantrips, like brainstorm, remove lower utility cards from the equation, allowing the remaining 56 cards to have a higher average utility value than the average 60 card deck. The question then becomes: was the average cost of using cantrips worth the card-quality gains?

I’ll use as straightfoward a case as I can think of to show you what a cantrip means to card quality. This case by no means showcases the brokenness that is Brainstorm that we might find in decks that abuse it best, but the case shows the principle behind cantripping.

Let’s say you were playing a deck that had 16 Volcanic Island, 40 Lightning Bolts (120 damage value), and 4 Shocks (8 damage value). Notice that shocks, on average, are 1/3rd less valuable than a bolt. We’ll say you see 11 cards per an average game, putting you at (11/60)*4 (total mana cost of cantrips in deck), or 0.733 of a U, on average, to go from a 60 card deck to a 56 card deck. What happens when we replace the lower quality cards of a deck, shock in this case, with a cantrip?

[Total value of win conditions]/[Total mana cost of win conditions]=[Average Win condition to mana ratio per card].
Shocks–   128/44=2.909
Cantrips– 120/(40+0.733)=2.946

The gain, in part, is one of mana efficiency. The otherside of the cantrip is how it affects your average “win-condition” value met per card.

[Total value of win conditions]/[Total cards in deck]=[Average Threat value per card] (Think of DPS for you MMORPGers)
Shocks– 128/60=2.133
Cantrips– 120/56=2.143

What if we made a deck with with 40 shocks and 4 ‘Flashback-less’ lava darts, how good is a cantrip then? Presume we see 13 cards per average game, or (13/60)*4=.866. Notice that Flashback-less lava darts are only 1/2 as effect as a shock, and contribute proportionately less to the total win condition value of the deck. The Shocks are more relevant to the bolt-deck than lava-darts are to the shock deck. This difference in proportion will illustrate the rising advantages on cantrips in decks and formats that have larger card quality disparities.

[Average Win condition to mana ratio per card]
Lava Darts– 84/44=1.909
Cantrips– 80/40.866=1.958

[Average Win condition value per card]
Lava Darts– 84/60=1.4
Cantrips– 80/56=1.429

The worse your cantrip-replaced cards proportionately compare to the average mana-efficiency and win condition values of the rest of your deck the better a cantrip becomes. Here are your comparisons:

Bolts’n'Cantrips/Bolts’n'Shocks Mana efficiency ratios– 2.946/2.909=1.013
Shocks’n'Cantrips/Shocks’n'Darts Mana efficiency ratios– 1.958/1.909=1.026

Bolts’n'Cantrips/Bolts’n'Shocks Win Condition density ratios–2.133/2.143=1.005
Shocks’n'Cantrips/Shocks’n'Darts Win Condition density ratios–1.429/1.4-1.021

As the win-condition value of the least valuable cards of a deck (those to be replaced with cantrips) proportionately decreases as compared to the more valuable cards in a deck, the proportionately better a cantrip becomes.

If all your spells have fairly equal win-condition value, then the effectiveness of a cantrip decreases. So, while the greater variation in the value or relevance of your cards, the better a cantrip becomes, the other side of this equation is that perfectly balanced decks with card quality equivalence would not want to use cantirps. For example, if you ran 16 Volcanic Island and 44 Bolts, would replacing 4 bolts with 4 cantrips be worth it? Let’s say you see 11 cards per game.

[Average Win condition to mana ratio per card]
Bolts–132/44=3
Bolts/Cantrips–120/40.733=2.946

[Average Win condition value per card]
Bolts–132/60=2.2
Bolts/Cantrips–120/56=2.14

Running straight bolts is simply better than having a cantrip. Why? There is too little variation in the mana-efficiency and win-condition values of the cards in a deck with nothing but bolts and land. In cases where all things in your deck are equal in value, then cantrips are not worth it. A perfectly balanced deck would not need cantrips. Building this “perfectly balanced” deck is more complicated than many would realize though. Remember the arguments against running more than 60 cards in a deck? Usually, because there is such extreme differences in the quality of cards in older formats, we seek the smallest decks possible to abuse the few cards that are just too darn good for their mana costs. Cantrips act as the glue between the broken cards of eternal formats in these cases. However, technically, there are cases where 65-card decks could be perfectly balanced, even better than 60 card decks. Perhaps you could make a 65-card deck that had a several functions, all maximal and equal quality cards for their slot and function, and any removal of a card would imbalance the deck’s card quality. Here, you would take a 65-card deck over a 60-card deck. But, how many decks do you know are this well made? The sort of perfection in balancing card value to make it such that a 65-card deck would be preferred to a 60 card deck is the same sort of calculation and balance that a deck would need in order not to consider cantrips. If there is any imbalance in the value of the cards in your deck, then cantrips are worth considering.

Since that perfection rarely exists, often due to format card pool constrainsts, we opt for cantrips. The proportionately less valuable a card is compared to the average card quality of a deck the more likely we should replace it with a cantrip.

Take a more extreme case, say 16 Volc-Islands, 40 4-damage for 1 mana burn cards (henceforth: Uber-Bolt), and 4 Flashback-less Lava darts. Say you’ll see 10 cards in an average game. (10/60)*4=.667 mana cost to goto 56 cards.

[Average Win condition to mana ratio per card]
Lava Darts– 164/44=3.727
Cantrips– 160/40.667=3.934

[Average Win condition value per card]
Lava Darts– 164/60=2.733
Cantrips– 160/56=2.857

Cantrips give proportionately larger gains when they replace cards of proportionately lower relevance. In this case, cantrips let us not run flashback-less lava darts and stick to straight uber-bolts, giving much higher mana efficiency and average card quality.

Cantrips aren’t the end-all-be-all solution though. Take a case where we ran 16 Volcanic Islands, 24 cantrips, and 20 Uber bolts vs. 16 land and 44 Uber Bolts. Say we’ll see 20 cards per game; (20/60)*24=8. Ouch, that is 8 mana, per game, spent on just lowering the count to 36. It will take too many turns to see the cards we need to see to be mana-efficient at all.

[Average Win condition to mana ratio per card]
Cantrips– 80/32=2.5
Uber Bolts– 176/44=4

[Average Win condition value per card]
Cantrips– 80/36=2.222
Uber Bolts– 160/2.667

This is an extreme example, but it shows that there is a specific number of cantrips we wish to run in any given deck. You can easily run too many or too few cantrips in a deck.

Burn, of course, can be a more straightfoward calculation than other decks. And, you’ll notice several burn decklists use bauble-cantrips to maximize and balance average card quality..for good reason. Other decks are certainly more complicated, but the principle still remains the same though:

The higher degree of disparity found between the relevance and value of the different cards in your deck, the more useful a cantrip becomes. Eventually, if you follow this path, you’ll see the extreme in silver-bullets and tool-box decks that rely upon card-quality, cantrips and tutors to consistently find the singleton card that may be the only relevant thing in your deck against an opponent.

This is why running Yawgmoth’s Will with cards that aren’t nearly as powerful would drive us to use cantrips: by running cantrips we will receive a higher average use and benefit of Yawgmoth’s Will over the course of many games. The benefit, often enough, is worth the cost of replacing weaker cards with cantrips.

Decks that have similar components are less likely to desire cantrips. An aggro deck, for example, may have few deviations from the mean value of cards in the deck. On the other hand, a combo deck may often find themself in situations where they have 2 of 3 combo pieces in hand, but need the last one. In this case, only the missing combo piece may be relevant to our situation, and cantrips increase the likelihood of finding the relevant cards.

The cantrip component of brainstorm fulfills a major glue-mechanic in which decks can more consistently run and play with higher quality cards with different functions and values in different circumstances.

Brainstorm is a cantrip, and will it will give this effect.

2.) [Library Manipulation]–This is a more straight foward effect to consider. Think of this as Sage Owl. How many cards do you have left in your library? To what degree do the individual cards in a deck deviate from the mean win-condition value of cards in a deck? The higher this deviation, and the lower your library count, the more effective library manipulation becomes. Bare in mind, the mean win-condition value and deviations vary per metagame, per deck, per matchup, and per specific game circumstance. This makes it incredibly difficult to calculate, but it highlights the variance we see in even the mean values across a spectrum of conditions. Library manipulation, like a cantrip, helps isolate and condense the average variance from the mean value of win-condtions across the spectrum of play-conditions.

Sage Owling into a 40-card library with nothing but Lightning Bolts isn’t going to net you anything. However, Sage Owling into a 40-card library that has only three or four relevant card in the deck (perhaps you MUST Wrath of God next turn or you lose) increases your likelihood of seeing relevant cards sooner. Like the cantrip, library manipulation benefits the deck that has higher variance in card value from the average card value.

Let’s take a basic example:

If you had 36 cards left in your library, 3 WoG’s in the library, and Wrath was the only relevant card, what does a 4-card Library manipulation effect do for you?

Without the library manipulation you have a 1 in 12 chance to draw Wrath of God next turn.
With a 4-card library manipulation you have a 1 in 9 chance to draw Wrath of God next turn.

Library manipulation is still very good even beyond looking for 1-of a specific card in your deck. It lines up your deck plays too. It could be as simple as counting your land drops drops for the next several turns and making sure relevant spells are on top with land being placed exactly where you would need to draw it so you could make a land drop for the next several turns.

Library manipulation allows you to order cards in their relevance to your current game position. If you need a counterspell before you need a land, then go ahead and put the land under the counterspell. The land may be relevant, but maybe it is less relevant than the counterspell. Library manipulation increases the quality of your future draws. A basic permutation grid of a 4-card library manipulation ensues.

Actual Card1 (in Slot1) — Value at Slot1=1, V@S2=6, V@S3=8, V@S4=5
Actual Card2 (in Slot2) — Value at Slot1=3, V@S2=5, V@S3=4, V@S4=6
Actual Card3 (in Slot3) — Value at Slot1=0, V@S2=5, V@S3=6, V@S4=2
Actual Card4 (in Slot4) — Value at Slot1=4, V@S2=2, V@S3=3, V@S4=3

Card1 moves to Slot3, Card2 moves to Slot4, Card3 moves to Slot2, Card 4 moves to Slot1.

Originally, we have a top 4-card value of 15. After a 4-card library manipulation we have a top 4-card value of 23.

The permutation grid is actually much more complicated than I’ve provided. For example, what if Card 3 only has a value of 5 in Slot2 if and only if Card 4 is in Slot1? Multiply this type of value calculation, and you see that identifying the value specifics cards, even in a very specific circumstances, can be quit complicated. These are the sorts of mental calculations that we make on the fly. It seems obvious, but drawing out the reason why we do what we are doing is more complex than we initially thought.

Shuffle effects has a specific effect right here too. You know the value of the top X cards of your library. Is that value below the average value of X cards in your library? If it is below, then a shuffle effect increases the value by [Average Value of X cards]-[Value of Current X cards].

Decks with higher variations of value per slot make the most use of library manipulation. Again, perfectly rounded decks with zero variance from the mean value per card would not want library manipulation. It must be noted that this perfect balance might not be found at 60 cards in a specific format and metagame, and thus a perfect deck without cantrips might not be possible in many circumstances.

Brainstorm have a 2-card library manipulation value. However, it’s 3rd effect is the game-breaking ability that twists library manipulation into relevant and immediate card advantage and quality.

3.) [Hand+Library Manipulation] This is a very odd effect in magic. This is the effect that makes brainstorm more than just a mere cantrip and library manipulation. This ability might be seen as an extension of library manipulation, but we must distinguish this component of brainstorm from a Sage Owl effect because of the influence this mechanic has upon an active hand. This effect alone can make brainstorm as good as Ancestral recall + 1/2 a Sage Owl or as bad as 1/3 an Ancestral Recall + 1/2 a Sage owl. That’s right, I said it: Brainstorm can be BETTER than Ancestral Recall. There is a two card quantity difference between the worst brainstorm and the best possible brainstorm, and most of the math behind understanding the value of a specific resolution of Brainstorm, as found between that spectrum, relies upon this mechanic.

Given the cantrip effect, the Hand+Library Manipulation effect is only a count of 2 cards. The value differences

To look at the Hand+Library Manipulation effect itself, we will neglect the cantrip and library manipulation components of Brainstorm for now.

Hand:
Card in Hand1 — Value in Hand=2, Value in Library=2 (in not particular order on library, just with X cards from the top)
Card in Hand2 — Value in Hand=3, Value in Library=0
Card in Hand3 — Value in Hand=1, Value in Library 1

Library
Card on Library1 — Value in Hand=3, Value in Library 1
Card on Library2 — Value in Hand=1, Value in Library 0

Current value of Hand+Library=7.

After a 2-card Hand+Library manipulation, where Hand1 is replaced with Library1 and Hand3 is replaced with Library2, the value of Hand+Library=10

This is rudimentary, but it shows the basic principle.

Echoing truth against a High-tide/Reset deck is a useless card. Hand-Library manipulation increases your current hand value by putting echo onto your library. This, of course, is at the expense of future draw values. However, when you add shuffle effects, it turns dead cards into average card value. Essentially, Hand-library manipulation is a 3-fold utility:

1.) Gives immediate hand value increase equal to [Cards put into hand from library] - [Cards put on top of library].
2.) Combined with shuffle effect, increases library value to [Average library card value of X cards] - [current top X card library value]
3.) Hiding valuable cards that you don’t want discarded.

Brainstorm does this effect like no other card for such a cheap cost.

Card value–

I’ve talked alot about card value. But, I haven’t given any good definition for it. Here goes:

Cantrips, Hand and Library manipulation are difficult to evaluate because it requires a system of identifying the exact of value of each card in a library average circumstance/metagame and the mean variance of value in those circumstances/metagame. This is a good starting place, and it gives us a common language to better understand where and why we use or do not use Brainstorm in a deck.

Card values vary per metagame, but are static to any one specific metagame. Yawgmoth’s Will is inherently stronger in a format that is better at getting cards into the graveyard. Basic land is inherently stronger in a format that doesn’t have better alternatives.

Universal Metagame=
Specific Metagame=

For the purposes of deckbuilding, card values are determined by their degree of influence on the offense/defense ratio of a deck. You are attempting to quantify how essential a card is to your win condition (having a higher offense/defense ratio than your opponent).

A deck or card is meaningless without an opponent or metagame to interpret its value. Against a metagame/opponent with a 60-land deck, the best deck will be the one that has the highest average win condition. It isn’t just whether you won, it is the margin by which you win or lose that helps form the value of the cards in your deck against a 60-land deck metagame. The win-condition to be met, in this metagame, is simply reaching the stage where an opponent has 20 lifeloss, has been milled and can’t draw, or loses through a straight “win-ability” (Door to Nothingness, etc.). Whichever deck has the highest average chance of reaching that win-condition is the best deck in that metagame.

What if you went against a 60-FoW deck metagame? Perhaps the deck that was the best in a 60-land deck metagame would not be the best in this specific 60-FoW deck metagame. The combo deck that probably evolved in the 60-land deck metagame was not prepared to deal with permission. You might say it wanted “speed” at all costs. But, in reality, the deck is only as good as it matches against a specific metagame.

Value of a card has those two values, value in the universal context and the specific. Do not be confused into thinking this isn’t calculable. You just need to see how to go about looking for its value in the first place.

This game is calculable and finite. Please remember that.

In conclusion:

Brainstorm is a pretty awesome card. Add in a shuffle effect, and I think it is next to broken.
Defining the World.

Relational definitions of objects through Form-Spectrum analysis.

Time to redefine the word &quot;Form&quot;

A form is one side of a spectrum. There is F-ness and Non-Fness. The Non-Fness is everything that Fness isn't, and Fness is everything that non-Fness isn't. While this semantical claim might not seem valuable, I assure you that such logical claims are the basis of all thought concerning particular objects and things. Form-spectrums are revolutionary in their ability to analyze and define a particular thing.

Plato and Aristotle may have said that something &quot;conformed&quot; or did not conform to a &quot;form&quot;. They did not properly discuss the DEGREE to which something conformed to a form. The degree to which a particular thing conforms is ESSENTIAL to defining that particular thing.

Just take the classic example of Beauty or Beauty-ness. We can say the painting is beautiful, and we mean to say that the painting partakes of the form of beauty. However, clearly the painting could be MORE beautiful, and the painting itself does not define the essence of beauty. We can draw several conclusions from this experience. Firstly, we can mathematically calculate HOW beautiful something is compared to other objects of beauty and, specifically, we can theoretically test to see HOW MUCH beauty exists in an object. How much does it partake of beautyness? This is the degree of beauty as found in something. The second important fact to understand is that: insofar as an object is NOT beautiful or fails to partake of beauty that object is partaking of the opposite of beauty. This, of course, presupposes that for one thing to exist, an opposite of some sort must exist. What is the opposite of beauty? Is it ugliness?...maybe. The easiest way to consider it is:

B
~B

B=Beauty-ness or Form of Beauty

All that is Beatyness is B.
All that is not Beautyness is ~B.

To say somethin is 20% beautiful is to say that it replicates, duplicates, mirrors, and exhibits Beauty-ness by a degree of 20%. What is the rest of the 80%? Well...we know for a fact it isn't beautiful. But, that doesn't mean it is 20% beautiful and 80% ugly (although, this form DOES exist in concept). All we know is that it is non-beauty-ness. This is very broad. Perhaps it is 10% wooden-ness, 5% redness, etc.  The 80% is a composition of whatever other forms from which this particular something partakes. The important thing to realize is that the end result composition will add up to 100% of some proportion of form-partaking. I call this the form-spectrum of particulars.

A baseball bat may APPEAR to be composed entirely of wood, but we would be stupid to think that a baseball bat and Wooden-ness are the same things though. The baseball bat has a particular structure and function. Perhaps it has engravings. Perhaps the bat has sentimental value beyond any old woodenness. Perhaps the baseball bat isn't eternal and timeless and exists in a temporal state. These particular characteristics are measurements of other forms from which the baseball bat partakes.

Takes cats form-spectrums:

Non-Mammal-------------------------------Perfect Mammal-ness
Non-Cat----------------------------------Cat-ness
Non-Blackness----------------------------Blackness
etc.

Cat is defined by where it exists on the form-spectrums across all possibly cat-relating forms. I can take Yoda and say he has X degree of Blackness, X degree of friendliness, X degree of Catness, X degree of big-ear-edness.

How Mammally are cats? If Mammalness (the form of mammal) is the object at hand, and we measure the mammality of cats, then we can know the degree to mammalness is composed of catness.

Forms ARE particulars. They do all partake of FORMness right? The degree to which other forms/particulars partake of the form of something else is the degree to which that thing is a form.

The only perfect form is form-ness. All others exist upon form-ness. They are dependant. They can be different, but they still must partake of some other forms to exist.

Existing, truth, actual, and real are all synonyms of FORMness. If it is under the umbrella of Form, then it doesn't exist. Form is the only thing that has no REAL opposite. I can't point or consider anything that isn't under Formness. All truths, definitionally, partake of Form.

Formness-&gt;(nearly) Independant Form concepts (no particulars exist)-&gt;Forms of Particulars

Indy forms would include &quot;beauty&quot;. There isn't some particular thing we call beautyness. And, there isn't some heavenly ethereal body we call beautyness. Beautyness is a pure concept, independant of all particulars and nearly all other concepts. You can describe beauty only by itself (and its foundational forms). Beauty exists upon the foundation of few forms, for example: Formness and valueness (which could be the same thing, I need to give it more thought).

This is a heirarchy of foundational truths by which we can deduce the meaning and interrelation complexities of other truths in the form of form-spectrum analysis.

We need to ask what is Godness (which isn't the same as Godliness)? Godness relies upon Formness and Valueness (co-existing?).

This-scissor-ness. That-scissor-ness.

Subforms are dependant upon other forms. This-scissor-ness relies upon many other forms, thus it qualifies as a subform.

A specific purpose or meaning of an object is yet another borrowing or partaking of a form.

Let us dissect this particular scissor we have in mind (pretend it is in your hand). It is a 30 year-old scissor that has red, low quality plastic handles, the sheers are steel, the cutting blade can cut through 2 inches of paper when 50ppsi is applied at the middle of the handles, but not 2.1 inches at the same pressure, it has a blue dolphin sticker on the outside of the left blade, the joint squeeks at 300mhz, and we bought it for 500$ from a celebrity office-supply memorabilia store because Jimmie Hendrix once owned it, etc. This scissor has many properties and characteristics, perhaps an infinite set of them even. This particular scissor has it's own form. For the sake of the argument, we will call it This-Scissor-ness. If I tried to replicate or comprehend it absolutely and fully, then I'll need to refer to the particular form of this particular scissor. Each new object has its own &quot;this-object-ness&quot;. We cannot understand or know all of this particular scissor without referring this This-Scissor-ness.

However, This-Scissor-ness is not independant of other concepts and forms. In fact, This-Scissor-ness is heavily dependant upon other forms, and we cannot under This-Scissor-ness without considering the many, many forms from which it partakes. The forms of &quot;handles&quot;, &quot;cutting&quot;, &quot;blades&quot;, &quot;red&quot;, &quot;sound&quot;, etc. and every single detail and every interrelated characteristic of this particular object must be considered when identifying the meaning of This-Scissor-ness in its entirety. Perhaps This-Scissor-Ness is comprised of 15% steelness. Perhaps steelness comprises 5% of metalness. Then, This-Scissor-ness partakes of metalness as well...We move from very, very particular forms to less particular forms. We move towards higher forms which are less dependant upon other forms. This web of definitional relations spreads far and wide.

Scissor-&gt;steel-&gt;metal-&gt;material-&gt;existing (FormNess)

There are probably millions of tiny gaps to consider in between each of these dependancies. Comprehending the the scissor is a much more complicated process than many would have initially thought.
Forms with EXISTING particulars
Forms without Exant particulars

 

Formness-&gt;(nearly) Independant Form concepts (no particulars exist)-&gt;Forms of Particulars

Some forms are abstract, but are built upon the foundation of other forms. The form itself, however, is a particular thing (even if it isn't concrete). Particular objects that partake of other forms act as their own form. We can't divide abstract and concrete as if only one exists in reality and the other doesn't. Particular objects are

Generally, the ancients looked at the 'forms' as abstract definitions which were used to describe concrete objects in reality. They treated concrete objects as particulars. These particular objects were not forms, they merely partook of other forms to be defined. Unfortunately, concrete matter was never taken into consideration as defining other concrete matter. This system has a lowest common denominator, but it fails to appreciate a world of value. It does not let us perfectly define a thing.

What is Concreteness?

Notice the difference between the two statements.

All matter is concrete.
All matter partakes of Concreteness.

There is more to matter than just being concrete. The concreteness of matter is merely one aspect of matter. Matter can have value, color, speed, etc.

Cat are Mammals.
Mammals aren't necessarily Cats.

Mammal does not describe the fullness of Cat. Cat has more characteristics to define. Cat is specific. Cat has more definition than just.
28 Mana

* 4 Mishra’s Workshop
* 2 Mishra’s Factory
* 1 Tolarian Academy
* 4 Wasteland
* 1 Strip Mine
* 3 Mountain
* 4 B-Ring
* 5 Moxes
* 1 Black Lotus
* 1 Sol Ring
* 1 Mana Vault
* 1 Mana Crypt

24 Disruption

* 1 Trinisphere
* 4 Sphere of Resistance
* 4 Thorn of Amethyst
* 4 Tangle Wire
* 4 CoTV
* 4 Smokestack
* 3 Crucible of Worlds

8 Creatures

* 4 Goblin Welder
* 2 Trike
* 2 Mox Monkey

Sideboard

* SB: 4 Jester’s Cap
* SB: 4 Leyline of the Void
* SB: 3 Rack and Ruin
* SB: 4 Juggernauts

Control.

This pile drops lockpiece after lockpiece. Look at it: 9-sphere effects, wire, Cotv, stacks, and LD recursion a la CoWorlds all of which are accelerated by a souped up mana accel engine. This thing locks games down.

The purpose of this article is for us to better understand the meaning and value of resilience as it relates to your average PvP circumstances. I will give the equations context.

What is resilience?

Resilience is a 3-part stat.

A.) x% reduction in an opponent’s critical strike rate (henceforth variable resA)
B.) 2x% reduction in an opponent’s critical strike damage (resB)
C.) x% reduction in an opponent’s DoT damage (resC)

X = [Resilience rating * 0.025]

e.g. 100 resilience rating = 2.5% reduction in an opponent’s critical strike rate
5% reduction in an opponent’s critical strike damage
2.5% reduction in an opponet’s DoT damage

What is the purpose of resilience?

Resilience is a survivability stat which exists to mitigate the effectiveness of burst damage and randomness in the game. Unlike armor, it does not strictly mitigate all incoming damage like a blanket protection, however, it does serve to mitigate the random crit streaks and intensity of crits in the game while blanket-mitigating all DoT damage. Resilience eliminates variance in damage taken. Resilience, essentially, exists to make a more fair and predictable fight in PvP through increased consistency in survivability gains.

Beautifully, resilience mitigates nearly all sources of damage to some extent.

How valuable is this stat?

The best way to measure the effects of resilience is to understand its equivalence in HP. How much survivability does resilience add per itemization cost-unit as compared to the survivability gains of HP/Stamina of equivalent itemization costs? The truth of the matter is that several PvP circumstances exist in which resilience is the wrong stat in which to invest. Most players fail to recognize this fact.

HP, like AP is to melee damage, is a static and linear gain in survivability. Resilience, like most forms of damage reduction, functions exponentially, with geometric gains in survivability. Specifically, against targets that resilience can effect (assuming they have crit rating or use DoTs), resilience increases the value of each point of health.

To give a workable example, consider personA with 10k hp who faces a melee opponent with a 30% crit rate. If personA has one open gemslot, should he use a 12 stamina gem, 8 resilience gem, or 4 resilience/6 stamina to maximize his survivability against said opponent? 120hp vs. 0.2%/0.4% reduction vs. 0.1%/0.2%/60hp.

Without even looking too closely at the math, it is easy to see that the highest initial survivability (time to live) gains come from investment in HP/stamina. But, at some point, in cases where a person has enough [virtual HP] (actual HP + actual Healing received), exponential survivability stats overcome the utility of straight HP/Stamina investment in itemization costs. Where is the point of inflection? Where does resilience become greater in value, per itemization cost, than HP/stamina?

This is a somewhat complicated question to answer. It depends on several variables. Resilience rating, total virtual health, proportion of DD and DoT damage types, crit bonus, and crit rate are the fundamental variables you need to know. As each of these variables scale up or down, we’ll see shifts in the comparative values of resilience and stamina. In our case, we want to ask ourselves what the average quantity will be for each of these variables.

What calculations must be made?

We need to take a look at the very meaning of critical strike chance and how it effects survivability and opponent’s damage in order to fully understand what resilience is doing for us.

Take personA:

It takes 10,000 1-damage non-crit strikes to consume personA’s survivability.
If personA’s opponent (personB) has a 30% crit rate (and 100% crit damage bonus), then it will take ~7,692 strikes, or ~2307 2-damage crit strikes and ~5384 1-damage non-crit strikes, to consume personA’s survivability.

Moving from 0% to 30% crit chance on personB’s 1-damage strikes has a dramatic effect on personA’s time to live. 23.1% less effort is required of personB to get the same effect as striking without crits, and essentially, personA loses 23.1% survivability because of personB’s gain in crit chance.

+30% crit chance buff for personB is the same as a -23.1% debuff of personA’s HP.

10,000 * (1 - 23.1%) = 7,692 HP
7,692 1-damage non-crit strikes

Your opponent’s offense and your defense are mathematically translatable concepts. Because of this, you may even think of this situation as each point of personA’s 10,000 health is worth 23.1% LESS because of an increase in personB’s crit chance. Time to live ratio’s remain the same, regardless of how you look at the problem.

Damage enhancement is not directly the same loss in survivability for an opponent.

([HP] / (1 + [Damage Modifier])) = [Surivability Post Damage Modifier]
10,000 / (1 + .1) = 9,090
10,000 / (1 + .3) = 7,692
10,000 / (1 + .6) = 6,250
10,000 / (1 + 1.0) = 5,000
10,000 / (1 + 2.0) = 3,333

You’ll also notice that there is diminishing returns to increases in [Damage Modifer], but an exponential returns in mitigating [Damage Modifier]. Moving from 200% [DM] to 100% [DM], a 100% difference, is merely a 1,666 gain in survivability, while moving from 10% [DM] to 0% [DM], a 10% difference, is a whopping 910 survivability. The less crit your opponent has, the better resA’s effect will become.

Resilience effect A (resA) becomes better and better with each point (I’m not going to deal with the other two effects just yet), assuming that each percentage point of resilience has a corresonding degree of crit rating. If an opponent doesn’t have a great deal of crit rate, then resilience is obviously the stat to stack. Taking crit chance to near zero is preferred. Unfortunately, a character can only get so much resilience (capped in itemization), while crit rates are much easier to maximize. If high enough (beyond resilience correspondence cap), the higher your opponent’s crit rating, the less valuable resilience becomes in this respect. In some cases, crit ratings may soar so high that stamina provides greater benefit in survivability itemization.

Think about it: it takes 400 resilience to lower just 10% crit rate (and 400 resilience is a fairly large chunk). If an opponent has only 10% to begin with, then you are gaining 910 survivability. But, if the opponent had 35% crit rate (definitely possible), then you only move from 7407 to 8000 survivability, a 593 survivabilty gain. You would need a currently unreachable amount of resilience to cover that amount of crit rate. As such, you start at the low end of the curve when calculating how resilience negates crit rate, and you receive fewer actual time-to-live benefits. While resB attempts to curb this effect, it does not negate the strength of crit stacking beyond the reach of resilience itemization possibilities. In any case, the scaling needs of resilience promotes an all-or-nothing mentality (admittedly, itemization is limited, and you’re going to definitely have some degree of resilience in your gear if you PvP; however, a good portion of enchants/gems/trinkets have more variance to choose from).

The problem for the case for resilience may be worse. We need to convert the survivability gains of resilience to the flat survivability gains of stamina/HP in equivalent itemization costs.

Even if you used 400 resilience against an opponent with 10% crit rate, gaining 910 survivability, a 10% (9,090/910) increase in the value of your HP, you could do the same thing by just adding (10,000*10%) 1,000 HP.

10,000 * 10 = 11,000 / (1 + .1) = 10,000
10,000 / (1 + .1 - [400 resA or .1]) = 10,000

In this case, where playerA has 10,000 HP, a 1,000 HP gain, or 100 stamina, is the equivalent of the survivability gains of 400 resilience against an opponent with 10% crit chance. But, which is easier to reach in itemization costs, 100 stamina or 400 resilience?

Looking at gems, 100 stamina = 66.67 Resilience rating. For the itemization cost of 400 resilience, you would gain 600 stamina or 6,000 HP. It is simply obvious that 16k hp is going to have more survivability than 10k hp with 400 resilience against an opponent with a 10% crit rate.

10,000 / (1 + .1) = 9,090
16,000 / (1 + .1) = 14,545
10,000 / (1 + .1 - [400 resA or .1]) = 10,000

Using stamina in your itemization instead of resilience will net a player 5,455 survivability, while the equivalent itemization costs in resilience (400) only nets a player 910 survivability. Stamina is 500% better than resilience at 10,000 HP with an opponent at 10% crit rate. Stamina, as well, never capped, and resilience’s effect A capped because you can’t lower crit rate beyond 0%. This could exist if people were stacking enough resil and dropping every bit of crit rating possible for linear damage gains like AP/+spell/etc.

Again, as we saw before, resilience becomes even worse against targets with higher crit rates where our exponential gains of resilience are set back in the curve.

10,000 / (1 + .35) = 7,407
16,000 / (1 + .35) = 11,851
10,000 / (1 + .35 - [400 resA or .1]) = 8,000

Stamina = 11,851 - 7,407 = 4,444 survivability gain
Resilience = 593 survivability gain.

It would seem that Stamina is 649% better than resilience in this case. Ah, but now we have a crit rating that is not matched by resA, and we have not included the second effect of resilience, resB, in our calculation. Here, resB will curb the effects of rising crit rates that resA cannot negate. In this case, there is 25% crit chance left to be affected by resB’s effect. Essentially, the effects of any crit chance left over is reduced by resB.

[HP] / (1 + (([Crit rate] - [resA rate]) * (1 - [resB rate]))) = [Survivability Post Resilience] (resA and B’s effect)
10,000 / (1 + ((.35 - [.1]) * (1 - [.2]))) = 10,000 / (1 + (.25 * .8)) = 10,000 / (1 + .2) = 8,333

Notice a 333 survivability gain because of resB against an opponent with 35% crit rate.

ResA=593 survivability gain
ResB=333 survivability gain
Resilence nets 926 survivability
Stamina nets 4,444 survivability

Stamina is 380% better than resilience when including ResB’s effect with 10k hp and a 35% crit rate opponent.

There are several forces at work. The higher initial crit rate, the less we benefit from lowering it. However, the higher the crit rate, the better resilience becomes, proportionately, as compared to stamina.

We do not play in a world where everone has exactly 10k initial HP. In some cases, for example, heavy-healing based arena circumstances, whereby a person might recieve 50k healing throughout the game in addition to their natural 10k (we might say they have 60k virtual HP), resilience is extremely valuable stat. Resilience scales with your HP. It makes each health point worth MORE; stamina cannot do this.

So, taking our example at a 35% crit rate:

60,000 / (1 + .35) = 44,444
66,000 / (1 + .35) = 48,889
60,000 / (1 + (([.35] - [.1]) * (1 - [.2]))) = 50,000

Hello, resilience.

Stamina: 48,889 - 44,444 = 4,445 survivability
Resilience: 50,000 - 44,444 = 5,556 survivability

Resilience is 25% better than stamina here. Make it 590,000 Healing + 10,000 starting HP.

600,000 / (1 + .35) = 444,444
606,000 / (1 + .35) = 448,889
600,000 / (1 + (([.35] - [.1]) * (1 - [.2]))) = 500,000

Stamina: 448,889 - 444,444 = 4,445 survivability (hrmm…I swear i’ve seen this number before…linear gains look small with enough virtual HP)
Resilience: 500,000 - 444,444 = 55,556 survivability

400 Resilience is 1,149% greater than 600 Stamina with 600k virtual hp against a target with 35% crit rate.

Stamina, a linear survivability stat, becomes outclassed quickly in fights where there are high crit rates and a lot of healing.

Where is the point of inflection, whereby stamina=resilience in itemization costs?

As stated, it depends on several variables: resilience rating (converted to resA,B, and C rates), total virtual health, ratio of DoT and Direct Damage, crit bonus, and crit chance. We need to define these variables more to understand the process.

[Initial HP] + [Actual Healing received] = [Virtual HP] (or [VHP] for short)

This cannot include overhealing. It must include all buffs to your HP that are not dispelled.

Crit bonus is an important factor. Some classes have higher damage bonuses than others with a critical strike. This influences the value of resB. The higher the bonus, the more effect from resB. This show how crit bonus and resB operates inside a resilience calculation:

[Damage] + ((([Damage] * ([Crit chance] - [ResA])) * [Crit Bonus]) * (1 - [resB])) = [Damage Post Crit and Res]

Take: 1000 1-damage swings, 30% crit chance, 0% crit bonus, 10% resA and 20% resb

1000 + (((1000 * (30%-10%)) * 0%) * (1 - 20%)) =
1000 + (((1000 * 20%) * 0%) * 80%) =
1000 + ((200 * 0%) * 80%) =
1000 + (0 * 80%) = 1000

Take: 1000 1-damage swings, 30% crit chance, 50% crit bonus, 10% resA and 20% resb

1000 + (((1000 * (30%-10%)) * 50%) * (1 - 20%)) =
1000 + (((1000 * 20%) * 50%) * 80%) =
1000 + ((200 * 50%) * 80%) =
1000 + (100 * 80%) = 1080, would have been 1100 without resB. 20 damage reduction from resB

Take: 1000 1-damage swings, 30% crit chance, 100% crit bonus, 10% resA and 20% resb

1000 + (((1000 * (30%-10%)) * 100%) * (1 - 20%)) =
1000 + (((1000 * 20%) * 100%) * 80%) =
1000 + ((200 * 100%) * 80%) =
1000 + (200 * 80%) = 1160, would have been 1200 without resB. 40 damage reducton from resB

ResB’s effect scales with crit bonus. This also means that resB affect melee classes much worse, in general, than casters. With crit bonus in mind, we have to rewrite the [Survivability Post Resilience] formula:

[HP] / (1 + ((([Crit rate] - [resA rate]) * [Crit Bonus]) * (1 - [resB rate]))) = [Survivability Post Resilience] ([SPR])

ResC’s effect has yet to be discussed. This is very straightfoward. It has the same value as resA against DoTs, and it is a strict mitigation of all DoT damage (no randomness involved). The problem with calculating ResC’s effect is that we need to know the proportion of damage that is DoT and DD over an average fight. Resilience will have a more profound effect upon DD, and thus, including this ratio of DD and DoT in our equation will bring our numbers more in line with the actual average value of resilience. Unfortunately, this gives us yet another factor of variance. Some circumstances will have heavy DoT damage and others none.

At 400 resilience you will reduce all DoT damage by 10% (just as you would reduce all crit chances against you by 10%). Assuming you were taking 100% DoT damage, the survivability value of resC is exactly 10%.

It takes 10,000 1-point DoT ticks to consume the survivability of someone with 10k HP. Let’s look at what adding 400 resilience, or 10% damage reduction of DoT’s can do:

What happens in the reduction, where X is the end survivability:

X * (1 + (-10%)) = 10,000.

11,111 * (1 + (-10%)) = 10,000

so:

[HP] / (1 + ([Damage modifier]) = [Survivability]

10,000 / (1 + (-10%)) = 11,111 survivability, or a 1,111 gain in survivability.

So, to include ResC, just see it as a negative Damage modifier on DoT damage.

[HP] / (1 - [ResC]) = [Survivability Post ResC]
10,000 / (1 - 10%) = 11,111

The total equation becomes uglier by including resC’s effect. We have to include the ratio of DD and DoT damage. They will serve as two different halves of survivability.

Proportion of damage that is Direct (critable) = [PDD]
Proportion of damage that is damage over time (affected by resC) = [PDOT]

[PDD] + [PDOT] = 100% — always.

(([PDD] * [HP]) / (1 + ((([Crit rate] - [resA rate]) * [Crit Bonus]) * (1 - [resB rate])))) + ([PDOT] * [HP] / (1 - [ResC rate])) = [Survivability Post Resilience] (Res A, B, and C)

Solving the point of inflection problem:

The base inflection problem is already in front of us. We’ve dissected how this equation works and how variables impact our outcome. We need to calculate our current survivability and then consider the value of additional stamina or resilience. This means that resA, B, and C’s rates will need to be shown as conversions. Resilience points or rating (as seen in itemization), rather than percentage or rate = [Res].

(([PDD] * [HP]) / (1 + ((([Crit rate] - ([Res] * 0.00025)) * [Crit Bonus]) * (1 - ([Res] * .0005))))) + ([PDOT] * [HP] / (1 - ([Res] * 0.00025))) = [Survivability]

1 Resilience = 1.5 Stamina

We have to solve the problem from the perspective that we have a certain amount of itemization cost available to spend.

X = itemization cost spent on resilience

(([PDD] * ([HP] + (X * 15))) / (1 + ((([Crit rate] - ([Res] * 0.00025)) * [Crit Bonus]) * (1 - ([Res] * .0005))))) + ([PDOT] * ([HP] + (X * 15)) / (1 - ([Res] * 0.00025))) = [Additional HP Survivability]

(([PDD] * [HP]) / (1 + ((([Crit rate] - (([Res] + X) * 0.00025)) * [Crit Bonus]) * (1 - (([Res] + X) * .0005))))) + ([PDOT] * [HP] / (1 - (([Res] + X) * 0.00025))) = [Additonal Resilience Survivability]

(([PDD] * ([HP] + (X * 15))) / (1 + ((([Crit rate] - ([Res] * 0.00025)) * [Crit Bonus]) * (1 - ([Res] * .0005))))) + ([PDOT] * ([HP] + (X * 15)) / (1 - ([Res] * 0.00025))) = (([PDD] * [HP]) / (1 + ((([Crit rate] - (([Res] + X) * 0.00025)) * [Crit Bonus]) * (1 - (([Res] + X) * .0005))))) + ([PDOT] * [HP] / (1 - (([Res] + X) * 0.00025)))

Solve for X.

If you don’t feel like doing it, I have an excellent spreadsheet available. Put in your stats, how much itemization you have available, and it will show you what you can gain in your specific circumstance.

Conclusions:

Resilience extends your survivability in long-term, healing intensive and high crit rate battles. The shorter the battle, the less effective resilience will be.

Melee classes are affected the most by this stat.

Healers that are self-healing will draw the greatest gains from resilience. You need only enough HP to get the next heal off. For a common Focus Fire target, with a full-time heal bot, and a very high virtual HP, resilience is a bomb stat.

For classes that aren’t focus fired as often, HP DOES offer higher initial survivability. But, why stack HP at all if you aren’t even being focus fired? We can pour our itemization into damage, because we know we aren’t going to be focus fired. This, of course, makes us better targets to hit, because we are easier to kill than everyone else.

It stands that resilience acts as a bluff stat on a non-focus fired target in a team with a healer. It basically allows you to pour most of your points into damage, enough resilience to act as a deterent to being FFed, and almost no HP/stamina.

For classes with low or no-healing circumstances, as found in 1v1, 2v2, and several 3v3 groups, HP/stamina is strictly a better survivability stat. The question becomes: is survivability important for those circumstances? Perhaps, due to your class matrix or circumstance, you find yourself never being FF’d until you’ve already lost the battle. Maybe it is rogue/priest and the priest is FF’d every single game. Would the rogue really care about his survivability? If FFing the rogue from the beginning of a fight is an autoloss for a team (because tactically it would enable the priest to do his thing), then the priest will be the FF target. Therefore, the rogue is free, in itemization to stray away from survivability in favor of damage. You want to create teams where every target is a bad target to focus. But, you want to know who they will focus and bluff in your itemization.

Several teams don’t even heal (2 or 3 DPS matrices) enough for resilience to matter enough. Stack stamina.
Dear Rev. Kim,

I am engaging in the enrollment process at Trinity Theological College. My wife and I both wish to attend this seminary. I am writing this letter to tell you about my history, my ministry and calling, and to ask for your support.

Both of my parents have been pastors all my life. Their ministry has given me many opportunities to serve the Lord and witness the power and necessity of the gospel. I’ve been an active member in all of the churches in which I grew up, and I have had the opportunity to work many of the background projects that were available to pastors’ kids.  I’ve worked in soup kitchens, taught bible classes, played piano accompaniment, performed church building maintenance, set up stages, built computer networks, and worked as a counselor at youth camps. Since coming to Thailand, I’ve been a Christian witness to my students and to staff of the Thai public school system.

There are many roles that need to be filled in the Body of Christ, and God has led me to my role: I am to do both academic work and hands-on evangelical ministry, to defend and spread the faith in a secular world, and to help train and create mature and passionate Christians.

Growing up, I’ve been surrounded by a strong sense of a rational God and the belief that having faith was a reasonable objective. I have found that critical thinking about the Bible gives us important practical applications as to how we are expected to live our lives. I want to share that knowledge with others. Trinity Theological College is a place where I can continue to grow and learn so that I can more effectively minister to the hungry minds and souls of others.

To whom much is given, much is required - God has given me so much and provided reason to believe and have faith, and I am called to share my resources. Academic ministry is also a ministry of hospitality, and I must welcome others to share in the pursuit of God in all realms. 

I intend to acquire a Masters in Theological Studies and continue into post-graduate studies so that I will be qualified to teach in a seminary or bible college or wherever God would have me teach. I am grateful for your consideration, and I hope that you can enable me to fulfill God’s plan for me and my family.

								Sincerely,

										
								h0p3
//My best guess is this is from mid 2008. I've not taken the time to carefully parse the encoded backup file (all I have left of the blog).//

INTJ

Apparently, I have changed from an ENTJ to INTJ. Well, congratulations moderate intravert! I can't help but wonder if the shift or the test is false or misleading. The test fails to capture what happened. The test explains that I no longer acquire energy from others, but rather from myself. This is vague and misleading. The hilarious part: I really enjoy being around people I like (&lt;--a huge qualifier)...seriously. I'd much rather be with people (that I respect) than be solo. Why else would someone get married or be a part of a community at all? How do you expect to grow if you aren't interacting with peer-like or higher beings (including yourself as a peer)?

While we are taught to think of &quot;Intravertedness&quot; as &quot;getting your energy&quot; from yourself rather than other people (the latter, and opposite of the former, being extravertedness), I think we are misled. Most people have no clue why people act &quot;intraverted&quot;. &quot;Where you get your energy&quot; is really a poor way of saying &quot;where do you find authority and peerdom&quot;. Basically, if you lived with a bunch of goats or cavemen, you wouldn't have nearly the same meaningful interactions, or degree of meaning, as someone who lived in a more civilized society (not that I call modern industrial/digitized worlds &quot;civil&quot; by any stretch). You too would be intraverted if you lived with goats and cavemen (unless you really are on of them)!

The problem, in my mind, is that the size of the pool of actual people I can reliably interact with in a meaningful way has shrunk. Essentially, my &quot;J-ness&quot; (alongside my N&amp;T) is distorting my E-ness (and it should!). Given the right population, I'm sure I would be a flowering Extravert. Imagine a world of people fairly similar in intelligence to yourself, or even beyond...wouldn't you find that to be more worthy of peer-type interaction? I posit that all people are extraverts, some just have a harder time finding real people and real communities to join in interaction. Essentially, the world's lack of peers (and their refusal to grow to become my peers) has forced me into intraversion.

Intraverts still do basic interaction with others. You have to do tasks, etc. Even finding others who you can actually interact with requires some base level of initial communication. Intraverts may even interact with people they consider lower than peers (or even lower than students usually), and they may do so in some positive fashion. These intraverted people still don't have meaningful growth from direct interaction those that are lower than peers. (Perhaps, indirectly, interacting with lower-than-peers can be worthwhile...for example: teaching).

Intraverts remain in guard until they find peers or higher. Don't get me wrong. Introverts desperately want to interact with peers and mentors. Introverts look to themselves for emotional energy because there is nobody else to support them.

What is an extravert then?

An extravert is someone blinded in an experience machine. They do not recognize reality or the truth about the people around them. They lack cynicism. A child, naturally, should be extraverted (and there is nothing wrong with being extraverted as a child). But, as we see the world for what it really is...and people for what they really are...if we actually differentiate ourselves from them in a meaningful, in hopes of being better, we become separate and introverted. We become so separate that we can no longer interact with the outside in the same way. The chosen must walk in the outside world with armor. It is 'us' and 'them'. Introversion is the denial of equality between you and someone else (to some degree).

Essentially, extraverts are tolerant and introverts are intolerant. An &quot;average&quot; extravert is someone whose tolerance level is above 50% of the population around them. Introverts are below the 50% mark. Tolerance is saying &quot;[what you do and believe and what you are] is okay with me&quot;.

I don't believe others can help me pursue value more effectively.
* h0p3
* 20/162 Moo 5, Mooban Country Park          
* Huay Grabi, Muang, Chonburi, Thailand;                                                                                   
* Phone: 0805658058      
     
WORK EXPERIENCE

English and Conversation Teacher, ESL Instructor
3/2008 – Present

Anubonchonburi, Chonburi, Thailand

Taught English as a Second Language to 5th and 6th grade Thai students.
Developed curriculum and lessons fitting multiple specifications from Thai government organizations.
Maintained detailed records, and helped digitize an older records system. 
Organized events and helped plan activities for the school.

Strategic Communications Quality Analyst
9/2007 – 3/2008

Humana Health Care Plans, Louisville, KY

Analyzed and tested data, design and mechanics of multiple dynamic documents used by millions of people.
Engineered Quality processes.
Formed interdepartmental relations synergy through collaborative information tools and databases which promoted consensus and collective understanding of knowledge for uniform product development. 
Leveraged our team’s technology by migrating best-practice processes to other business areas in the company in addition to customized manufacturing of context specific data tools.

Medicare Billing Specialist
9/2006 – 8/2007

Humana Health Care Plans, Louisville, KY

Maintained detailed records of accounts, products, and member information. 
Retained membership and assisted members in making payments for past due balances through electronic and phone correspondence.
Used several databases and programs simultaneously to research and correct administrative and/or service problems.
Communicated trends and problems between Medicare, Humana, and the members; often worked one-on-one with members over a long period of time to solve complex problems.

English Teacher and Arts & Humanities Teacher
7/2005 – 8/2006

John Hardin High School, Elizabethtown, KY

Taught the subjects of English and Arts & Humanities, grades 9-12. 
Managed and evaluated students both individually and corporately, provided due rewards and disciplines, created incentive for students to put forth their maximum effort, and fashioned future course-plan structures fitting for what each student hoped to accomplish post-graduation.

Maintained detailed records, keeping in constant contact with parents/guardians of 90 students at a time.
Worked with multiple teachers and departments to develop course curriculum, prepared goals and direction for our school and departments, and formed action plans fit for the individual student’s needs.

ACADEMIC RECORD

Bachelor of Arts, Philosophy, Berea College
2005

Berea GPA: 3.31
National Honors Society Member
Two Presidential Academic Excellence Awards 
Dean's list at Berea and Elizabethtown Community College
TEFL and ESL training

ADDITIONAL SKILLS AND EXPERIENCE PROFILE

Piano Accompaniment and Piano Lessons
Website design, Forum moderation, Computer network administration
Counseling and Environmental work at Aldersgate and Loucon youth camps
Intern, Law office of Miller & Durham
''[1a]''

	Hursthouse incorrectly claims that the proverbial ‘lesser of two evils’, assuming those are the only possible choices which need be considered, is actually evil in some way [Criticism #1]. The preliminary mistake which leads to this false conclusion is her severance of ‘moral decision’ and ‘moral action’ [Criticism #2]. The connective argument is that if a moral decision does not entail a moral act, then it is possible to morally choose the ‘lesser of the two evils’, but consider the corresponding act to be morally wrong. I think she argues for both the claims I am criticizing through the course of several examples and arguments, each with their own fallacies. 

	She initiates these claims by pointing out the (supposed) possibility of the options in a resolvable dilemma as not necessarily being absolutely morally right or morally wrong with respect to the other option. 

<<<
The writers (frequently unconsciously) take the dilemma to be ‘either x is the morally right act to do here (without qualification) and y is the one that’s morally wrong or y is the morally right act (without qualification), etc.’ They simply overlook the third possibility of, for example, ‘Well, they are both pretty awful, but (supposing the dilemma is resolvable) x isn’t quite as a bad as y’.<<ref "1">>  
<<<

	Here she begins to carefully sever ‘decision’ from ‘act’, as x and y are spoken of as actions but not decisions. She goes on to suggest that both x and y are “awful,” as if we should understand both of them to be evil and immoral acts. In the case of this resolvable dilemma, which can be understood to mean there is a morally correct decision, x-act is somehow less morally wrong than y-act, and in contrast to the position she opposes, she is implying that x-act is not necessarily ‘right’ despite it being the best of the acts available. Crucially, she explains: 

<<<
Suppose [a morally right act] does not come off, well, that is a pity, but still, we say, [the virtuous agents] made the ‘morally right decision’, the ‘right moral decision’; good for them.<<ref "2'>>
<<<

	Here she claims that the intention/decision is good (we can all agree to that), the act, however, has failed. We must ask: what is the moral status of the failed action? If the action succeeded, Hursthouse has no problem calling it ‘morally right action’, but Hursthouse is not inclined to praise the ‘failed’ action. I suspect that Hursthouse is implying that with the same intentions, the ‘failed action’ is less morally right than (or morally wrong compared to) the ‘successful action’. I see this as one of three ways in which she attempts to sever to the decision from the act and show how the moral status of the decision does not demonstrate the moral status of the action.

	My problem with claiming ‘the decision was right while the act may not have been to the same degree’ boils down to how I see moral decision and moral action as being two sides of the same coin for which the agent is responsible. In the above case, why and how the act ‘did not come off’ seems to me an important issue. I believe that Hursthouse must argue that the reason the act didn’t come off wasn’t for any lacking of intention to perform at the highest quality/effort on the part of the virtuous agent. If she didn’t claim this, then we could argue that the agent isn’t truly virtuous because that agent had intended to put forth less than the proper effort. So, we must assume that in this case, the virtuous agent chose to perform the act with the correct amount of effort, but the circumstances were such that the act, unfortunately, didn’t succeed. Here she would correctly claim the decision is morally right.  I disagree, however, with the idea that the morally right decision doesn’t automatically entail the morally right act. I think there is ‘successful morally right action’ and ‘failed morally right action’, but Hursthouse does not seem to agree.

	Hursthouse does not flesh out what it means for an action to ‘fail’, but she should, because understanding our psychology is vital to the virtue ethicist. I think there is much to be said about the potential of an action and what actually occurs, particularly as it is involved in how we understand an agent’s responsibility to intention and action. While Hursthouse did not explicitly state it, we must argue that the virtuous person was wise enough to have considered the probability of an action succeeding, and yet still chose the option, despite the possibility of failing.

	Perhaps I am not a skilled baker, and I have a very high chance to fail a baking assignment. Perhaps virtue ethics may require that I make my best attempt at baking a cake in some instance, even though I know I am unlikely to succeed in actually arriving at a delicious cake. If I were virtuous (obviously hypothetical), I would virtuously attempt to bake a cake with my low-baking skill, putting forth every bit of effort required, and while the actual resulting cake will likely be a failure, I still performed the virtuous action of attempting to bake a cake as best I could. We can see the difference between excellence of a practice and moral virtue in this example. I can fail because I lack excellence in the practice of baking, but I would not fail in doing what was right, namely attempting to bake as best as I could. Differently, imagine my brother, a skilled chef, was put in the same circumstance and also happened to be virtuous (again, obviously hypothetical). Perhaps he would succeed in baking a cake where I failed; however, his action isn’t morally better than mine. It is only incidental that his high-baking skill (contrasted to my awful skill) will modify the circumstances such that his morally right action of attempting to bake a cake will succeed where my morally right action inevitably failed. Now, it is also possible that even a skilled chef may fail to bake a cake not of any fault of their own either, but simply because circumstances outside the chef’s control (e.g. the gas/electricity unexpectedly went off) dictated that the resulting cake would fail. Even here the attempt is what has moral worth, not the incidental success or failure of that attempt.

	As evident from Hursthouse’s example, perhaps there is a failure rate for at least some of the actions available to an agent; appropriate judgment seems to require that the agent weighs the probabilities of outcomes to each decision in order to understand which is most virtuous. If we can’t hold that the virtuous agent was required to weigh the probabilistic consequences of decisions, then the agent doesn’t seem to really have a meaningful and morally culpable causal link between his intention and the corresponding consequences in those circumstances which do not have guaranteed outcomes. 

	If an agent is faced with absolutely known outcomes for decisions, then there is a strong sense of moral responsibility derived from the causal link from the intention to its resulting consequences. If, however, a virtuous agent finds herself in a probabilistic scenario; and if moral wisdom doesn’t include knowledge of the success/failure rates of actions; and the agent therefore is not held responsible for learning, knowing, and consulting these probability calculations - then the agent can’t be responsible for even making proper decisions in these cases, as the decisions have no meaningful connection to possible results for the agent. 

	Surely we cannot hold people responsible for choosing that which they aren’t responsible for comprehending or considering in the first place. Thus, I think we must say that the virtuous agent is morally responsible to (and, in virtue of being virtuous, does in fact) possess some degree of knowledge about the failure/success rates of possible future actions. If the agent is held responsible for this knowledge, then we can show moral culpability to the sorts of actions (attempted actions) which have probabilistic outcomes (i.e. those which an agent can ‘fail’).

	Hursthouse must claim the virtuous agent understood the probability of consequences which would result from making the morally right decision. Oddly, it seems as if she holds the agent fully responsible for all the consequences of a decision in probabilistic circumstances with failure/success rates. But why should we think the consequences of probabilistic circumstances which result from this decision and attempted action are things for which the agent can be morally responsible? I believe they simply aren’t. I agree that the agent is responsible for the probability calculation, the decision, and the attempted action which is filled with potential to either succeed or fail, but not the resulting probabilistic success or failure of the action itself. 

	I do not see how we can hold the virtuous agent (who had chosen wisely and acted as virtuously as possible) somehow responsible for these consequence of the act failing. If a virtuous act fails, I blame the probabilistic circumstance - not the virtuous agent who had chosen and acted as well as possible. To require the virtuous agent to succeed in the act which inevitably failed due to no fault of the agent is tantamount to requiring the impossible. Hursthouse has artificially inflated an agent’s moral responsibility to include those things over which their will has no power. We cannot hold persons responsible for that which is outside their control, which includes circumstances which have the final say in whether or not an action will fail or succeed. Insofar as an action is within an agent’s control and power, she is responsible for it; but insofar as the circumstances have control and power over the success and failure of the action, the agent is not responsible, and, therefore, we cannot assess it as right or wrong on the part of the agent. 

	In probabilistic scenarios, I separate the actual results (circumstantial) from the potential-filled attempted action (within the agent’s realm of moral responsibility); and while I think Hursthouse must do that, I don’t think she has. I think Hursthouse has conflated the actual resulting consequences of a probabilistic circumstance with the causing action, which merely contains potential consequences. The former we cannot be responsible for; the latter we must be responsible for. Here you can see how Hursthouse incorrectly extends an agent’s moral responsibility to include something over which he has no power. It would make sense here for her to claim that a virtuous person could make a morally correct decision, while holding that the ‘failed’ action may not have been morally correct in the same way as the ‘successful’ action. If I held her position, I would also attempt to separate decision and action. As I believe we should only be interested in the probability of failure/success rates of actions insofar as they are required in making proper moral decisions and I do not conflate the actual consequences of probabilistic circumstances with my potential-filled actions, however, I see no separation between decision and action such that one can be morally right and the other be wrong.

Hursthouse goes on to describe the case of a man who has previously created an awful resolvable circumstance whereby he must choose to break his promise to one of two women and marry the other.<<ref "3">>  Hursthouse claims that even if the man “makes, ‘the morally right decision’….He merits not praise, but blame, for having created the circumstances.”<<ref "4">> Notice how Hursthouse seems to punish the man twice for his historical wrongdoing. Here Hursthouse doesn’t directly employ the ‘failed’ action fallacy, but instead a different one which she thinks allows her to separate decision from action such that the moral status of one is not conferred to the other. Crucial to this sub-argument is Hursthouse’s temporal scope; she sums the initial choices to promise marriage to both women together with the current resolvable dilemma. 

Hursthouse runs the risk of conflating the moral status of historical choices with the moral status of future choices in terms of being one single unit of moral experience with a single moral status. I think it is vital to assess moral experience within the smallest possible units of moral judgment. If we are forced to use a broad temporal scope and provide assessment on a range of choices over time as a single unit of moral experience then we fail to exhibit how any particular choice in that range is a morally relevant choice in itself. This doesn’t mean that previous moral obligations have no impact on future moral obligations; rather, each instance of choice should be assessed on its own. The only exception would be the appearance of simultaneous choices which entail each other, such as the case where the man is fulfilling his promise to one woman and simultaneously reneging his promise to another; as both of these entail each other by the very meanings of ‘promise’ and ‘marriage’, this instance can be construed as a single unit of moral experience or judgment.

It is possible that Hursthouse is tempted to claim the decision to renege is morally wrong in itself and that the simultaneous choice to renege and fulfill promises to two different women is wrong. And, if the man were considering reneging both promises, I would agree, but he is clearly looking to do what is right here, even if, as a consequence of choosing what is right, he ends up hurting another woman. There is a logically entailed relationship between these promises and the monogamous nature of marriage, as the two marital promises are mutually exclusive in both the choices available in the resolvable dilemma, so no matter which fulfillment option is taken, to fulfill one promise is to renege the other by logical consequence (if the man could break laws of logic, he would!). Virtue ethics is already equipped to answer this sort of question though -- the Thomistic principle of double effect handily addresses this (and I’m somewhat inclined to agree with it). 

Hursthouse already claims that the decision to fulfill one promise is morally right (although the action is not considered morally right). So despite any temptation one might have to label the decision to renege as wrong, if the man is intending to fulfill a promise and merely as a the logical consequence of fulfilling a promise happens to renege on a promise to another woman, he can still be said to be making the morally correct decision. If one does not employ the principle of double effect, I’m not sure it would be reasonable to claim that the man is making a morally right decision (as Hursthouse claims he does). So, as I am almost certain she is employing some variant of the principle of double effect, we need not worry that she would claim that the man is simultaneously making the morally right decision and also the morally wrong decision; clearly Hursthouse believes the man is strictly making the morally right decision. 

I believe Hursthouse has conflated some number of independent units of moral experience into a single large one. In this example, the man’s choice to make multiple marital promises should be assessed independently of his future choice to fulfill one of these promises. My guess is that she has mistakenly carried the assessment of the man’s previous choice to promise both women (particularly the morally wrong one) over to his future choice, automatically deeming the entire set as wrong when (in reality) not all the choice-members of that (falsely conflated) set were actually wrong. 

I will agree to the fact that the man did something morally wrong when he made his promise to the second woman, but I cannot agree he is doing something wrong when he correctly fulfills one promise and logically reneges his other with these women. Hursthouse seems to think that she can separate moral choice from moral action in this instance because of how she employs a varying temporal scope. With a narrow temporal scope she points out that the man has made a morally right decision in fulfilling his promise, but then widens her scope to include the previous morally wrong decision of promising the second woman in order to say that the action in the resolvable dilemma, which is derived from the morally right choice, is somehow morally wrong because of a past moral error. This is a mistake – she must employ the same temporal scope in assessing the decision and the action. If she properly employed the temporal scope to validly explicate the moral units of experience in her example, she would see that morally correct decision does in fact cause a morally correct act. The morally wrong action the man made happened in the past, and while his past choices generated his resolvable circumstance, that past moral error does not infect the future resolvable dilemma’s morally right decision to cause a morally wrong action.

Please note that - given how Hursthouse sets up the resolvable dilemma - the man only has two options. I think this is important in the discussion of the ‘lesser of two evils’ because we must realize that this unit of moral experience/judgment is a severely limited circumstance, and that has everything to do with his moral responsibility and the appropriate territory for an ethics theory. 

If this man were to ask a virtuous agent what to do and how to be and so on, even the virtuous agent is confined to only the options of the dilemma when providing the man an answer. This is extremely important because while we want to claim that the man is responsible for the eventual dilemma coming about, he cannot be held responsible in the particular unit of moral experience for acting in a ‘good’ or ‘right’ way that isn’t possible for him to perform. 

We can’t on one hand say the dilemma has only ‘wrong’ actions and still hold him responsible for doing what is right. If there are only ‘wrong actions’ here (as Hursthouse claims), a ‘right’ action is definitionally (from the constraints of the dilemma) impossible to achieve – and for this, we cannot hold the man responsible for not performing a right action. In this sense, for Hursthouse to be willing to claim that the man does a ‘right’ action, he must do something that isn’t possible for him to do (e.g. not one of the dilemmic options: perhaps making a time machine, going back in time, and stopping himself from making the initial mistake, etc). I believe we cannot hold the man responsible for the impossible.

When we judge this unit of moral experience, it must be done specifically within the confines of the possible choices, as this would actually maintain the man’s moral culpability. To expect more than what is possible, as Hursthouse clearly does, is to extend his moral responsibility beyond the realm of possibility within the dilemma. I don’t think the realm of impossibility (even within a resolvable dilemma such as this) is something for which one can be morally culpable, and thus it is outside the realm of both moral guidance and assessment altogether. Even the virtuous agent’s choice/action is strictly within the realm of possibility and remains virtuous because the moral standard (in this case, the virtuous person himself) cannot do anything but what is possible for him to do (Hursthouse will disagree, but she shouldn’t). The unvirtuous person, likewise, must be held to a standard which is possible to achieve in order to preserve both moral responsibility, morality, and any domain whatsoever for normative ethics.

If we assume that if a decision has a moral status, the resulting action will also have a moral status (not necessarily the same one, even though I think they will); and, as Hursthouse claims, the man makes a morally right decision in the resolvable dilemma; then we know for a fact that the action will also have a moral status. If we deny that a man can be responsible for doing what is impossible, and thus explain right action and wrong action will both be explained only in terms of what it is possible for him to do, then it becomes very reasonable to claim that the morally right decision will result in the morally right action (otherwise, some ‘morally wrong decision’ would be the antecedent to the ‘morally right decision’). It does not seem that decision can be separated from action, and it does not seem as though the ‘lesser of two evils’ is really evil at all but, rather, is morally right.

Hursthouse continues her argument:

<<<
[Even] when the agent is faced with a resolvable moral dilemma through no fault of her own, the lesser of the two great evils that she decides to opt for will still not be a morally right or good act, not one that leaves her with those ‘circumstances [so] requisite to happiness’, namely ‘inward peace of mind, consciousness of integrity, [and] a satisfactory review of [her] own conduct’….On the contrary, it will, or should, leave her with some sort of ‘remainder’.<<ref "5">> 
<<<

This is a different approach to severing moral decision from moral action. The idea is that the virtuous agent opts for the right decision, but because the circumstances are especially sad (and arguably do not promote //eudaimonia//) the agent is therefore not committing a morally right act or ‘good act’. Here she introduces ‘remainder’ to show a difference between the morally wrong act of the vicious person (who would lack remainder) and the (so-called) morally wrong act of the virtuous person, particularly because she feels the virtuous person made the morally right decision (in the right, characteristic way, etc.) where the vicious did not. I see two problems in this example. Let me first address the remainder.

Oddly, she seems to think that actions which should also include a ‘remainder’ are mutually exclusive from the morally right act. I do not see why this is necessary. To posit a remainder in a ‘lesser of two evils’ dilemma is to posit not decision/act x and y, but rather x1 and x2, and y1 and y2, whereby x1 and y1 are without remainder (obviously vicious options) and x2 and y2 are with remainder. The dilemma for the virtuous agent is not whether or not she will have a remainder (as that is guaranteed) but which decision/action, x2 or y2, is morally correct, including remainder. Remainders, therefore, don’t have to be mutually exclusive from morally right action, as they are directly a part of what makes the action right and separate from what the vicious person (without remainder) might choose. Remainder is not the regret of virtuous choice and action, but rather a very strong sense of regret or sorrow for the state of circumstances over which the agent has no control. 

An agent’s psyche will be disfigured with remainder, constantly reminding her of the terrible aspect of the world which she had encountered. She is not in a position to assess what she chose and did as ‘wrong’, even if she doesn’t like the results compared to what might be possible in other circumstances – she is, however, in a position to assess the state of the world in which she lived, and that will result in great sadness, despite her virtue. I see no reason why the state of the world within a terrible resolvable dilemma, which a virtuous agent mourns deeply, should overwrite an agent’s action as being ‘wrong’. 

Besides the differentiation of the virtuous from the vicious, part of the justification for the ‘remainder’ is that the virtuous agent comes out of the ‘lesser of the evils’ dilemma extremely unhappy in such a way that it detracts from the agent’s pursuit of eudaimonia, the ‘good life’. Worth noting is that her distinction between ‘right’ and ‘good’ begins here, although she doesn’t expound on it until later. Why should we think that the virtuous decision/act should make us eudaimonically ‘happy’ outside of our contentment with having chosen/done/been as we ought for the sake of Virtue? Hursthouse is claiming that the ‘right’ action must promote eudaimonia. Let us not underestimate the magnitude of Hursthouse’s claim here because it is the very crux of her virtue ethics theory. Essentially, if an act should make us eudaimonically happy outside of having done what is right according to virtue, then it seems as if eudaimonia, rather than virtue alone (as defined by the virtuous person), is the end objective standard by which we can understand whether or not an action is right or wrong. It seems as if Hursthouse is claiming that a virtuous agent has made the correct moral decision; but because the consequences of the action make the virtuous agent eudaimonically unhappy (outside of being content with having chosen the right moral decision) the resulting action is not ‘good’ (although, oddly, somehow not ‘bad’) and therefore not ‘right’. 

Hursthouse wants to claim that ‘right action’ is a defining ingredient to ‘good action’. It seems here, in her initial explanation of the divide between ‘right’ and ‘good’, that what makes an action ‘wrong’ is that it wasn’t ‘good’. I can see how ‘wrong action’ makes for ‘failed pursuit of eudaimonia’. I do not see how ‘failed pursuit of eudaimonia’ makes for ‘wrong action’, though.  The pursuit of eudaimonia can fail for non-moral reasons and due to things which are outside the moral responsibility of agent. It seems as if ‘wrong’ should be defined by exclusively what the virtuous agent actually does, regardless of its implications to eudaimonia.

Thus, given Hursthouse’s passage above, I think it is inappropriate to judge the decision as morally right on the standard of virtue, but the action as morally wrong on the standard of eudaimonia. She needs to stick with one ethical standard of measurement or the other. In order to keep this a discussion about Virtue ethics (and  not Eudaimonic ethics), Hursthouse needs to claim that virtue ethics is the sole standard by which one judges the moral worth of decisions and actions. This, however, would require her to say that the moral status of decision entails the moral status of action. If this were the case, she would say that the virtuous decision is also the virtuous action, even in the case of the ‘lesser of two evils’.

These arguments should be a strong rebuttal to her claim:

<<<
The question, ‘Which is the morally right decision, to do x or to do y?’, is confounded with the very different question, ‘Which is the morally right action (with no qualification about remainder, the good action about which the agent need feel no regret), x or y?’ If there are no irresolvable dilemmas, the first question does not pose a false dilemma, but even if every moral dilemma is resolvable, the second certainly does, for the correct answer may well be ‘Neither’.<<ref "6">>
<<<

Clearly, I am rebutting the very notion that decision and action have independent moral statuses. Even within ‘lesser of two evils’ resolvable dilemmas, it is invalid to suggest that it is possible to have a morally correct decision but simultaneously impossible to have a morally correct action (this brings us back to the moral responsibility issue I’ve raised before). Any circumstance in which you can choose virtuously, you can subsequently act virtuously. 

Decision and action are strongly, causally entwined such that both maintain the same moral status, even if it is a decision/action which requires that the virtuous agent possess a remainder, regretting the circumstance but not the decision/action, and perhaps detracting from the agents path to eudaimonia, which I believe must be secondary to virtue if we are to maintain a virtue ethics theory. 

'' [1b]''

Let me preface this section by saying that I think the two major critiques I’ve offered are related, and I think rebuttals to one have serious implications for the other. I will offer some of the ways I think Hursthouse might rebut my second major criticism, namely the severing of action and decision.

Hursthouse may rebut part of my argument when she says:

<<<
And since one cannot decide to feel regret, and feeling regret is not an act in the required sense, [the vast majority of those who ask, ‘Which is the right act, x or y?’] thereby cut themselves off from thinking of bringing in that sort of ‘sort of remainder’.<<ref "7">>  
<<<
<<<
We seem driven to saying that when the dilemma is resolvable (and the agent is in it through no fault of her own), the only feasible emotional remainder is that the agent deeply regret the circumstances that made doing x necessary” is different from “the agent deeply regrets the circumstances that made her doing x necessary.<<ref "8">>
<<<

If remainder is not really an ‘act’ or ‘choice’, and remainder is a required result in ‘lesser of two evils’ resolvable dilemmas, she might be able to construe ‘action’ alone (without remainder) as not being ‘good enough’ and somehow wrong while the decision is right. 

Hursthouse might dogmatically and axiomatically claim that actions in themselves, outside of the contextual, possibility, and moral responsibility objections I’ve raised, are strictly right or wrong and strictly independent of choice. I can say I’m slightly tempted by this argument. It seems natural to decry the action of a ‘lesser of two evils” as being not as good as throwing my son a birthday party or having dinner with my wife. Again, this assessment must be decontextualized and ignore (what I consider to be important) aspects of moral responsibility. 

Another interesting, possible rebuttal stems from this quote:

<<<
Consider again the distinctly non-virtuous man who has induced two women to bear a child of his by convincing each that he intends to marry her, under the assumption that it would be worse to abandon A than B[…]The virtue ethics account refuses to assure him that in marrying A he would be doing ‘a morally right act—a good deed’. He will not, in marrying A, be ‘doing what a virtuous agent would, characteristically, do in the circumstances’, because no virtuous agent would have got himself into these circumstances in the first place.<<ref "9">>
<<<

If we discount the possibility of a virtuous person ever actually finding themselves in a ‘lesser of two evils’ resolvable dilemma, and essentially we claim that truly virtuous agents (from the beginning of their moral lives, continuing on) are// cosmically destined// to never be in a circumstance which might result in ‘wrong’ action (with ‘right’ decision), then we could avoid a contradiction in saying that a virtuous agent can ‘do what is wrong’ but still maintain that action and decision can be severed in cases of the unvirtuous. This, though, likely has powerful implications for anyone who has ever been unvirtuous. Of course, the virtuous agent could not give anything like meaningful ethical advice to the unvirtuous man, but that might be acceptable to Hursthouse. Here it makes slightly more sense to be able to say that, with respect to the virtuous person, right decision and action are the same thing, and there is only separation in the case of the unvirtuous. (This would, however, definitely contradict her tragic dilemmas.)
  
Hursthouse does claim the following:

<<<
[A] resolvable dilemma which arises in circumstances in which a virtuous agent might well find herself will be resolvable by a morally right decision, and what is done, such as ‘x, after much painful thought, feeling deep regret, and doing such-and-such by way of restitution’ will be assessed as morally right. Resolvable dilemmas which no virtuous agent would ever be faced with will also be resolvable by a morally right decision, but what is done will not be assessed as morally right.<<ref "10">>
<<<

This differs with any cosmic destiny argument because the virtuous agent does face supposed ‘lesser of two evils’ resolvable dilemmas. We might say that the virtuous agent simply never faces the same type of ‘lesser of two evils’ dilemmas as the unvirtuous person. This passage protects the virtuous agent from ever moving from ‘right decision’ to ‘wrong action’ in resolvable dilemmas. The distinction here is that only the unvirtuous can have ‘right decision’ lead to ‘wrong action’ in resolvable dilemmas. In this, a rightness-preserving relationship between decision and action can only belong to the virtuous.

The passage seems to indicate that ‘the way’ in which the virtuous person considers and responds to a dilemma is different from how the non-virtuous person is capable of considering and responding. Perhaps, for example, the virtuous agent’s characteristic approach is simply impossible to achieve for the unvirtuous in any particular dilemma like this. If Hursthouse is willing to throw my conception of moral responsibility out the window, and truly expects the unvirtuous agent to perform in such a way that is impossible (the exact way in which the virtuous agent does), then her theory has merit.

Perhaps the above passage is definitional in nature. In the same way that some argue that whatever God does is definitionally right (regardless of what He does), we can argue that the virtuous agent carries the same rightness-making torch. On whatever path virtuous persons may find themselves, they are automatically on the right path by definition such that even in ‘lesser of two evils’ resolvable dilemmas, the virtuous path simply cannot be wrong. This argument might amount to expanding temporal scope such that the smallest unit of moral experience would actually encompass an entire lifetime, and in this way virtuous agent can only do what is right, and the unvirtuous, despite some morally right decisions, is performing wrong action.

While I can’t find a citation for this rebuttal, if Hursthouse were to admit compatibilism (her teacher certainly did) or deny my libertarian notion of moral responsibility, it would sweep away my argument. It would be a forceful argument to claim that moral responsible has nothing to do with what is possible. In my view, if she were to admit this, it would be just as reasonable to sever decision and action, as we need no strong causal, morally responsible link between these two things. 

She might argue that an action is both wrong and right. Take the unvirtuous man with marital promises to two woman as an example - perhaps he would be ‘callous to abandon’<<ref "11">>  either one, but ‘virtuous’ to some degree in fulfilling his promise to one. I suppose degrees of virtue could make sense of this. We’d say he’s 40% right or something? I’m not convinced by such an account, but it might allow Hursthouse to separate moral decision from moral action and for even the ‘lesser of two evils’ to really be evil to some degree.

''[2a]''

According to Hursthouse, a tragic dilemma is a “situation in which the agent’s moral choice lies between x and y and there are no moral grounds for favouring doing x over doing y”<<ref "12">>  and in which “it is impossible to emerge with clean hands”<<ref "13">>  (or virtuously die<<ref "14">>) because both x and y are neither ‘acting well’ nor ‘acting badly’<<ref "15">>  but instead both x and y are characteristically vicious actions in themselves and contradictory to the nature of the virtuous person, resulting in the virtuous agent’s life being left forever ‘marred’ after performing either x or y.

''[Substantial Aspect #1]''

An extremely interesting aspect of her theory is the notion that two different virtuous agents may choose to act differently in a tragic dilemma. This is a result of tragic dilemmas being a type of irresolvable dilemma. Nonetheless, we must ask what ‘a’ (not ‘the’) virtuous agent would do in a tragic dilemma. Hursthouse explains:

<<<
Virtuous agents themselves recognize the dilemma as irresolvable, as one in which, even given their particular standards or ideals or whatever, there is no moral ground for favouring one action rather the other […Both virtuous agents] thought about [the irresolvable dilemma] carefully, conscientiously, and wisely, arriving, after much agonized thought, at the conclusion that neither decision here was the correct one.<<ref "16">>
<<<
 
Importantly, all virtuous agents recognize that there is no one correct decision. What this means is that virtuous agents are limited (Hursthouse says ‘no moral guidance’, but depending on the type of tragic irresolvable dilemma, she may be slightly overstating) in their ability to provide moral guidance in tragic dilemmas. This is different from resolvable dilemmas in which all virtuous agents actually can (and do) provide (the same) moral guidance.

This is likely one of the ‘sticking points’ for Hursthouse’s audience. She seems aware of how awkward it might seem to others to say that virtuous agents can actually perform different acts under the exact same circumstances. This is not usually how we think of the virtuous agent. I, however, think she’s right! 

While Hursthouse may find my defense/explanation of her claim too mechanistic (perhaps too close to theoretical codification to her liking), I believe it more formally captures why this substantial claim of hers is reasonable. I wish to do her claim justice, and if we might disagree on small aspects of it, I’ll explain where and why. Here is how I have tried to make sense of her claim within virtue theory.

Suppose I create an abstraction of a conversation (seeking moral guidance) with a virtuous person as the function P(Q), whereby I can ask (‘input’) a virtuous agent what I should do given an exact specification of my circumstances (or if we want to say the virtuous agent is ‘in my shoes’, that’s fine as well) such that Q-circumstance is the input to virtuous agent P in function P(Q). The virtuous agent can provide me, after characteristic contemplation and application of her moral wisdom, what single option a virtuous person would choose or, as in the case of irresolvable dilemmas, from what range of equally valued options a virtuous person must choose in my particular circumstance.

Q must include all relevant truths required by the virtuous person to make a virtuous decision, and among these circumstantial facts are the possible actions available in this particular unit of moral experience. When I write out examples of Q, I am only going to represent the list of possible decision/actions (we need not separate them as Hursthouse thinks) -- we’re simply going to assume the other facts which describe the circumstance are also contained in that list, but I won’t be writing them all out because they aren’t necessary to represent for the rest of the discussion. So Q = [a1, a2, a3, a4, a5] means that within a particular world or circumstance Q, I have 5 mutually exclusive options/actions available (presumably, 5 is a severe underestimation in most cases).

If we input Q into function P(Q), and P([a1, a2, a3, a4, a5]) = a2, where a2 is the resulting output of the input Q into that function P, then we are saying that if I asked a virtuous agent (P) what one ought to do in a given circumstance (Q), which we both understand to have only 5 possible options, [a1, a2, a3, a4, a5], that the agent is telling me to do a2 because it is the virtuous option. It is the case that a2 is the morally right option in this particular world Q. Note that I could have this particular conversation with any number of virtuous agents, and a2 would always be the answer I receive, and, it would also be the option that any virtuous agent would choose/be/act in Q.

What it means to be in an irresolvable moral dilemma is to have something more complex than an atomic answer like a2; instead, a virtuous agent’s answer must be a range of options which the virtuous agent believes to be equally valued given world Q. When this happens, the virtuous function/agent can provide no moral grounds to choose between members of the dilemmic set. So, P([a1, a2, a3, a4, a5]) = [a2, a3] is the equivalent of the virtuous agent coming to realize (and expressing to me) that given world Q with options [a1, a2, a3, a4, a5], there is an irresolvable dilemma between a2 and a3. Any selection from the dilemmic set [a2, a3] is morally ‘better’ (I prefer ‘right’, but because the word is controversial in Hursthouse’s theory, I’ll use the weaker word ‘better’ here) compared to the other options in Q, namely [a1, a4, a5]. However, a2 with respect to a3 (and vice versa) is //amoral//; [a2, a3] forms the dilemma, and its members are equally valued by the virtuous agent.  There is no moral guidance as to whether one should choose either a2 or a3, but there is still moral guidance when the virtuous agent tells me I should either choose a2 or a3 //instead //of a1, a4, or a5.

The dilemmic set [a2, a3] is therefore morally right with respect to Q,[a1, a2, a3, a4, a5], but the members of [a2, a3] are amoral with respect to each other. We know this because if we ask the virtuous agent, after she has told us that we ought to perform either a2 or a3 from Q, which we should do - a2 or a3 - she cannot provide a different answer. This is equivalent to removing [a1, a4, a5] from Q, such that Q’ = [a2, a3], resulting in P([a2, a3]) = [a2, a3]. This equation describes us asking the virtuous agent whether to do a2 or a3 given our circumstance Q’ (a reduced and hypothetical form of Q) and the virtuous agent is saying she doesn’t know which one to choose. To say a moral function provides no answer (or no different answer than the input), or to say that the virtuous person has no moral grounds on which to choose either a2 or a3 in Q’, is the same thing as saying this is an amoral question. 

Now, clearly, the virtuous agent’s narrowing down of [a1, a2, a3, a4, a5] to either an atomic (a2) or a dilemmic set ([a2, a3]) shows that virtue ethics has something to say about world Q, and thus, in this respect, it is real question in the realm of morality. But, if one receives a dilemmic set answer from a virtuous agent, to go on and ask a second question, namely should we choose a2 or a3 from dilemmic set [a2, a3], we would receive either the same answer, [a2, a3], or a simple ‘I do not know which one to choose’ from the virtuous agent, showing this is an amoral question, one in which virtue ethics can offer no moral guidance. 

So, there is moral guidance and moral assessment in P([a1, a2, a3, a4, a5])=[a2, a3]; but there is no moral guidance (although there is indirect moral assessment) when we ask our second question, inputting Q’, P([a2, a3]) = [a2, a3]. The second question is amoral, but since the dilemmic set has been selected by the virtuous agent from a larger set of options in question one, namely Q, and our second is a reduced, hypothetical version of Q, namely Q’; we can say that choosing either a2 or a3 (and not a1, a4, or a5) will be the virtuous thing to do, we just can’t say there are any moral reasons to choose a2 with respect to a3, or vice versa. Here we can awkwardly (but rightly) claim that the secondary amoral question has no action guidance, but in light of the moral guidance that narrowed Q to a dilemmic set in the first question, there is action assessment (something Hursthouse should agree to).

We should also point out that while the word ‘dilemma’ suggests only two equal options, we can account for more than 2 equal options in this approach (e.g. P([a1, a2, a3, a4, a5])=[a1, a3, a4]).

Now, we might ask what it means if we weren’t reducing Q in the form of a second moral guidance question (Q’) and, in fact, our only options in an actual Q were truly dilemmic. E.g. P([a1, a2, a3] = [a1, a2, a3]. This, then, definitionally, is an amoral question. I’m not positing such a thing actually exists, but we can account for it. Similarly, we need not believe that irresolvable dilemmas actually exist (and I personally think a truly irresolvable dilemma, tragic or pleasant, is extraordinarily difficult to construct), such that a virtuous function would ever tell us that a circumstance had more than one right answer; but this explanation can account for them if they do exist. 

I personally don’t believe there actually exists any such class of Q which is innately amoral (where the options in an actual Q are the same as the output of P) because I ideally think that an initial libertarian choice automatically entails a moral question (that is the point of freewill). I suggest that innately amoral dilemmas have no action guidance or assessment at all (unlike the secondary class derived from astarting moral question). Even if I’m right, this will not contradict the possibility of amoral questions being asked within the dilemmic set which has been selected from a larger body of options because the selection of the dilemmic set from the larger initial set in Q is itself the moral choice.

Hursthouse may disagree with my perspective here, though. She may believe her example irresolvable dilemmas to be this sort of innately dilemmic Q’s, but somehow not actually amoral. I’m not sure how we can talk about these as moral questions, if that is the case. Unfortunately, it appears as though Hursthouse could be saying in her tragic irresolvable dilemmas argument that virtuous agents would label what I deem innately amoral dilemmas as moral dilemmas such that P(Q) is not the real definition of whether or not a question is moral or amoral. Even though there is no moral choice to make here, she might be tempted to say it is still a moral question. Thus, we may differ on whether or not it is reasonable to think that there is moral assessment outside of what is possible – particularly that in tragic dilemmas, what is ‘right’ is strictly impossible, and I’m unwilling to label the impossible as being ‘moral’ or something for which we can be morally responsible. I cannot her defend her there (if she would make that argument), but I can defend the possibility of two virtuous agents selecting different options.

For example, I might ask a virtuous person whether or not I should buy a car from a particular car dealer’s lot containing several of the exact same vehicles but in different colors. Perhaps the virtuous agent will tell me I should buy a car from that lot, but also tells me the color doesn’t matter. Even when I ask a follow-up question, ‘which color car should I choose?’ the virtuous agent has absolutely no guidance to provide me (other than that I should buy a car from this lot). What my virtuous guide is telling me is that if two virtuous agents were in this situation, one might buy a red car, and the other a blue car, and both would have done what is morally right. So, the choosing of the color of the car is amoral; the buying of a car from that lot, however, is morally assessable. Note that in buying either the red or the blue car, I’m still performing a moral act with respect to the question, ‘Should I buy a car from this lot?’, but, simultaneously, I am performing the amoral act of selecting the color. The moral and secondary amoral experiences are simultaneous, such that, while the overall question is morally relevant (as I am morally responsible to choose from that range, and ultimately whether or not I buy a car at all), there is a hidden, secondary amoral question resulting as a dilemmic set from any virtuous person’s answer to my first question, and this sort of ‘choice’ is one in which a moral theory has no dominion.

This seems to match very closely (with some differences regarding ‘right’ and ‘good’ which I will respond to later) the conclusions which Hursthouse will reach regarding how and why it is the case that virtuous agents can and will choose different options in an irresolvable dilemma, including tragic dilemmas. Importantly, as Hursthouse points out, the virtuous agents do recognize that this is an irresolvable dilemma – that is, they know the output to P(Q) is a range.  Given my understanding, then, I have no problem saying that two virtuous people take different options in a truly irresolvable dilemma. Frankly, the virtuous agents could simply flip a coin as to which particular option they choose from the dilemmic set, as it is an amoral question (this does not mean they took lightly the deliberation which led them to understand this to be an irresolvable dilemma - far from it). Within the confines of the dilemmic set, virtue (or any approach as far as I can see) as a theory provides no reason to choose either member over the other. (I think it is worth noting that this approach might also be applicable for many variants of deontology and utility such that they may fair no worse than virtue ethics in how they handle ‘irresolvable dilemmas’.)  

''[Substantial Aspect #2]''

Hursthouse differentiates ‘good’ from ‘right’. This may seem obvious to some, but, frankly, I don’t think it is so obvious at all. There are tons of implications to this distinction, and they are very prominent within Hursthouse’s explanation of tragic dilemmas. I need to carefully show what she means in this distinction because my epicentral criticism is founded in my disagreement with her on this issue (so please be patient).

In the discussion of tragic dilemmas and how two virtuous agents can choose different options, Hursthouse unfolds her grander argument for the distinction between ‘good’ and ‘right’. She says of virtuous agents in tragic dilemmas:

<<<
But here it seems to be quite inappropriate to say that each acts well, mirroring the fact (I take it to be a fact) that it is quite inappropriate to say, with respect to tragic irresolvable dilemmas, that both agents do what is right. If anything, the temptation is to say that both do what is wrong. So it looks as though I am going to be forced to say that both agents act badly.<<ref "17">> 
<<<

She defends the virtuous agent’s manner of acting (saving the argument from a possible contradiction) by saying:

<<<
The charitable, honest, just agent, even when faced with a tragic dilemma, does not act callously, dishonestly, unjustly, that is ‘as (in the manner) the callous, dishonest, unjust agent does’. She acts with immense regret and pain instead of indifferently or gladly, as the callous or dishonest or unjust one does. So we are not forced to say that the virtuous agents faced with tragic dilemmas act badly. They don’t; it is the vicious who act badly.<<ref "18">>
<<<

Thus, we can say that the virtuous agent within a tragic dilemma acted neither ‘well’ nor ‘badly’. These words are helping us identify Hursthouse’s conception of ‘goodness’ (‘well’ = ‘good’) as distinct from ‘rightness’. She explains that the virtuous agent does what is ‘wrong’ in tragic dilemmas, and are thus said to have not acted ‘well’. The virtuous agent’s saving grace, however, is that she is nothing like the vicious, as evidenced by an overpowering sense of regret and anguish (remainder). The virtuous agent takes an extreme displeasure (unlike the vicious) in performing a ‘wrong act’, truly against the agent’s virtuous nature and character; and thus, Hursthouse explains, while they are doing what is ‘morally wrong’ they are not ‘acting badly’. So, the virtuous way in which a virtuous agent acted defines the act as not being ‘bad’, but because she didn’t ‘act well’ her act is ‘wrong’. I am unsure of the status of virtue in this section. It seems as if virtue defines ‘bad action’ and partially ‘morally right action’, not eudaimonia; but then eudaimonia mostly defines ‘good action’ and ‘morally wrong action’, not virtue. 

The virtuous agent emerges from a tragic dilemma as “having done a terrible thing, the very sort of thing that the callous, dishonest, unjust, or in general vicious agent would characteristically do.…hence it will not be possible to say that she has acted well”.  She didn’t act badly, but she didn’t act well. The result is having her life ‘marred’. (Quite a word!) A marred life cannot be recovered. Hursthouse terms it a tragic dilemma because even the virtuous agent is forced to do something which is morally wrong and fails to ‘act well’ (even if they do not ‘act badly’). So, her new definition of a right action looks like:

<<<
An action is right iff it is what a virtuous agent would, characteristically, do in the circumstances, except for tragic dilemmas, in which a decision is right iff it is what such an agent would decide, but the action decided upon may be too terrible to be called ‘right’ or ‘good’.<<ref "20">>
<<<

The marred life is a ‘good life’ which has been ruined due to a tragic dilemma. Again, ‘good act’ is synonymous with ‘acting well’ just as ‘good life’ is synonymous with having ‘lived well’. One might say the remainder of a tragic dilemma is a forever marred life. 

Note that in normal circumstances, pleasant resolvable dilemmas, and pleasant irresolvable dilemmas, the virtuous agent makes ‘morally right decisions’ and performs ‘morally right actions’ and can also be understood to have ‘acted well’. In ‘lesser of two evils’ resolvable dilemmas the virtuous agent makes ‘morally right decisions’ and performs ‘morally right actions’ but may not necessarily be understood to have ‘acted well’ although certainly not ‘badly’ (the good/bad question wasn’t strongly answered for this case). In tragic irresolvable dilemmas, the virtuous agent makes ‘morally right decisions’, but is said to have performed ‘morally wrong actions’, and understood to have neither ‘acted well’ nor ‘acted badly’ and instead to have had her life ‘marred’. 

So, a virtuous person always makes the ‘morally right decision’, but doesn’t necessarily perform the ‘morally right action’. When a virtuous agent is not performing a ‘morally right action’, we see she isn’t ‘acting well’ and that her life is ‘marred’.
 
Hursthouse continues in her argument:

<<<
’good action’ is not merely a surrogate for ‘right action’, nor is it simply determined by ‘action of the virtuous agent’. Virtue ethics does not hold that actions are good, bad, or indifferent, as some people hold that actions are right, wrong, or permissible; nor does it call what the virtuous agent does (for the most part) ‘good action’ for want of any other phrase. ‘Good action’ is so called advisedly, and although it is conceptually linked to morally correct (right) decision and to ‘action of the virtuous agent’, it is also conceptually linked to ‘good life’ and eudaimonia.<<ref "21">>
<<<

This is a vital passage in her explanation of ‘right’ and ‘good’, and ‘wrong’ and ‘bad’. ‘Good action’ then must be understood in terms of a virtuous agent performing not only both ‘morally right decision’ and ‘morally right action’, but also in terms of how the action (not the decision) promotes the ‘good life’ and eudaimonia. Clearly, ‘right’ is different from ‘good’ because ‘right’ does not describe the full meaning of ‘good’ to Hursthouse. The ‘rightness’ of an action is only one ingredient to the ‘goodness’ of an action. The missing ingredient to the ‘goodness’ of an action is its eudaimonic preserving and promoting properties. 

Insofar as the virtuous agent has effectively pursued and maintained the ‘good life’, she can be said to have not encountered tragic dilemmas (a result of ‘moral luck’), to have exclusively ‘acted well’ or performed ‘good actions’ in her life, and as a part of that eudaimonic life equation, she used her virtuous character to make ‘morally correct decisions’ and perform ‘morally right acts’. 

Beyond issues of what it means for Hursthouse to distinguish ‘morally right decision’ from ‘morally right action’, we can see another power at work in her theory of ethics. It seems as if the virtuous agent isn’t just pursuing what is ‘right’, but much more - particularly what is ‘good’. Hursthouse is explaining that ‘right’ isn’t necessarily ‘good’ enough. This has several ramifications to virtue theory. She goes on to explain what it means to be a virtuous agent given her conception of ‘good’ and ‘right’:

<<<
What constitutes the (true) good of others, and when life is and is not a good, are amongst the things that the virtuous person knows and can recognize, but they are so not because she recognizes them but because of facts about human nature.<<ref "22">>
<<<

So, the virtuous agent has the knowledge of what makes a ‘good life’. The virtuous person recognizes ‘good’ and realizes that this is separate from ‘right’. The virtuous person does ‘right’ in the pursuit of ‘good’. 

Given her distinction, she also goes on to disown the notion that “character has primacy over action”<<ref 23">>  within virtue ethics insofar as tragic dilemmas are concerned, or more specifically, insofar as the ‘right’ is not the ‘good’. As Hursthouse sees it: 

<<<
No virtue ethics inspired by Aristotle is committed to a reductive definition of the concepts of good and evil in terms of that of the virtuous agent, only to maintaining a close connection between them.<<ref "24">>
<<<

This is a powerful statement, in my view. She is saying that the ‘good’ in Virtue ethics is not exclusively defined by the ‘virtuous agent’ or the ‘virtues’ themselves.

''[Epicentral Criticism]''

As in the previous question, I have a substantial problem with Hursthouse’s distinction between ‘good’ and ‘right’ as being different moral standards by which we can assess an agent’s actions such that the moral status of actions are severed from the status of decisions. The root problem of Hursthouse’s theory is that she applies two different standards of ethics, eudaimonia and the virtuous person. 

It does seem that Hursthouse will claim that ‘morally right decision’ (and moral guidance) is entirely defined by the virtuous person. But, when we get to ‘action’, a mixed set of standards are applied. Because of how she negotiates action assessment in a multitude of terms - ‘good’, bad’, ‘wrong’, and ‘right - we can see that the ‘eudaimonic persons’ are ‘virtuous persons’, but not all ‘virtuous persons’ are ‘eudaimonic persons’. Where the latter occurs, she wishes to relabel ‘virtuous’ as ‘marred’ and, in my eyes, ‘unvirtuous’ (because they do what is morally wrong!).

In the tragic dilemma, the virtuous person is held to the standard of virtue by not having performed ‘bad action’ (oddly, this is a eudaimonic term) because they performed the act in a virtuous manner. The virtuous person is then held to the standard of eudaimonia by not having performed a ‘good action’ because the action is not promoting the ‘good life’. Why should virtue be the standard for ‘bad action’ but not ‘good action’?  Hursthouse denies the natural inclination to say that the virtuous person does what is right, and instead, because of how she applies the eudaimonic standard, the virtuous agent is said to have performed ‘wrong action’ in light of it being ‘not good action’ - which somehow isn’t the same as ‘bad’) and provides us with a flashy middle term - ‘marred’. Wouldn’t ‘bad action’ (and nothing else) be exactly that which leads to the ‘non-good’ or ‘bad’ or ‘marred’ or ‘un-eudaimonic’ life? The problem is that ‘not good action’ somehow translates into ‘morally wrong action’ – I don’t see why. 

I can understand ‘morally wrong action’ leading to ‘bad action’ and the ‘bad life’. I can understand ‘morally right action’ leading to ‘good action’ and the ‘good life’. I can also understand (as Hursthouse does not seem to) ‘morally right action’ leading to ‘bad action’ and the ‘bad life’. These sentences employ virtue ethics as the sole domain of moral assessment, and it is mere happenstance that how one defines the ‘good life’ can only be achieved through morally correct action, but even if you do not live the ‘good life’, I don’t see why one must say you haven’t performed morally right action. 

As far as I can tell, if Hursthouse refuses to play fairly, using a single standard (virtue), then her theory of ethics collapses into eudaimonic ethics, which frankly sounds a lot like utility. One should perform those things which maximize the eudaimonic brand of happiness, etc. Even in Utility, people have maximum ‘caps’ to the ‘happiness’ that can be achieved, and it would be asinine to expect them to ever attain more from a moral standpoint. Eudaimonic ethics seems an outright impossible standard and a non-starter from the get go. Now, if virtue ethics is to remain a distinctive and unique theory of ethics, it cannot rely upon any application of the eudaimonic standard in moral assessment. To do this will require that her theory define ‘right’ and ‘wrong’ solely in terms of the virtuous person. 

So, even in tragic dilemmas, Hursthouse would need to say that the virtuous agent made a morally correct decision and performed a morally correct act (as these are the things a virtuous agent characteristically chooses and performs); and, incidentally, woe unto the virtuous agent because she will be ‘marred’ with a remainder that prevents her from living a eudaimonically happy life. Nonetheless, the agent is virtuous and has done nothing immoral.

''[2b]''

Let me be forthcoming, I’m not sure how Hursthouse can defend against this criticism (I wouldn’t have levied it as an epicentral criticism if I thought it was easy to rebut). 

She might accuse me of this:

<<<
One might try to wriggle out of this problem by putting a loaded interpretation on ‘characteristically’. Suppose that the right decision is to kill someone, or let them die, to betray a trust, to break a terribly serious promise. That is what the virtuous agent does—in the circumstances. But, given that they are charitable, true to their word, just, do they not act ‘uncharacteristically’, out of character, when they do these terrible things?<<ref "25">>
<<<

But I think my contention isn’t this, as I’m convinced the virtuous person characteristically will do what she calls ‘wrong’ in tragic dilemmas. 

I think she really wants to argue against what I’ve said by claiming that actions, independent of possibility and context, are innately wrong and right as they relate to eudaimonia. She wants to say that eudaimonia is good outside of whether one can possibly pursue it. Of course, this form of denying moral responsibility would allow her to bypass my criticism. 

Hursthouse really would not appreciate my hardline view of ‘right’ and ‘good’ as not being distinct in the end (both are ‘worth pursuing’ and the object of ‘ought’ or ‘should’). At best, one might say that the ‘right’ things are a means to the ‘good’ (but I see this only as a preliminary separation). The ‘good’ here, then, is the first ‘right’ or the primal valuable thing worth pursing and all other ‘right’ pursuits are born of the first. So, the means to an end, as the path to the ‘good’, become part of the ‘good’ in themselves I would say. She would want to strongly point out that the casual path is incidental, and these secondary ‘rights’ are thus distinct from ‘good’ as being incidental ‘oughts’. So, ‘right’ would be a much weaker word in a sense for her than for me. Even with no possible path, the ‘good’ remains what you ‘ought’ to pursue in her eyes. Again, she would need to say that we should pursue eudaimonia even where it is impossible and hold us accountable for ‘moral luck’. 

Lastly, it would be a forceful argument to explicitly claim that eudaimonia has primacy to character (which she alludes to, but does not state). Yes, this would be along the lines of Virtue ethics no longer being about the virtuous person, only indirectly linked. Perhaps it is just incidental that characters traits are the way she wants to help us understand what comprises the eudaimonic person. 

''[3]''

Aristotle used the word arete, meaning excellence, to describe virtue. This isn’t exactly what we usually mean by ‘virtue’ though because aretaic practices included more than morality. We really mean moral excellence and //moral virtue//, which Aristotle describes as //aretai ethikai//. Foot holds (no pun intended) there are “four cardinal moral virtues: courage, temperance, wisdom, and justice,”<<ref "26">>  which differs from the traditional Aristotelian and Thomistic belief that only three of these are moral virtues. The traditional approach labels wisdom or ‘practical wisdom’ as being an intellectual virtue which remains separate from but still related to the moral virtues.

Foot is claiming that wisdom is part intellectual virtue and part moral virtue. Let’s start with the most important one: What makes something a moral virtue? 

Foot explains that “virtues are, in some general way, beneficial.”<<ref "27">>  Who benefits from the virtues: the virtuous, those surrounding the virtuous, or all of them? Foot says, “courage, temperance and wisdom benefit both the person who has these dispositions and other people as well.”  Depending on how you look at justice (the missing cardinal virtue from that list), it may or may not detract from the possessor, but we know it benefits those surrounding the possessor. Justice is also complicated because it may interfere with the common human good, given the nature of rights and duties which accompany the virtue. 

Of course, not every quality which is beneficial is said to be a virtue.<<ref "29">>  Certain biological and evolutionary features seem to be beneficial to persons, but they aren’t the sorts of qualities for which individuals are generally responsible. What separates the non-moral beneficent qualities from the moral virtues is the will. All things which an agent wills (or should will) are things for which they are responsible, unlike non-moral beneficent (and malevolent) qualities. Since moral responsibility stems from an agent’s (I would argue, but Foot doesn’t, “free”) will, and because the virtues and the cultivation of virtuous character are the sorts of beneficial things for which we are responsible, it can be said that “Virtue belongs to the will.”<<ref "30">>  As Foot explains, “Virtue is not, like a skill or an art, a mere capacity: it must actually engage the will.”<<ref "31">>   Virtue, then, isn’t something that can be exclusively genetic, but rather it must contain elements of will, and must be chosen, acted upon and habituated. Oddly, one must also say that virtue is the sort of disposition and inclination from which we enact our will. The way in which these dispositions are habituated must be related to the will, and the way in which one employs these dispositions in a final choice is also important. Consider this illustration:

<<<
Paul stood passively as Kynes inspects the suit. It had been an odd sensation putting on the crinkling, slick-surfaced garment. In his foreconsciousness had been the absolute knowledge that he had never before worn a stillsuit. Yet, each motion of ajudsting theadhesion tabs under Gurner’s inexpert guidance had seemed natural, instinctive. When he had tightened the chest to gain maximum pumping action from the motion of breathing, he had known what he did and why. When he had fitted the neck and forehead tabs tightly, he had known it was to prevent friction blisters. 
Kynes straightened, stepped back with a puzzled expression. “You’ve worn a stillsuit before?” he asked.
		“This is the first time.”
		“Then someone adjusted it for you?”
		“No.”
		Your desert boots are fitted slip-fashion at the ankles. Who told you to do that?”
		“It . . . seemed the right way.”<<ref "32">>
<<<

One must contend with Paul’s natural, instinctive disposition to clothe himself for proper survival in an extreme desert. He isn’t genetically superior in his ability to retain water, he is superior in his natural inclination to wear the stillsuit (the object which will save his life and indirectly benefit others in this story) correctly and to know how to survive and live well on the desert planet. What he wills in this story is beneficial, and thus, it might be said to be a result of some strain of moral virtue.

With that said, what is the will? Foot describes will in terms of desire, intention, attitude, and perhaps spirit.<<ref "33">>  As she puts it, the will “cover[s] what is wished for as well as what is sought.”<<ref "34">>  Virtuous agents actively seek out opportunities to do good deeds and to be virtuous. They do not sit passively intending to do what is right; they will to be virtuous with no “deficiency of motivation.”<<ref "35">>  Virtuous agents leap at the chance to employ the virtues, their deepest desires and hopes are virtuous, and their deepest fears and what they hope to prevent are the vices. 

Importantly, Foot sees the virtues as being corrective of the vices, and she posits “If human nature had been different there would have been no need of a corrective disposition.”<<ref "36">>  We are forced to ask questions like: Are we born vicious? Are these the sorts of things for which we are responsible? Can you be responsible for your own nature? If the vices are imbued in human nature, and we aren’t responsible for our human nature, then it seems as if the vices are psychological states for which we aren’t entirely responsible. It seems that Foot’s understanding of vice does not employ the will to the same extent as her understanding of virtue. If one can accept the theory of compatibilism (I don’t), then I am making a fuss about nothing here; if you reject compatibilism, however, then Foot’s argument has a serious contradiction (again, one based in what it means to be morally responsible for both vice and virtue).

I believe the will is the portion of an agent’s psychological makeup for which she is responsible (and nature isn’t); essentially, I embrace freewill as the necessary precursor to any coherent discussion of ethics. It is here that Foot may disagree with me. She denies freewill and embraces compatibilism, which is the idea that the will, as a cause of moral responsibility, is compatible with physical determinism – the will need not be ‘free’ in her conception.

The movie //The Terminator// exemplifies my point here. Briefly, an artificial intelligence network called Skynet becomes ‘self-aware’ and starts a nuclear holocaust of mankind. Skynet develops post-apocalyptic machines (terminators) to go back in time to terminate Sarah Connor, who, left alive, will eventually enable man’s resistance to the apocalypse initiated by Skynet. Skynet is considered ‘evil’ in this story by many, but not by me. From my perspective, even if Skynet and the terminators displayed some form of ‘awareness’ and ‘reason’, because these computers and machines were bound by the laws of physics, they lack true autonomy, they lack freewill, thus aren’t morally responsible, and therefore they have done neither ‘evil’ nor ‘good’ in trying to end Sarah Connor’s life or initiate the nuclear holocaust. I would say that the engineers (and stockholders) of Cyberdyne Systems which developed and employed the microprocessor that formed the basis of Skynet are the responsible parties for the future nuclear holocaust. Skynet and the army of terminators had no ‘real’ choice to do otherwise. Skynet was just a very advanced box of electronic and quantum billiard balls connecting with other billiard balls, fully bound and described by the laws of physics, fully deterministic and not responsible for what happens. No matter how human the terminators become, they lack libertarian freewill, and thus to find who is morally responsible for the ‘evil’ of the nuclear holocaust, we must go back in the deterministic causal chain until we reach the sort of freewill choices that led to Skynet and the terminators, and that would be the engineers and stockholders of Cyberdyne Systems.

Foot’s disagreement on the issue of compatibilism would amount to holding Skynet morally responsible. She would need to call Skynet’s and the terminators’ deterministic circuits a will. Assuming I am at an impasse with Foot on this issue, let us move on with her theory.

With a conception of the beneficial will as the root of the virtues, Foot goes on to describe the cardinal virtue of wisdom as making the relationship between the other moral virtues and the will as complex and difficult to define. Foot explains:

<<<
Practical wisdom, we said, was counted by Aristotle among the intellectual virtues, and while our wisdom is not quite the same as phronesis or prudentia, it too might seem to belong to the intellect rather than the will. Is not wisdom a matter of knowledge, and how can knowledge be a matter of intention or desire? The answer is that it isn’t, so that there is good reason for thinking of wisdom as an intellectual virtue. But on the other hand wisdom has special connections with the will, meeting it at more than one point.”<<ref "37">> 
<<<

Intellectual virtues are concerned with knowledge. Foot explains that knowledge is not a matter of intention or desire. So, intellectual virtues are not easily related to intention and desire, which means intellectual virtues are not easily related to the will. On one hand, Foot wants to say that the intellect and the will are separate, but because of wisdom, which seems to have a stake in both intellectual and moral virtues, she wants to say that the intellect and will are very related. Foot continues:

<<<
Wisdom, as I see it, has two parts. In the first place the wise man knows the means to certain good ends; and secondly he knows how much particular ends are worth.”<<ref "38">>
<<<

The wise agent obviously needs certain sorts of knowledge. Wisdom includes knowledge of which ends are valuable, good ends belonging to human life.<<ref "39">>  Foot continues:

<<<
Wisdom is to be contrasted with cleverness because cleverness is the ability to take the right steps to any end, whereas wisdom is related only to good ends, and to human life in general rather than to the ends of particular arts.<<ref "40">>
<<<
 
Foot is describing wisdom as including the knowledge of ‘how to act well’ and how to achieve the good ends in the virtuous manner. Cleverness does not fit the bill. A virtuous agent and a non-virtuous clever agent may (incidentally) have the same end, but how they go about arriving at that end and the sorts choices they make to bring about that end may very well differ because it is the virtuous character which defines the moral path to that end for the virtuous agent, not cleverness or efficiency or anything else.

Wisdom isn’t just about knowledge; it is also that which one must will. As Foot puts it, wisdom “presupposes good ends: the man who is wise does not merely know how to do good things…but must also want to do them.”<<ref "41">>  It is perfectly imaginable for a man, for instance, to know how to do the virtuous thing and yet choose not to do it.  Dostoevsky illustrates this concept in //The Brothers Karamazov//:

<<<
Is there in the whole world a being who would have the right to forgive and could forgive? I don't want harmony. From love for humanity I don't want it. I would rather be left with the unavenged suffering. I would rather remain with my unavenged suffering and unsatisfied indignation, even if I were wrong. Besides, too high a price is asked for harmony; it's beyond our means to pay so much to enter on it. And so I hasten to give back my entrance ticket, and if I am an honest man I am bound to give it back as soon as possible. And that I am doing. It's not God that I don't accept, Alyosha, only I most respectfully return him the ticket.<<ref "42">>
<<<

Additionally, “Wisdom, in so far as it consists of knowledge which anyone can gain in the course of an ordinary life, is available to anyone who really wants [or wills for] it.”<<ref "43">>  Foot also describes the foolish man as having ‘false values’ stemming from ‘false judgment’ and so, conversely, wisdom is “partly to be described in terms of apprehension, and even judgment, but since it has to do with a man’s attachments it also characterizes the will.”<<ref "44">>
 
Let me first point out that Foot is claiming that moral virtue “must be within the reach of anyone who really wants it.”<<ref "45">>   And, since she thinks wisdom is a moral virtue, she believes that wisdom must be within the reach of anyone who truly seeks it out. That is a lot of knowledge, in my opinion. Given the limitations of many human adults, we should note how we are forced to draw the line of ‘moral agency’ to fit the condition that moral virtue is ‘within reach of anyone’. Essentially, I question the magnitude of the word ‘anyone’, as it is likely more limited in this passage than many are willing to accept. For example, I believe my child has some degree of wisdom but not all wisdom is within her reach at this point. Still, I don’t want to discount her as some non-agent because she doesn’t meet the condition which Foot has set out. It seems better for an account of ethics to allow for degrees of moral responsibility that scale with intellectual capacity, and that doesn’t seem possible in Foot’s account.

Wisdom is part knowledge and part ‘will’, and so it seems as though wisdom is both an intellectual and a moral virtue. While many might wish to attack Foot’s conflation of desire with will, I don’t think I truly know enough about our minds to counter it. So, in charity, I’m going to assume that ‘desire’, insofar as I am responsible for it, and insofar as it affects what I intend, is something which I ‘will’. This, of course, is not an adequate account of ‘will’ entirely, but it is in keeping with the essential point that will is the capacity which enables our moral responsibility.

One realm where the relationship between emotions, desires, wisdom, will, and reason all collide is what it means for a virtuous person to have ‘moral motivation’ and its impact on the ‘moral worth’ or our assessment of an agent’s unit of moral experience. I think this isn’t such an easy topic. For example, on one hand we expect that choosing and performing virtuously should be obvious for the virtuous agent, but, in turn, we might somehow be less impressed in our assessment of the resulting decision/action because the virtuous agent seemed inclined to do what is virtuous, as if it were too easy, and didn’t really have to ‘work’ or exercise reason and autonomy (to a great extent) to be virtuous in that instance. One may be tempted to assess the moral worth of a decision/action by its relative difficulty for an agent to achieve. This may follow that adage, “to whom much is given, much is required.” We are tempted to have one set of expectations of the virtuous (because it is easy for them to do what is right) and another set of expectations of the unvirtuous (because it is so hard for them to do what is right); it is the temptation to judge the virtuous and unvirtuous differently, even for the same sort of act. The moral worth of doing what is virtuous for the unvirtuous is quite an accomplishment; it is the sort of moral and psychological experience we want to applaud above and beyond a virtuous person might experience in the same situation. Of course, the obvious retort to this temptation: if we mean by ‘moral motivation’ simply ‘what I desired’, and if struggling to be virtuous demonstrates that I don’t want what is morally right, then I as a person and my act simply aren’t as good as the virtuous agent and her act because she is gladly virtuous. 

The role of reason in will is also exceptionally important here. Insofar as agents might be driven by animalistic desires or inclinations for which they can’t control in the moment, we may want to say (although it isn’t exactly clear where the virtue ethicist stands on this issue) then these agents aren’t performing actions of moral worth. If we performed the right action because we employed our reason within will, then it seems intuitively true that this is the sort of actions which can have moral worth. 

Lastly, I don’t know to what extent wisdom is incorporated into each of the virtues and to what extent wisdom is unique and distinct from the other moral virtues. You are not supposed to claim ignorance in papers, but I honestly know neither how we should describe the landscape of the psychological crossroads of will, reason, and desire, nor exactly how wisdom (as a ‘fine-tuning’ process) relates to the other moral virtues. I want to recognize they are important questions, though.

In conclusion, I’m sympathetic to much of what Foot has to say. Moral virtues are exercised by the will. Wisdom is a moral virtue, and thus it is in some degree exercised by the will. Wisdom has cognitive value to interpreting, understanding, inferring, and applying the other moral virtues, and, in this sense, wisdom is of the intellect and reason. It seems as if we are responsible for choosing to perform moral reasoning, and, in this sense, wisdom is of the will. In the end, I’m led to believe that virtue ethics has the greatest need (of the various approaches) to understand and define the psychological nature of moral agents.

--------------------

<<footnotes "1" "Rosalind Hursthouse, //On Virtue Ethics// (Oxford: Oxford University Press, 2001), 47">>
<<footnotes "2" "Ibid., 46">>
<<footnotes "3" "Ibid., 46-47">>
<<footnotes "4" "Ibid., 47">>
<<footnotes "5" "Ibid., 47">>
<<footnotes "6" "Ibid., 47">>
<<footnotes "7" "Ibid., 48">>
<<footnotes "8" "Ibid., 76">>
<<footnotes "9" "Ibid., 50-51">>
<<footnotes "10" "Ibid., 51">>
<<footnotes "11" "Ibid., 51">>
<<footnotes "12" "Ibid., 63">>
<<footnotes "13" "Ibid., 71">>
<<footnotes "14" "Ibid., 72">>
<<footnotes "15" "Ibid., 74">>
<<footnotes "16" "Ibid., 70-71">>
<<footnotes "17" "Ibid., 72">>
<<footnotes "18" "Ibid., 73-74">>
<<footnotes "19" "Ibid., 74">>
<<footnotes "20" "Ibid., 79">>
<<footnotes "21" "Ibid., 79">>
<<footnotes "22" "Ibid., 82">>
<<footnotes "23" "Ibid., 81">>
<<footnotes "24" "Ibid., 81">>
<<footnotes "25" "Ibid., 78">>
<<footnotes "26" "Phillipa Foot, “Virtues and Vices” in //Virtue Ethics//, ed. Roger Crisp and Michael Slote (Oxford and New York:Oxford University Press, 1997), 164">>
<<footnotes "27" "Ibid., 164">>
<<footnotes "28" "Ibid., 164">>
<<footnotes "29" "Ibid., 165">>
<<footnotes "30" "Ibid., 165">>
<<footnotes "31" "Ibid., 169">>
<<footnotes "32" "Frank Herbert, //Dune //(New York: Ace Books, 1990), 110">>
<<footnotes "33" "Phillipa Foot, “Virtues and Vices” in //Virtue Ethics//, ed. Roger Crisp and Michael Slote (Oxford and New York:Oxford University Press, 1997), 166">>
<<footnotes "34" "Ibid., 166">>
<<footnotes "35" "Ibid., 170">>
<<footnotes "36" "Ibid., 170">>
<<footnotes "37" "Ibid., 166">>
<<footnotes "38" "Ibid., 167">>
<<footnotes "39" "Ibid., 167">>
<<footnotes "40" "Ibid., 167">>
<<footnotes "41" "Ibid., 167">>
<<footnotes "42" "Fyodor Dostoevsky, //The Brothers Karamazov// (New York: Random House, c.1933), p. 254.">>
<<footnotes "43" "Phillipa Foot, “Virtues and Vices” in //Virtue Ethics//, ed. Roger Crisp and Michael Slote (Oxford and New York:Oxford University Press, 1997), 167">>
<<footnotes "44" "Ibid., 168">>
<<footnotes "45" "Ibid., 167">>
''[1a]''

In his //Groundwork//, Kant examines the “moral worth” of actions performed from duty rather than from inclination.<<ref "1">>  In his view, an agent who employs reason to understand one’s duty and then acts from and for the sake of duty has performed an act of moral worth, one which merits “esteem.”<<ref "2">>  He uses the example of the ‘sad philanthropist’ to demonstrate his argument concerning the moral worth of actions. 

Kant refers to the sad philanthropist as “the friend of man” who is “overclouded by sorrows of his own which extinguish all sympathy with the fate others.”<<ref "3">>  The sad philanthropist, in this instance, no longer has any emotional motivation or inclination to help others in need. From reason and freewill, the sad philanthropist overcomes his sadness as he “tears himself out of this deadly insensibility and does the [right] action without any inclination for the sake of duty alone.”<<ref "4">>  Clearly, Kant uses the example of the sad philanthropist to demonstrate the motivational requirements (from duty alone) of an action with moral worth. The sad philanthropist’s emotions (which are always outside the control of the agent) and inclination (which are also outside the control of the agent within this time frame) are incidental. Crucially, Kant isn’t talking about the character of the agent in this passage of the Groundwork, but rather the rightness and moral worth of the action. 

'' [Foot’s Criticism]''

Phillipa Foot argues that Kant has not properly understood emotion and inclination as necessary variables in the moral motivation equation used in judging the moral worth of action. Foot criticizes Kant’s sad philanthropist as an agent who is lacking the proper motivation and sympathy, and essentially the virtuous character, required to categorize the resulting action as having moral worth. Vitally, she explains:

<<<
Charity is a virtue of attachment, and that sympathy for others which makes it easier to help them is part of the virtue itself.<<ref "5">> 
<<<

Foot is suggesting that having the appropriate ‘virtuous emotions’ (whether or not we have control of them) is a necessary part of possessing the full virtue. In our case, Foot is claiming that the sad philanthropist lacks the emotional and pathological sympathy for others in need, and is therefore lacking some degree of charity. Foot continues:

<<<
Some actions are in accordance with virtue without requiring virtue for their performance, whereas others are both in accordance with virtue and such as to show possession of a virtue.<<ref "6">>
<<<
 
Foot believes there are some circumstances which pose few, if any, obstacles for acting virtuously, where it is all too ‘easy’ to perform the virtuous act, e.g. when the right moral choice involves self-preservation. There are, however, other difficult circumstances in which even a virtuous agent is truly tested, and where we can more readily see exactly where an agent is lacking virtuous character. The circumstance which caused the sad philanthropist to be ‘overclouded by sorrow’ is the sort of circumstance which really tests the character of an agent. Importantly, Foot distinguishes acting ‘in accordance with virtue’ from actually showing full ‘possession of a virtue’. It is here that she can accuse the sad philanthropist of not possessing full virtue, despite his acting in accordance with virtue. She argues:

<<<
The man who acts charitably out of a sense of duty is not to be undervalued, but it is the other who most shows virtue and therefore to the other that most moral worth is attributed. Only a detail of Kant’s presentation of the case of the dutiful philanthropist tells on the other side. For what he actually said was that this man felt no sympathy and took no pleasure in the good of others because ‘his mind was clouded by some sorrow of his own’, and this is the kind of circumstance that increases the virtue that is needed if a man is to act well’.<<ref "7">>
<<<

If the ‘friend of man’, despite his circumstances, had a character which was readily inclined to be philanthropic and charitable, taking pleasure in doing what is right, having the proper emotional state required to be virtuous, Foot would be willing to claim that his action wasn’t just in accordance with virtue, but also showed the possession of virtue. 

The sad philanthropist is simply not as virtuous as an agent who felt the proper sympathy. The virtuous emotions are necessary for moral motivation and virtuous character, and thus also necessary to claim an action has moral worth. The sad philanthropist lacks the virtuous emotions, finding it difficult because of his emotional turmoil to do what is virtuous, and thus demonstrates a flaw in his character. Foot, therefore, deems the sad philanthropist’s action as lacking moral worth compared to the virtuous agent who possesses the necessary virtuous emotions and character, easily doing what is right. As the virtuous agent can be said to have not only acted in accordance with virtue (just as the sad philanthropist), but to also actually possess the virtue because he had virtuous emotions and character, the virtuous person’s action has maximal moral worth.

''[Hursthouse’s Criticism]''

Hursthouse considers at length the implications of Aristotle’s distinction between the continent agent and the fully virtuous agent. The continent agent possesses self-control (//enkrateia//) and is “one who, typically, knowing what she should do, does it, contrary, to her desires.”<<ref "8">>  Hursthouse contrasts the fully virtuous person as “one who, typically, knowing what she should do, does it, desiring to do it.”<<ref "9">>  Unlike the continent agent, the fully virtuous person’s “desires are in ‘complete harmony’ with her reason; hence, when she does what she should, she does what she desires to do, and reaps the reward of satisfied desire.”<<ref "10">>  In Hursthouse’s eyes, both the disharmony between the continent agent’s reason and her desire, and the inability to have those desires satisfied when performing in accordance with virtue demonstrate why the continent agent is morally inferior to the virtuous agent.<<ref "11">>

Hursthouse, keeping in mind the continent/fully virtuous distinction, disagrees to some extent with Phillipa Foot’s criticism, particularly concerning how one should qualify and understand the clause “virtuous conduct gives pleasure to the lover of virtue.”<<ref "12">>  Hursthouse carefully explains:

<<<
There is no reason why an Aristotelian should not agree with Kant that there is something particularly estimable about the action of the sorrowing philanthropist. For here, the ‘difficulty that stands in the way’ of his virtuous action is of the sort that ‘provides an occasion’ for much virtue. It is his sorrow which makes noticing and attending to the needs of others particularly difficult; and as Foot rightly remarks, if he still manages to act with charity this ‘most shows virtue’, because ‘this is the kind of circumstance that increases the virtue that is needed if a man is to act well’.<<ref "13">>
<<< 

	If the sad philanthropist “finds it hard”<<ref "14">>  to be charitable //because //his mind is ‘overclouded by sorrow’, but still uses proper reasoning to choose and act charitably, then Hursthouse believes the sad philanthropist is displaying virtue in the face of a difficult obstacle. In this special case, assuming the sad philanthropist employs his capacity to reason correctly, he is possibly better than the merely continent agent - rather he might be fully virtuous. 

Hursthouse goes on to explain that to be inclined to have certain emotions isn’t sufficient for being a reliably virtuous agent.<<ref "15">>  The basis of this lack of sufficiency is Aristotle’s disagreement (Kant also disagrees) with the Humean principle of action, particularly “passion and desire.”<<ref "16">>  Hursthouse attempts to synthesize Kantian and Aristotelian definitions of inclination when she says:

<<<
[W]e all know that the ideal Kantian agent acts from a sense of duty, not from inclination, but if ‘inclination’ is that-principle-of-movement-we-share-with-the-other-animals, then the virtuous Aristotelian agent doesn’t act from inclination either, but from reason (logos) in the form of ‘choice’ (//prohairesis//).<<ref "17">>
<<<

	Acting from animalistic inclination is something that even the continent agent avoids. In this sense of inclination, Hursthouse is willing to agree, to some extent, with Kant’s ‘moral worth’ argument. Agents acting from animalistic inclinations are not performing esteemed ‘right’ action with any moral worth. It is here that we see Hursthouse’s true interpretation of Kant’s sad philanthropist, and she attempts to demonstrate how Kant has failed to understand the role of emotions in virtue theory; she says:

<<<
But, sticking to the text, the sorrowing philanthropist is someone with Humean benevolence, liable to go wrong in a variety of ways, who hitherto acted only from inclination and now ‘for the first time’ acts ‘for the sake of duty alone’; not a new sort of philanthropist who has been introduced in contrast to the happy ones. And, in Aristotelian terms, this is hardly a coherent picture.<<ref "18">>
<<<

	Essentially, Hursthouse criticizes the sad philanthropist of having been, historically speaking, motivated and acting from an animalistic/child-like Humean inclination. It is merely by happenstance, according to Hursthouse, that the sad philanthropist is in the rare case of having been motivated to act for the sake of duty, rather than his usual animalistic inclination. Hursthouse continues:

<<<
Once one has acquired reason, the only thing that would clearly count as being the sort of agent who acts ‘only from inclination’ and not from reason is being the sort of agent who is akratic or ‘weak-willed’ in character.<<ref "19">>
<<<

	Hursthouse is claiming that the sad philanthropist not only isn’t like a virtuous agent in choosing to overcome his sorrows, but he isn’t even (reliably) like the continent agent! The sad philanthropist has historically chosen to act from animalistic inclination, instead of reason, demonstrating that he has an akratic and deeply flawed character. An agent who has such a flawed character that he reliably chooses to act from animalistic inclination lacks real moral motivation to perform actions with actual moral worth. Hursthouse closes her criticism:

<<<
In so far as it makes sense to talk of Aristotle’s view on ‘motivation’, the continent and the fully virtuous have the same ‘motivation’—they each act from reason in the form of ‘choice’ (prohairesis). The difference between them lies not in their ‘motivation’ or reasons for action, but in their condition; the fully virtuous are better disposed in relation to their emotions than the self-controlled.<<ref "20">>
<<<

	The fully virtuous agent has a harmony between her emotions, desires, and reason. The continent agent does not possess this harmony. In order for an action to have moral worth it must be performed by an agent who possesses a virtuous character and reliably has the virtuous emotions in harmony with proper reason.  In Hursthouse’s view, the sad philanthropist fails to meet these requirements by a long shot (he reliably acts from animalistic inclination), and therefore his action lacks moral worth.

''[1b]''

	Hursthouse fails to properly address Kant’s primary argument. Kant’s major claim is that the moral worth of action is a result of reason and will, being motivated and acting from and for the sake of duty alone. Hursthouse argues about the character of the sad philanthropist, but fails to counter (strongly) Kant’s principle behind the claim that the sad philanthropist’s action has moral worth. This is an unfortunate oversight on her part. 

The sad philanthropist does not demonstrate Hursthouse's distinction between continent and fully virtuous. The sad philanthropist demonstrates the divide between one who reliably acts from animalistic inclination and the continent agent. The continent agent does what is right, despite his feelings and desires. The animalistically inclined agent does what is right because his feelings and desires drive him to do so. Hursthouse destroys the sad philanthropist’s character (his historical animalistic motivation), but she doesn’t demonstrate how the sad philanthropist is an example of why the actions of the fully virtuous agent have moral worth where the actions of the continent agent do not, and essentially, she doesn’t provide a strong argument against Kant’s ‘moral worth’-making principle.

	Kant is arguing that ‘moral worth’ is the result of being motivated to do what is right because it is right. Kant believes an agent requires continence in conjunction with this for-duty-alone motivation to perform actions of moral worth; Hursthouse believes the requirements for ‘moral worth’ are different and more difficult to attain. Hursthouse thinks both possessing the virtuous character (better than continence) and reliably feeling virtuous emotions in harmony with one’s reason (definitionally impossible for the continent) are the necessary ‘moral worth’-making preconditions. Why should we believe her?  

If Hursthouse is correct about what makes an action have moral worth, then I daresay I’ve never met a person who has ever performed an action with moral worth because I’ve never met (to my knowledge) a person with a fully virtuous character. If only the virtuous agent can perform actions with moral worth, then the rest of us (who aren’t fully virtuous) are doomed to perform actions (even if in accordance with virtue) which lack moral worth.

Kant can make sense of character development and give a plausible account of ‘moral worth’-making preconditions without putting us into the awkward position that Hursthouse does. I think he would argue that over the course of the character development of agents, some people will have initially strong dispositions to do what is wrong, and others will have the opposite, and yet others will fall in between. Kant thinks you can start out as being non-virtuous, but through repeated applications of reason and willing to act from duty, you will arrive at having a virtuous character. Character, however, is not the condition which determines the moral worth of action, rather it is merely a measurement of the moral worth of an agent’s choices from a broad temporal scope. Note that the ‘moral worth’ judgment precedes character determination.

Completely different from Hursthouse, Kant thinks one can act correctly, producing an action with moral worth, even with a poor disposition. Kant uses a small temporal scope, judging the smallest units of experience – individual choices. Kant believes that one may choose to do what is right and morally worthy at any point on the timeline of choices of the agent. In this unit of moral experience, inclinations, emotions, desires, character are incidental; the choice and reasoning which motivates a person are the sole factors in judging the rightness and moral worth of the resulting action. 

So, whether a person is a racist (Hursthouse’s example of a vicious agent) or a virtuous agent, at each choice, she has the ability to choose to act outside of her inclinations, emotions, desires, or character. When she chooses to act for the sake of duty, then her action has moral worth. Even the racist or Mafioso can choose to act for the sake of duty, and thus even their actions can possibly have moral worth. 

Hursthouse did not properly address the sort of account of character Kant might give; instead she implies that virtuous character is necessary for actions to have ‘moral-worth’. I don’t see why this is necessary or even plausible. As a part of this disagreement over the primacy of character and disposition, Hursthouse and Kant also have a fundamental disagreement concerning the role of emotions in ethics. We must ask: why should we believe that emotions are necessary components for ‘doing’ the right action? 

Kant would say that emotions are neither necessary nor sufficient for doing the right action. Emotions are subjective, not dependable, and, most importantly, agents cannot exercise will power over emotions – we lack control of our emotions. To lack control over our emotions (in an immediate sense) removes our (immediate) moral responsibility for them. Hursthouse fails to rebut this fundamental point. 

Hursthouse desperately needs to provide an account of how we are morally culpable for our emotions even if we aren’t in full control of them. It is possible that Hursthouse could instead claim we have full control over our emotions, but that claim seems very implausible (from my own anecdotal experience). She does think emotions are part rational and part irrational. She needs to flesh out the psychology of moral agents, particularly the relationship of will and emotion, in order to provide a plausible account of moral responsibility.

	The criticism of the sad philanthropist was a misdirected argument. Kant was clearly discussing the ‘moral worth’ of actions and the sort of motivation required for it, not the character of the sad philanthropist. Hursthouse should have shown why ‘acting from duty alone’ is not necessary and sufficient for the moral worth of action. Only after rebutting Kant’s major claim should she have provided a much stronger account of her own theory of what is necessary and sufficient for the moral worth of action. 

''[2a]''

In considering the nature of ‘reason’ in the claim that the virtuous agent chooses “a V action for an X reason” Hursthouse draws on Sarah Broadie’s “Grand End theory.”<<ref "21">>  Both Broadie and Hursthouse are concerned with whether or not we are justified in ascribing to the virtuous agent “an explicit, comprehensive, substantial vision of the good.”<<ref "22">>  Hursthouse questions the necessity of such an ascription and its impact upon the moral motivation of the virtuous agent. Hursthouse expounds:

<<<
When philosophers start implying that it is a necessary condition of virtue that the virtuous have reflected long and hard about what eudaimonia consists in and worked out a picture of what is involved in acting well so comprehensive and substantial that it can be applied and its application justified in every suitable case, we may be sure that they are falling victim to what could be called ‘the Platonic fantasy’. This is the fantasy that it is only through the study of philosophy that one can become virtuous (or really virtuous).<<ref "23">>
<<<

	The ‘Platonic fantasy’ is the claim that the virtuous agent must (either explicitly or implicitly) think about and employ a complete (and correct) moral philosophy. Those under the illusion of the ‘Platonic fantasy’ (primarily philosophers), according to Hursthouse, inaccurately ascribe philosophical reasoning to the virtuous agent, including “fancy”<<ref "24">>  terminology, abstract ethical structures, universal principle-based reflection, and formal //moral knowledge//. 

	Hursthouse is convinced the Platonic fantasy fails to capture the psychological makeup and sort of ‘X reasoning’ of the virtuous agent. As a matter of //brute fact//, Hursthouse claims: 

<<<
Of course people can be virtuous, really virtuous, without having spent clockable hours thinking about eudaimonia, coming to the conclusion that it is a life lived in accordance with the virtues and working out an account of acting well, just as they can possess a really good will without having spent clockable hours working out whether various maxims can be willed as universal laws.<<ref "25">>
<<<

	To Hursthouse, this is //obviously //true. Assuming philosophical reasoning does require clockable hours, the “absurdity of the [Platonic] fantasy”<<ref "26">>  is consequently also obviously true to her. The virtuous agent doesn’t necessarily ‘reason’ or philosophize, according to Hursthouse. Hursthouse states that “the ascription of virtue…is basic.”<<ref "27">>  Unfortunately, Hursthouse isn’t very clear about what she means by this basic ascription to the virtuous agent. She does explain:

<<<
Loving the noble, having a correct conception of eudaimonia and a grasp of the universal acting well, are not tests for virtue, or the grounds on which we ascribe virtue, nor are they the specification of an ideal of virtue to which everyone should aspire.<<ref "28">>
<<<

So, while Hursthouse fails to describe (in detail) what she believes are necessary and sufficient sort of psychological and rational conditions to be a virtuous agent, I know she believes that philosophical thought is neither necessary nor sufficient. The basic moral reasoning of the virtuous agent is non-philosophical.

	Hursthouse covers all the ‘Platonic fantasy’ bases when she reiterates Broadie’s extension of the fantasy from the conscious mind to the unconscious mind. She explains we cannot even implicitly ascribe the Platonic fantasy to the virtuous person.<<ref "29">>  Virtue isn’t just compatible with philosophical inarticulacy; it is also compatible with lacking tacit and implicit philosophical knowledge, intuition, and reasoning. Hursthouse is claiming that philosophical knowledge, conscious or unconscious, is unnecessary for a virtuous agent. 

For Hursthouse, the Platonic fantasy is easy to slip into; she explains why many philosophers are under the illusion of the Platonic fantasy:

<<<
If we philosophers were to think of ordinary virtuous people as possessing these ‘fancy’ things, we would have a better philosophical understanding of various topics that interest us—moral motivation, moral reasoning, practical wisdom, a correct conception of eudaimonia, virtue itself.<<ref "30">>
<<<
	
	She thinks moral philosophy is ‘actually’ done because it piques our interest. Perhaps we (the philosophers) are tempted to incorrectly ascribe the activity of philosophy to the virtuous agent as a necessary (and, for some, also sufficient) condition to being virtuous because it might benefit us as philosophers. To Hursthouse, philosophers use formal moral reasoning to describe the virtuous agent because they believe they are “saying something illuminating and important.”<<ref "31">>  I take it that Hursthouse is saying that it is all too easy for a philosopher of ethics to delude himself into thinking he is doing something really worthwhile, something which will help him attain not just knowledge about morality, but even help him (and those who listen to him) perform better practical and applied moral reasoning and perhaps become like, think as, be motivated for the same reasons as, and act like the virtuous agent. 

Noteworthy, it is //possible //that some virtuous agent, by happenstance, is also a moral philosopher who possesses “an explicit, comprehensive, substantial vision of the good.”<<ref "32">>  Being a moral philosopher, however, is neither necessary nor sufficient for the coincidentally virtuous moral philosopher to be morally motivated.<<ref "33">>

	In conclusion, Hursthouse believes philosophical moral reasoning is not a necessary part of moral motivation or a required for virtue.

''[2b]''

Hursthouse’s claim is much stronger than saying that virtue and moral motivation are compatible with philosophical inarticulacy.<<ref "34">>  She’s denying the necessity of not only conscious and explicit philosophical reasoning to be morally motivated and to be a virtuous agent, but also the subconscious, intuitive, and ‘difficult to make explicit’ philosophical reasoning. Hursthouse, in my view, is dismissing the need for moral philosophy in its entirety. Hursthouse would clearly disagree with the following claim:

<<<
The Platonic fantasy is no fantasy. It is utterly crucial if we are to perform our task as moral philosophers – in short, the nature of philosophy itself rides on the alleged fantasy.<<ref "35">>
<<<

	The denial of the above claim is pretty shocking, especially coming from a moral philosopher. If the Platonic fantasy really is a fantasy, then why in the world would a person pursue moral philosophy at all? Why did Hursthouse write this book? (Because it interested her?) If philosophical moral reasoning doesn’t help us and others on the path to becoming better moral agents, then there doesn’t really seem to be much of a purpose to (moral) philosophy. If moral theories are strictly incapable of actually describing moral experience and the moral universe, then can we really say that the virtuous person employs knowledge? The sort of knowledge that would come from moral philosophy is somehow not very useful to the virtuous agent (or to those seeking to become virtuous). If this is the case, wouldn’t moral philosophy, in Hursthouse’s eyes, be somewhat like memorizing prime numbers? Sure, having these prime numbers memorized might help you pass a test one day in your number theory class, but it is generally useless otherwise. Like memorizing prime numbers, if Hursthouse is correct, it seems as though moral philosophy is generally useless.

	 I think it is one thing to claim that modern moral philosophy is inaccurate (a charitable way to read this, in my opinion) and another to dismiss it altogether. If Hursthouse would claim that the correct virtue theory itself is much simpler than the complexity we see in modern moral theories (again, the depth of the arguments she has given in this book would demonstrate otherwise), then I could make more sense of her claim that moral philosophy (as we currently think about it) is useless to the virtuous agent or those seeking to be virtuous. 

	Hursthouse has (momentarily) forgotten what it means to do ‘philosophy’ in the first place. By definition, philosophy is about good reasoning, about pursuing truth, and about gaining wisdom. Whether a truth is extremely complex or simple, the good philosopher will pursue it because moral philosophy is about pursuing and possessing moral knowledge. Philosophers (at least ‘good’ or proper ones) develop, argue about, and use moral theories to try to describe the moral (aspect of the) universe; they do this because they wish to know the moral universe (morality) in order to become better moral agents (to become like the virtuous agent!). It is assumed by most moral philosophers (perhaps excepting Broadie and Hursthouse) that becoming virtuous is a rational process, not an irrational or random one, hence why we (should) do moral philosophy. If morality wasn’t strictly rational, then you could not be responsible for it. 

The virtuous agent does have moral knowledge. Hursthouse thinks so. How is this sort of knowledge not philosophical? How is it not rational and well-reasoned? Surely it must be. Does she just mean ‘true belief’ rather than knowledge?

	Let’s assume that possessing knowledge is the possession of justified true belief (just as Aristotle’s teacher assumed; and, arguably, Aristotle’s explanation of episteme in his Posterior Analytics implies). The moral philosopher, who is pursuing moral knowledge, is interested in having justified, true moral beliefs. Hursthouse admits that having the correct moral belief is essential to being morally motivated and a necessary component to the psychology of the virtuous agent.<<ref "36">>  If the virtuous agent is justified in his true moral belief, then, essentially, he has the object of moral philosophy, namely moral knowledge. If we are to assume that the virtuous agent must be justified in his true belief, then it would seem that moral philosophy, in this sense, is absolutely necessary to becoming a virtuous agent. Perhaps modern moral theories are wrong, but that doesn’t mean that moral philosophy is unnecessary.

	If the JTB assumption is correct, then the only way for Hursthouse to dismiss moral philosophy as she does would be to claim that the virtuous agent is not justified in his true belief, and thus doesn’t have moral knowledge. If this were true, then the virtuous belief isn’t necessarily reasonable. If this is the objection, we must realize that the virtuous agent did not think about his beliefs, he just ‘magically’ had them. Randomly stumbling upon the correct (but unjustified) moral beliefs, and acting from them (rather than from a duty deduced from reason), seems to take away from the moral worth of an agent’s action, in my view. 

	Heeding the Platonic fantasy is necessary if we are going to say that the virtuous person employs rationality, at least implicitly, to be morally motivated. Moral philosophy, even if not as complex or sophisticated as many modern moral theories, is certainly something which the virtuous agent must be doing, and the activity necessary for becoming virtuous.

Before closing, I would like to defend a possible spirit of Hursthouse’s argument, namely that virtuous agents may have difficulty explicitly articulating their thoughts. Given one’s understanding of the philosophy of mind, language, and intentionality (for example, if you deny some forms of pragmatism and expressivism), it is certainly reasonable to consider the possibility that a virtuous agent’s philosophical framework and motivation is in part intuitive and subconscious, and that, to some extent, the agent isn’t mentally and physically capable of articulating their beliefs. Obviously, Hursthouse said much more than this, but I think she may have hit on something pretty important in dissecting the psychology of the virtuous agent.

''[3a]''

Hursthouse spends a great deal of time describing the ‘degree’ paradigm of her virtue theory. She believes that virtues, beliefs, feelings, character traits, and practical wisdom admit of degree.  She says there are “a variety of ways in which people are not, ethically, all of a piece,” which complicates, but does not demonstrate, disunity of the virtues.<<ref "37">>

As Hursthouse sees it, the virtues are not “completely discrete, isolable character traits.”<<ref "38">>  The essential idea behind the doctrine of the unity of the virtues is that “to have any individual virtue one must have them all.”<<ref "39">>  Her theory is derived from Aristotle’s; he explains:

<<<
One might on these lines meet the dialectical argument by which it would be contended that the virtues exist independently of each other, on the ground that the same man is not equally well endowed by nature in respect of them all, so that he will be the possessor of one, but not yet the possessor of another. As far as the natural virtues are concerned, this is possible; but it is not possible when the virtues are those that entitle a person to be called good without qualification; for the possession of the single virtue of practical wisdom will carry with it the possession of them all.<<ref "40">>
<<<
  
	Strict reading would lead us to believe that possession of the full set of those moral virtues which aren’t practical wisdom (to what degree isn’t clear) is a necessary condition for possession of practical or moral wisdom. Hursthouse builds upon this, and, in my view, qualifies the unity beyond what Aristotle is saying right here. I believe Hursthouse extends this to mean that the virtues which are connected to practical wisdom (exactly how, I’m not sure) are the sort which can’t be independently understood apart from each other; inevitably, she will arrive at the notion that possession of any single virtue (not just practical wisdom) ‘will carry with it the possession of them all’. There is a holistic, codependent, perhaps even interdefining nature to the moral virtues. Consider what Hursthouse says:

<<<
 [‘Courage’ and ‘temperance’] are not excellences of character, not traits that, by their very nature, make their possessor good and issue in good conduct. They can be faults or flaws rather than excellences and they can lead their possessors to act badly.<<ref "41">>
<<<
 
	To isolate courage, and to apply it independently of the other virtues, especially independent of practical wisdom, seems to (at least sometimes) result in faults and flaws, in Hursthouse’s view. Independently then, these aren’t virtues at all, and because of this, I believe she considers (although ultimately concludes a unity stronger than) two ‘connective’ claims about the virtues. 

The first (and weaker claim) is the interconnectivity of the non-wisdom virtues, and the insufficiency of the sum of the non-wisdom virtues to result in ‘excellence of character’ and full virtue. If courage is not moderated by the virtue of temperance, then the feelings of fear and confidence may be skewed to extreme excess or defect, resulting in rashness or cowardice. It seems a necessary condition for the ‘excellence of character’ that each of the various moral virtues (momentarily, we will exclude practical wisdom from this set) have something to say about at least some of the other virtues. To what extent, and in what way, I am not exactly sure how Hursthouse thinks. So, to be properly charitable (so as to move a step closer towards excellence of character), the character trait of charity may require, borrow from, and be regulated by other sorts of virtues such as kindness or perhaps the sort of righteousness required to be aware of the misfortunes of our neighbors. 

It seem as though even more is required, however, for courage to be appropriately applied in the right situations, in the right way, at the right time, etc. The non-wisdom virtues, despite their interdependence, are not sufficient (although certainly necessary) for being fully virtuous. Hursthouse continues:

<<<
What this way of thinking about the virtues omits is the Aristotelian idea that each of the virtues involves practical wisdom, the ability to reason correctly about practical matters…The same sorts of judgments about goods and evils, benefits and harms, what is worthwhile and what is relatively unimportant crop up across the ranges.<<ref "42">>
<<<

This is the second (and stronger) ‘connectivity’ claim she considers. Practical wisdom seems to be the driving cognitive force and supervisory device behind the other virtues. This wisdom perceives the world appropriately; it makes sense of ‘what is what’; it is the locus of judgment and value determination; and, most importantly to the unity of the virtues, it governs the other virtues.  Pertaining to the unity of the virtues, the virtuous agent’s practical wisdom includes knowing how to properly connect and apply the sum of the various virtues in the proper situations and in the proper ways. 

So while the other moral virtues impact each other to some degree, they aren’t the masters of themselves; it appears that practical wisdom has very profound regulating powers over the other moral virtues. We do know that ‘excellence of character’ is the possession of practical wisdom, which will necessarily include the other moral virtues. Possessing the non-wisdom virtues is necessary for possessing practical wisdom, but we don’t yet know if they are sufficient for possessing practical wisdom, according to Hursthouse. Practical wisdom holds a very special place in Hursthouse’s virtue theory. Hursthouse concludes:

<<<
So it seems that what we believe in is what Neera Badhwar calls ‘the limited unity’ of the virtues and Gary Watson ‘the weak unity thesis’. This is a view that simultaneously recognizes the fact that practical wisdom cannot occur in discrete packages, limited in its area of competence to just this virtue or that, and also the fact that it is not an all-or-nothing matter. According to this thesis, anyone who possesses one virtue will have all the others to some degree, albeit, in some cases, a pretty limited one.<<ref "43">>
<<<

Vitally, Hursthouse explains that the possession of any proper virtue (not just practical wisdom) includes all the others (to some degree). For example, to properly have courage requires practical wisdom, and to have practical wisdom is to have at least some degree of all the other virtues. In this sense, ‘isolated courage’ isn’t courage at all; only the sort of courage which necessarily includes (some degree of) all the other virtues is really what Hursthouse means by courage. Note that Hursthouse’s ‘weak unity thesis’ is still stronger than just holding the two previous connectivity claims (although, the essence of these connective issues are still found within her doctrine of the unity of the virtues). 

What is clear about Hursthouse’s weak unity thesis is that one virtue necessitates them all, to some degree.  What is unclear about Hursthouse’s weak unity thesis is ‘to what degree’. The various connections between the virtues, and particularly the impact of practical wisdom in this equation, have not been fully fleshed out in her account of the unity of the virtues. 

''[3b]''

Hursthouse is denying the ‘all-or-nothing’ of the moral metrics in her virtue theory; instead she employs a ‘degree paradigm’, and this sort of degree-based argumentation is prominent within her weak unity of the virtues thesis. Each of the virtues can be possessed in (differing) degrees. Given what she says, there are some awkward and unintuitive results. [Objection #1] One of my problems with her weak unity thesis is that it results in the possibility of some extremely //implausible //agents who possess wildly imbalanced character distributions.
 
Consider how a hypothetical person in Hursthouse’s weak unity thesis might possess 98% charity, and only 1% of the other virtues, such as courage, temperance, kindness, etc. This seems implausible to my own intuitions. It is certainly explainable and possible in Hursthouse’s theory, but this sort of hypothetical doesn’t seem plausible or an acceptably possible result of a theory from my own moral experience.  (Admittedly, my intuitions could be wrong.) 

Her conception of the unity of virtues isn’t accurate enough. It seems to me that every situation requires all the virtues simultaneously. In short, [Objection #2] the virtues are too isolable in her theory. On one hand, she considers how the virtues are connected, and thinks they help to define and regulate each other, but on the hand, she thinks of particular situations as requiring (e.g.) ‘courage + practical wisdom’ or ‘charity + practical wisdom’ almost exclusively, as if we really can isolate most of the morally relevant factors of a situation as mostly requiring an isolated virtue alongside practical wisdom. Her theory does not do a good job explaining why the other virtues are necessary to these situations. She does ‘isolate’ the character traits to some //degree//. I don’t think she justifies it though. 

''[3c]''

	My theory of the unity of the virtues: there is only practical wisdom. All the other virtues are found inside practical wisdom. I think isolating character traits and specific moral virtues (other than wisdom) makes no sense whatsoever; I’m not convinced the non-wisdom virtues actually exist in this sense. I want to say that the situations which some people say require ‘courage’ are really situations in which practical wisdom is manifested so as to appear like courage. Practical wisdom is the only virtue, though. In my view, this is a much stronger unity thesis than what Hursthouse provides. The (so-called) ‘moral virtues’ either don’t exist at all or they are identical with wisdom (depending on how you want to look at it). Wisdom isn’t just the virtue, to the virtue ethicist, __virtue is wisdom__.

	Explaining Hursthouse’s views on practical wisdom would be its own paper (and beyond the scope of this question). I likely have a different view of what is meant by ‘wisdom’ -- so, in order to clarify what I mean by ‘virtue is wisdom’ (sounds like a modified “virtue is knowledge,” answering //akrasia//, etc., no?), let me first explain what I mean by wisdom (what I mean by practical and moral wisdom).
 
First, wisdom is rational thought about what is valuable, what is worth pursing, what one ought to do, what is right, the objective moral world. Moral thought and knowledge comprise the first half of Wisdom. Clearly, this isn’t a character trait by itself. To say a person is wise requires more than just moral knowledge and thought, it also requires that an agent reliably chooses and acts from this moral knowledge and thought. From my perspective, in order to explain ‘wisdom’ as a character trait, we need to add the element of the //will//.
 
The second half of wisdom is choosing to act (including mental acts) from and because of what you know is morally right. After all, the man with moral knowledge who doesn’t choose to act from it isn’t the sort I want to call ‘wise’. Wisdom, as the virtuous character, is about both moral knowledge/thought and willing it. 

Colloquially, we speak of wisdom as a type of knowledge. Insofar as one transmits moral knowledge, but doesn’t need to act on it (let us say that my grandfather was explaining a wise thing to me), we can call it ‘wisdom’ without will. But, wisdom as a character trait still requires reliably willing from moral knowledge. What exactly we mean by ‘reliable’ is cashed out in terms of averages and some broad temporal scope for which I’m unable to give an account (at this point). 

As you can see, crucial to my view of virtue ethics, particularly about how the unity of virtues relates to decision/action, is my disagreement with Hursthouse’s view of the primacy of the virtuous character. I agree with Hursthouse in claiming there are ‘degrees of virtue’. For example, one might be 38% virtuous, but that is just a result of an average of the rightness (and morally worth) of the decisions/actions for which one is responsible. Virtue, of course, is a measurement over time – in part a measurement of an agent’s reliability. In my view, the atomic elements (individual choices/smallest units of moral experience) which comprise the ‘virtuous character’ equation are the primitive objects of moral theory, not the resulting measurement. So, I agree to an absolute unity of the virtues (plainly, wisdom), but I don’t hold wise/virtuous character, as a measurement, to be primitive. 

	Note that my theory avoids the two objections I made about Hursthouse’s theory. I avoid my second objection to Hursthouse because my theory does not isolate the various moral virtues to any degree. Consequently, I also avoid my first objection. There are no wildly imbalanced and totally implausible characters as a result of my unity of virtue theory. There is merely an ‘appearance’ of charitable agents; actually, there are simply wise agents.  In this, we have no resulting 98% charity, and 1% of the other virtues. Talking of degrees of plain and totally unified wisdom or virtue, in this sense, seems intuitively more plausible to me. 
	

-----------------------------------------

<<footnotes "1" "Immanuel Kant, //Groundwork of the Metaphysics of Morals//, trans H.J. Paton (1964), 66">>
<<footnotes "2" "Ibid.">>
<<footnotes "3" "Ibid.">>
<<footnotes "4" "Ibid.">>
<<footnotes "5" "Phillipa Foot, “Virtues and Vices” in //Virtue Ethics//, ed. Roger Crisp and Michael Slote (Oxford and New York: Oxford University Press, 1997),  172">>
<<footnotes "6" "Ibid., 173">>
<<footnotes "7" "Ibid., 174">>
<<footnotes "8" "Rosalind Hursthouse, //On Virtue Ethics// (Oxford: Oxford University Press, 2001), 92">>
<<footnotes "9" "Ibid.">>
<<footnotes "10" "Ibid.">>
<<footnotes "11" "Ibid., 93">>
<<footnotes "12" "Ibid., 98">>
<<footnotes "13" "Ibid.">>
<<footnotes "14" "Ibid., 97">>
<<footnotes "15" "Ibid., 102">>
<<footnotes "16" "Ibid.">>
<<footnotes "17" "Ibid., 103">>
<<footnotes "18" "Ibid., 104">>
<<footnotes "19" "Ibid., 106">>
<<footnotes "20" "Ibid., 107">>
<<footnotes "21" "Ibid., 137">>
<<footnotes "22" "Ibid., 136">>
<<footnotes "23" "Ibid., 137">>
<<footnotes "24" "Ibid.">>
<<footnotes "25" "Ibid.">>
<<footnotes "26" "Ibid.">>
<<footnotes "27" "Ibid.">>
<<footnotes "28" "Ibid., 137-138">>
<<footnotes "29" "Ibid., 137">>
<<footnotes "30" "Ibid., 138">>
<<footnotes "31" "Ibid.">>
<<footnotes "32" "Ibid., 139">>
<<footnotes "33" "Ibid., 140">>
<<footnotes "34" "Ibid., 127">>
<<footnotes "35" "Husain Sarkar. //Fall_2010_PHIL_4946.doc// (Baton Rouge: October 19, 2010), 6">>
<<footnotes "36" "Ibid., 140">>
<<footnotes "37" "Ibid., 153">>
<<footnotes "38" "Ibid., 131">>
<<footnotes "39" "Ibid., 153">>
<<footnotes "40" "Aristotle. //Nicomachean Ethics//, tr. J. A. K. Thomson, rev. H. Tredennick. (London: Penguin, 1976), 166">>
<<footnotes "41" "Ibid., 154">>
<<footnotes "42" "Ibid., 154">>
<<footnotes "43" "Ibid., 156">>

//--In Memory of Ian Crystal//

Aristotle holds ontology to be primitive to epistemology; his theory of the four causes, chance, and spontaneity are no exception. The four causes, in particular, are part of the conceptual link between the ontic and the epistemic. Without this theory of causation, in the eyes of Aristotle, the world would cease to be intelligible. The //Physics //(where we first see a description of his theory of causation) in some ways is a study of being qua movement, and Aristotle’s conceptual framework for this study is understood in terms of the four causes. He is clearly interested in describing change and motion (and defending these against the Eleatics), demonstrating the relationship between potentiality and actuality, aiding in the explanation of being and non-being, and justifying his account of essentialism and teleology. 

As an essentialist, Aristotle is deeply concerned with making sure we do not conflate the accidental with the essential. While he recognizes that the existence of the physical world is immediate and obvious (almost like a brute-fact), it seems as if natural sciences, which are studies of what is beyond that which is immediately obvious, require an explanation of change and motion. Before he goes on to give us this explanation (his theory of causation), Aristotle provides us a distinction between natural and artificial substances. This distinction will be further demonstrated within his causal theory as well. He explains:

<<<
Of things that exist, some exist by nature, some from other causes. By nature the animals and their parts exist, and the plants and the simple bodies (earth, fire, air, water)—for we say that these and the like exist by nature.<<ref "1">>
<<<

<<<
All the things mentioned plainly differ from things which are not constituted by nature. For each of them has within itself a principle of motion and of stationariness (in respect of place, or of growth and decrease, or by way of alteration). On the other hand, a bed and a coat and anything else of that sort, qua receiving these designations—i.e. in so far as they are products of art—have no innate impulse to change. But in so far as they happen to be composed of stone or of earth or of a mixture of the two, they do have such an impulse, and just to that extent—which seems to indicate that nature is a principle or cause of being moved and of being at rest in that to which it belongs primarily, in virtue of itself and not accidentally.<<ref "2">>
<<<

That which ‘exists by nature’ is a natural substance and that which is a ‘product of art’ is an artificial substance. Natural substances, as the name implies, are the sorts of substances which exist in nature and without an agent to change them. Conversely, artificial substances are generated by artists and do not occur naturally. Artificial substances could not exist without natural substances because the latter are the necessary preconditions and materials required for a technician to generate the former. 

Importantly, the difference between natural and artificial substances isn’t just a question of origin, but also a question of the nature of change and motion which inheres in each of these kinds of substance. Change occurs when a substance loses and gains accidental features (e.g. change in place, etc.), and the internality of change and motion differ between natural and artificial substances. An essential aspect of a natural substance is the principles of motion and change which are internal to it. Artificial substances don’t have these principles internal to them insofar as they are artificial, but they do insofar as they happen to be made of natural substances.  

This distinction between natural and artificial substance heeds Aristotle’s essentialism. Change is essential to the natural substance, but change is accidental to artificial substance. In analogous juxtaposition, change (as a principle) is essential (to the world), but change (of a property in a substance) is in some way accidental. These differences are further explained by Aristotle’s causal theory.

In further consideration of change and motion, in explaining being and non-being (including the passage into each), and in order to provide a foundation for the sciences (linking the ontic to the epistemic), Aristotle sets out a conceptual framework for causation. He explains:

<<<
Knowledge is the object of our inquiry, and men do not think they know a thing till they have grasped the ‘why’ of it (which is to grasp its primary cause). So clearly we too must do this as regards both coming to be and passing away and every kind of natural change, in order that, knowing their principles, we may try to refer to these principles each of our problems.<<ref "3">>
<<<

Let us first realize that this question ‘why?’ is fundamental to Aristotle’ teleological structure. In coming to acquire knowledge about the world in a complete sense, we must be able to fully answer the question ‘why?’. His causal theory is going to demonstrate how we can fully answer the question ‘why?’ regarding anything which is intelligible and how it is central to the link between the ontic realm and the epistemic realm.

So, any successful and coherent investigation of the world, according to Aristotle, requires that we understand the causes and teleological ends of things in the world. If it wasn’t possible to provide an explanation for the question ‘why a thing exists as it does?’, then the world wouldn’t be intelligible. Aristotle thinks this particular view of his is somewhat unique. While giving partial credit to his predecessors (e.g. the Monists and Plato) concerning this topic, he claims they had only vague notions of the causes (e.g. Plato is accused of only believing in material and formal causes), and that he alone is able to provide the true account of the causes.<<ref "4">>  In this, he is also alluding to limits to the viability of the scientific inquiry of his predecessors because they lacked an adequate theory of the causes.

One other major point of context to his causal theory that we need to consider is the word ‘cause’, which needs to be interpreted carefully and fleshed out.  Aristotle’s understanding of the word ‘cause’ (//aitia//) is broader than the modern sense; it might be thought of as an explanation (a broader term in modernity). ‘Cause’ is likely the better word because the connotation of ‘explanation’ misleadingly emphasizes an epistemic view of substances, which fails to highlight the primacy of ontology in Aristotle’s worldview. The word ‘cause’ (overall) might then best capture both the ontic structure of (Aristotle’s) reality and how we understand the world. Lastly, and at the risk of redundancy, a crucial component to understanding Aristotle’s view of an adequate theory of //causation //is realizing that he is setting out the conceptual framework for a teleological explanation of things. His essentialism and teleology are arch motivations in providing his account of causation. 

There are causes for all substances (else, they wouldn’t be intelligible). Aristotle answers and explains both the ontic and epistemic ‘why’ through four causes: material, formal, efficient, and final. He explains the first cause:

<<<
In one way, then, that out of which a thing comes to be and which persists, is called a cause, e.g. the bronze of the statue, the silver of the bowl, and the genera of which the bronze and the silver are species.<<ref "5">>
<<<

Here, Aristotle introduces the first cause, referred to as the //material cause//. It is the matter which comprises a thing. The material cause is the matter which is the subject of change. The material cause is “that out of which” a substance is made and explained. An example of the material cause of a natural substance would be the flesh and bone (material) which comprises the matter of Socrates (substance). Take a house as an example of an artifact (artificial substance); its material cause is the wood and bricks of which it is constructed. Note that the natural wood of a tree and the bricks’ natural clay and minerals are the subjects of change. These are examples of primary substance (‘primary’ as understood in his categories); the material cause of secondary substance, however, would simply be ‘matter’. 

Importantly, matter can be viewed in two ways, both as physical stuff and also as potentiality. Matter only has no meaning outside the other causes; it is only conceptually discreet in our minds, but never truly independent of substance and the other causes. The wood of a tree is potentially a bed, but it is not actually a bed simply because it is wood. The carpenter manipulates wood to receive the form of bed. Conceptually linked to the idea of potentiality, the shape and form which matter takes on will lead us to Aristotle’s next cause; he explains:

<<<
In another way, the form or the archetype, i.e. the definition of the essence, and its genera, are called causes (e.g. of the octave the relation of 2:1, and generally number), and the parts in the definition.<<ref "6">>
<<<

Aristotle introduces us to what we call the formal cause. The formal cause is the definition of a thing. It is the shape and form that matter takes on. 

Aristotle’s essentialism seems emphasized in the// formal cause//. The essential features of a substance, those things which are necessary conditions of a substance’s being, comprise its formal cause. Aristotle thinks you really can’t answer ‘why?’ a thing exists as it does without understanding the essential characteristics of a substance. Clearly, the formal cause is necessary to give an account of the shape and form (//eidos//) of a substance. These first two causes are central components of Aristotle’s //Hylomorphism//, the notion that a substance is a composite of form and matter.  Consider that while the material cause of the bed is wood, it is the shape and form of bed-ness that the wood takes on which counts as the formal cause. Note how material cause alone isn’t sufficient to causally explain the bed, and the formal cause is also a necessary ingredient (though the sum of just these two aren’t sufficient either) in the causal explanation.
	
The formal cause does have a special relationship with the material cause, but it can also be understood to have a special relationship with the final cause (which we will get to in a bit). At this point, we can at least see that the formal cause points out Aristotle’s distinction between potentiality and actuality. In fact, the formal cause is exclusively potentiality. This form is, however, associated with something’s actuality. Each of us has the form of human being inhering in us, and as a consequence, we are human beings. You can’t just ‘potentially’ be a human being.  The relationship between the formal and final cause demonstrates part of the relationship between Aristotle’s conception of potentiality and actuality, the formal cause being analogous to potentiality.

The formal cause of a house is the definition of a house, namely, a shelter constructed for people to live in. The formal cause of a secondary substance would be its species. The formal cause of a man is being a rational biped. Note that in answering Aristotle’s ‘why?’, these definitions in themselves (insofar as this cause is conceptually discreet from the others) are strictly potential and not actual instantiations of substance at this point in the causal process.

Peculiarly, the formal causes of natural and artificial substances differ. The formal causes of natural substances are definitions which are independent of agents and technicians. Just because a person doesn’t grasp the definition of horse does not mean that horses don’t exist or that they lack formal cause. The definition of horse is external to our human minds, and the definition does not exist in virtue of us in any way. Unlike natural substances, the formal causes of artifacts are in some way dependent upon agents. The formal cause of an artifact is in the mind of the technician who generates the artifact. It is the definition of an artifact which is dependent upon being in the mind of an agent who possesses the corresponding //techné//. So, the ‘idea of the house’ inheres in the house-builder who applies the techné of house-building to construct the house. This example nicely leads us to Aristotle’s next cause:

<<<
Again, the primary source of the change or rest; e.g. the man who deliberated is a cause, the father is cause of the child, and generally what makes of what is made and what changes of what is changed.<<ref "7">> 
<<<

This is what we refer to as the //efficient cause//. The efficient cause is that source which literally causes a thing (in the modern sense of the word ‘cause’). An efficient cause could be the agent of change and motion which brings about a thing. Clearly, Aristotle’s efficient cause is much closer to what we normally understand a cause to be because it encompasses the preceding agent (the cause) whose acts and motion bring about an effect.

Consider examples (some of which aren’t as easy we might initially assume): parents are clearly the efficient causes of children (natural substances), easy. For secondary substance, the efficient cause is conceptually there (difficult to see though), namely, God is the efficient cause as the highest principle (although he isn’t the creator of the species, as we think in the Judeo-Christian tradition). The efficient cause of a house would be the house-builder applying his art of house-building. Oddly enough, in describing the relationship between what is potential and actual, we come to see that there might be several ways to describe the efficient cause of a thing (perhaps especially so for artificial substances). Aristotle explains:

<<<
All causes, both proper and accidental, may be spoken of either as potential or as actual; e.g.  the cause of a house being built is either a house-builder or a house-builder building.<<ref "8">>
<<<

<<<
In investigating the cause of each thing it is always necessary to seek what is most precise (as also in other things): thus a man builds because he is a builder, and a builder builds in virtue of his art of building. This last cause then is prior; and so generally.<<ref "9">>
<<<

Given the possibility of having multiple ways to describe a thing’s efficient cause, we should be careful in selecting that which is truly essential (and not accidental) to being something’s efficient cause. In consideration of the above passage, and in an attempt to discern what is essential to being the efficient cause, it seems that at least in part, the art of the technician is the efficient cause of an artifact. If this is the case, then while we can say the house-builder applies the art of house-building (and thus he is somehow part of this process), the house as an artifact exists in virtue of the art of house-building which inheres in the mind of the house-builder. So, perhaps, the efficient cause of the house is to some extent the art itself, even though the art’s existence is dependent in some way upon inhering in the mind of artist. Like the difficulty in making sense of the efficient cause of secondary substances, describing the efficient cause of artifacts is not as straightforward as moderns might initially assume.

Note how the efficient cause directs us to Aristotle’s teleological worldview. The efficient cause is clearly linked to the steps of a thing’s coming into being. The house-builder uses particular materials instead of others, pieces together the various parts of wood and brick in a certain form or shape, and employs his art by using specific tools of his craft in a certain way. While these three causes are often the only sorts of things that many people would consider to be a ‘cause’ of a thing, they are not complete and they are independent of the end. Aristotle thinks there is more required to answering the question ‘why?’. Clearly, the first three causes all have purpose, and all the steps in this causal process exist in virtue of the teleological end. Thus, Aristotle completes this conceptual framework with his fourth cause:

<<<
Again, in the sense of end or that for the sake of which a thing is done, e.g. health is the cause of walking about.  (‘Why is he walking about?’  We say: ‘To be healthy’, and, having said that, we think we have assigned the cause.)  The same is true also of all the intermediate steps which are brought about through the action of something else as means towards the end, e.g.  reduction of flesh, purging, drugs, or surgical instruments are means towards health. All these things are for the sake of the end, though they differ from one another in that some are activities, others instruments.<<ref "10">>
<<<

This is the// final cause//. The final cause is the teleological end and the realization of the definition. It is the formal cause actualized. You can’t overstate Aristotle’s reliance upon the final cause in this teleology. We should note the stark contrast between the potentiality of the formal cause and the actuality of the final cause. Obviously, the formal and final causes are inextricably linked. The final cause of the house is the actuality of the house, where people live in it and use it as a house. For secondary substance, the final cause is the realization and actual existence of those species. The final cause of man is an actual rational biped. There would be no purpose in talking about the other causes if you didn’t have the final cause, the actual substance.

Granted, the final is perhaps the most controversial of the causes for some critics (and Aristotle spends time trying to defend his final cause). The fourth and final cause seems the most essential of the four causes; arguably it has the highest explanatory status of the four causes. Change, motion, potentiality, matter, and form are not intelligible outside of what is actual, namely the teleological cause, the end, the final cause. The process of generation is for the sake of (and can only be properly explained and understood by) the actual end. Aristotle’s primacy of ontology is clearly demonstrated in the significance of and emphasis on the final cause.

Connecting the causes together, we can see that Aristotle wishes to answer the question ‘why’ about all substances using this teleological theory of causation. In doing science, and in making the world intelligible, we must employ this causal framework. Aristotle’s theory of causation provides a structure to make sense of being and non-being, chance and motion, certain vital components of the relationship between potentiality and actuality, and his teleology and essentialism at large.

After Aristotle lays out his theory of causation, he considers the implications (and possibility of) small elements of randomness in the world and those things which are unintentional, unexpected, undetermined, and coincidental (which initially might seem problematic for his teleology). He refers to this as chance and spontaneity. It is fitting that this section comes after his four causes because, of course, we should have serious questions about the nature (and explanation) of what might be random and indefinite within his teleological framework. How do you make sense of what is coincidental in such an end-based and purpose-filled view of the universe? (I daresay this question remains a damned good one.) Aristotle attempts to show the dependent relationship of chance and spontaneity upon the four causes. Interestingly, his construction of this account is also deeply motivated by a desire to have a middle path between the extremes of determinism and a skepticism which claims the world is utterly, entirely random and chaotic. Crucially, if chance and spontaneity cannot be explained by the causes, it seems as though the world, to some extent, is unintelligible. To start, Aristotle gives us some informal criteria for what sorts of things do not qualify as chance. He says:

<<<
First then we observe that some things always come to pass in the same way, and others for the most part. It is clearly of neither of these that chance, or the result of chance, is said to be the cause—neither of that which is by necessity and always, nor of that which is for the most part.<<ref "11">>
<<<

Things which consistently come to pass are not usually the sorts of things which we deem to be events of chance or spontaneity. The sorts of things which always come to pass in the same way, or even for the most part in the same way, are softly determined, so it isn’t much of a leap to say that these can’t qualify as chance or spontaneity. So, things which do not come to pass for at least the most part are the sorts of things which can qualify as either chance or spontaneity. Aristotle explains what else is necessary for chance (as opposed to spontaneity):

<<<
Of things that come to be, some come to be for the sake of something, others not. Again, some of the former class are in accordance with intention, others not, but both are in the class of things which are for the sake of something.  Hence it is clear that even among the things which are outside what is necessary and what is for the most part, there are some in connexion with which the phrase ‘for the sake of something’ is applicable.  (Things that are for the sake of something include whatever may be done as a result of thought or of nature.) Things of this kind, then, when they come to pass accidentally are said to be by chance.<<ref "12">>
<<<

Chance is clearly about being ‘for the sake of something’, in accordance with intention, requiring an agent (e.g. man), and, most importantly, it must be accidental. Chance requires an agent, and it is in part a description of the accidental and random events which cross the path of an agent. Aristotle gives us his example of chance:

<<<
A man is engaged in collecting subscriptions for a feast.   He would have gone to such and such a place for the purpose of getting the money, if he had known.  He actually went there for another purpose, and it was only accidentally that he got his money by going there; and this was not due to the fact that he went there as a rule or necessarily, nor is the end effected (getting the money) a cause present in himself—it belongs to the class of things that are objects of choice and the result of thought.  It is when these conditions are satisfied that the man is said to have gone by chance. If he had chosen and gone for the sake of this—if he always or normally went there when he was collecting payments—he would not be said to have gone by chance.<<ref "13">>
<<<

The man went somewhere intending to do X, and it just so happened, by accident, that he also happened to fulfill a different end, namely getting his money (which wasn’t X). The man chose and intended for X, but an unintentional effect was getting his money. In this case, when the man crosses paths with a person who owes a subscription for the feast, neither person had intended, in each of their cause paths, this transaction of money; rather, the ends, the ‘for the sake of’ which they had started on their paths,  were about something else altogether, with different purposes and ends. It is only by accident that some other purpose, the ‘getting of money’ for this man, is somehow accomplished on his way towards something else. Clearly, chance (and spontaneity as well) requires two paths to cross.

Note how the causal chain of the man can be described by the four causes. The path that each man took and the teleological structure of their intentions are clearly understood and made intelligible by the four causes. It is only when two (or more) distinct causal chains just by happenstance overlap, and strictly at the point of contact of that overlap, that there can possibly be an occurrence of chance or spontaneity. Aristotle continues:

<<<
It is clear then that chance is an accidental cause in the sphere of those actions for the sake of something which involve choice. Thought, then, and chance are in the same sphere, for choice implies thought.<<ref "14">>
<<<

The sorts of accidents which are related to choice and reason are different, in some way, from what is spontaneous. Insofar as this accidental or indefinite occurrence is the result of the choice of man, then it is said to be chance. Aristotle elaborates on the differences between chance and spontaneity:

<<<
They differ in that spontaneity is the wider. Every result of chance is from what is spontaneous, but not everything that is from what is spontaneous is from chance.<<ref "15">>
<<<

Chance events are a subset of spontaneous events. The distinction of spontaneous events of agents from non-agents makes a great deal of sense when we consider the significance of reason and choice in Aristotle’s cosmos. Aristotle seeks to differentiate agents with reason and choice throughout his teleological system, and his division of chance and spontaneity continue that mode of thought. The argument continues:

<<<
Chance and what results from chance are appropriate to agents that are capable of good fortune and of action generally.  Therefore necessarily chance is in the sphere of actions. This is indicated by the fact that good fortune is thought to be the same, or nearly the same, as happiness, and happiness to be a kind of action, since it is well-doing.  Hence what is not capable of action cannot do anything by chance.  Thus an inanimate thing or a beast or a child cannot do anything by chance, because it is incapable of choice.<<ref "16">>
<<<

<<<
The spontaneous on the other hand is found both in the beasts and in many inanimate objects.  We say, for example, that the horse came spontaneously, because, though his coming saved him, he did not come for the sake of safety. Again, the tripod fell spontaneously, because, though it stood on its feet so as to serve for a seat, it did not fall so as to serve for a seat.<<ref "17">>
<<<

Obviously, the indefinite aspects of inanimate objects seem to fall into this category of spontaneity, but it isn’t so obvious (without context) why children don’t count as having choice. Note that while children are human, they aren’t (in Aristotle’s understanding) fully developed humans, and they haven’t fully reached their ends as rational bipeds. In lacking elements of reason and choice, the sorts of accidents which they happen upon aren’t chance, only spontaneity. Aristotle clarifies even further:

<<<
It is necessary, no doubt, that the causes of what comes to pass by chance be indefinite; and that is why chance is supposed to belong to the class of the indefinite and to be inscrutable to man, and why it might be thought that, in a way, nothing occurs by chance.   For all these statements are correct, as might be expected.  Things do, in a way, occur by chance, for they occur accidentally and chance is an accidental cause.  But it is not the cause without qualification of anything; for instance, a housebuilder is the cause of a house; accidentally, a fluteplayer may be so.<<ref "18">>
<<<

<<<
Spontaneity and chance are causes of effects which, though they might result from intelligence or nature, have in fact been caused by something accidentally. Now since nothing which is accidental is prior to what is per se, it is clear that no accidental cause can be prior to a cause per se. Spontaneity and chance, therefore, are posterior to intelligence and nature.  Hence, however true it may be that the heavens are due to spontaneity, it will still be true that intelligence and nature will be prior causes of this universe and of many things in it besides.<<ref "19">>
<<<

Chance and spontaneity are parasitic upon and understood through the four causes. We might call them pseudocauses because of this. There are causal explanations for each of the crossing paths, and Aristotle says in order to even begin to understand the nature of the crossing, we must first describe the causal chains through the four causes. The four causes are a precondition to the pseudocauses, chance and spontaneity.

Chance and spontaneity can only occur when two independent causal chains meet or cross by happenstance. The exact point of contact of two causal chains is where chance and spontaneity occur and have meaning. Notice that without two causal chains meeting at a crossroads, there would be no chance and spontaneity. That is also to say then that without the four causes, no causal chains would exist, and thus no events of chance and spontaneity would exist; this is why they are called parasitic upon the four causes.
Similar to Aristotle’s example, an example of a chance would be my going to the store to buy some chips. The end I am seeking is to buy chips. Now, by happenstance, I run across a guy to whom I owe money at the store. Importantly, my creditor had come to the store to buy pretzels. Neither of us had come to the store for the purpose of meeting each other; neither of us had come to the store intending that I pay my debt there. We both had different ends in mind. It was mere chance that our independent causal chains overlapped at the store. It just so happens that I am required to forego my chips to pay back my debt that night. 

Crucial to this picture of two (or more) paths intersecting by happenstance is the underlying causal structure which is a necessary prerequisite to making sense of what has happened. You can explain my path to the store via the four causes, and it had nothing to do with my creditor. You can explain my creditor’s path to the store through Aristotle’s theory of causation, and it likewise had nothing to do with my paying my debt. Without the four causes, we’d have no paths to consider in the first place.

The four causes explain our activities and independent causal chains. It is only at the point of contact of our independent causal chains, whereby I am unexpectedly forced to repay my debt, for example, that we can understand Aristotle’s conception of chance. Spontaneity falls in the same vein of reasoning, the difference being that it isn’t the causal chains of agents; rather, it describes the above for non-agents.

It is important that Aristotle took the time to describe chance and spontaneity. If chance and spontaneity were too prevalent and too important to the world, and there was mass chaos and pure randomness, then we couldn’t do science. There would be point to it. Too much randomness is obviously against the intelligibility of the world which Aristotle deems to be so crucial. If there was no chance and spontaneity in the world, however, then everything would be determined, which is a supposition Aristotle wishes to avoid. Aristotle’s description of chance and spontaneity as being parasitic upon the four causes is a middle path between these extremes.

Aristotle helps give a more complete causal theory by including an explanation of chance and spontaneity. He is responding to his predecessors, and he is also providing a way to make sense of a world with both teleological ends and elements of indeterminacy. The inclusion of an explanation of indeterminacy is also significant because it makes it somewhat more difficult to criticize his teleological view, as it remains fairly self-consistent as an argument in general and also capable of answering the question ‘why?’ in a wide variety of circumstances. 

Aristotle’s theory of causation in conjunction with the pseudocauses, chance and spontaneity, provide the groundwork for the intelligibility of the world. These notions clarify and explain how Aristotle conceives of potentiality and actuality, the passage into and out of being, chance and motion, particular aspects of his essentialism, and his deeply-rooted teleology.

--------------------------------------

<<footnotes "1" "Aristotle. //Complete Works of Aristotle: The Revised Oxford Translation//. Edited by J. Barnes. 2 vols. Bollingen Series.  (Princeton, NJ:  Princeton University Press, 1984),  Physics, Book 2, §1, 192b9-192b11">>
<<footnotes "2" "Physics, Book 2, §1, 192b12-192b23">>
<<footnotes "3" "Physics, Book 2, §3, 194b16-194b23">>
<<footnotes "4" "Metaphysics, Book I, §7, 988a18-988a32">>
<<footnotes "5" "Physics, Book 2, §3, 194b24-194b26">>
<<footnotes "6" "Physics, Book 2, §3, 194b27-194b29">>
<<footnotes "7" "Physics, Book 2, §3, 194b30-194b32">>
<<footnotes "8" "Physics, Book 2, §3, 195b4-195b7">>
<<footnotes "9" "Physics, Book 2, §3, 195b22-195b25">>
<<footnotes "10" "Physics, Book 2, §3, 194b33-195a2">>
<<footnotes "11" "Physics, Book 2, §5, 196b10-196b17">>
<<footnotes "12" "Physics, Book 2, §5,  196b18-196b32">>
<<footnotes "13" "Physics, Book 2, §5, 196b33-197a5">>
<<footnotes "14" "Physics, Book 2, §5, 197a6-197a7">>
<<footnotes "15" "Physics, Book 2, §6, 197a37-197a39">>
<<footnotes "16" "Physics, Book 2, §6, 197b1-197b13">>
<<footnotes "17" "Physics, Book 2, §6, 197b14-197b17">>
<<footnotes "18" "Physics, Book 2, §5,  197a8-197a15">>
<<footnotes "19" "Physics, Book 2, §6, 198a5-198a13">>

---------------------------------------

''Bibliography''

Aristotle. //Complete Works of Aristotle: The Revised Oxford Translation//. Edited by J. Barnes. 2 
vols. Bollingen Series.  (Princeton, NJ:  Princeton University Press, 1984).

Butler, Jim. “Ancient Philosophy.” Class lectures, Berea College, Fall 2003.

Crystal, Ian. “Aristotle.” Class lectures, Louisiana State University, Fall 2010.

Stanford Encyclopedia of Philosophy. “Aristotle on Causality.” http://plato.stanford.edu/entries/aristotle-causality (accessed November 15, 2010).

Let me first offer some background information, connect Book 12 to the rest of the metaphysics, and offer a preliminary summation of the overall argument in Book 12. Hopefully, I can give some context to help make more sense of this difficult passage before we actually read it. So, let me start with the mile-high view and work our way towards the exegesis and details.

Book 12 (Lambda) is the culmination of Aristotle's work in metaphysics, and in it he offers the ultimate end of his teleological system. As in much of the metaphysics, Book 12 studies what is eternal, unchanging, and independent of matter. This study is the highest science and first philosophy. In some sense, Book 12 is really going to demonstrate why metaphysics isn’t about the study of things “better known to us,” but rather the study of things that are “better known in themselves.” This study of ‘Being qua Being’ is in some sense theology. 

Aristotle takes the stand that the actual is of its nature antecedent to the potential.  Importantly, potentiality has two sides; anything that is ‘capable of being’ is also ‘capable of not being’. What is capable of not being might possibly not be, and what might possibly not be is perishable. Hence anything with the mere ‘potentiality to be’ is perishable. In contrast, what is eternal is imperishable, and so nothing that is eternal can exist only potentially — what is eternal must be fully actual. But the eternal is prior in substance to the perishable - for the eternal can exist without the perishable, but not conversely, and that is what priority in substance amounts to. So what is actual is prior in substance to what is potential.

A consequence of this idea, as we will see, is that there must exist a Being Who is pure actuality, and Whose life is self-contemplative thought. The Supreme Being imparted movement to the universe by moving the First Heaven; the movement emanated from the First Cause, however, isn’t the normal sort of physical causation we think of, but rather causation by being desirable - in other words, the First Heaven, attracted by the desirability of the Supreme Being "as the soul is attracted by beauty", was set in motion, and imparted its motion to the lower spheres and thus, ultimately, to our terrestrial world. Also, according to this theory, God never leaves the eternal repose of thinking. Aristotle explains the necessity of God. Aristotle’s God is the Unmoved mover; the Prime mover. As final causes go, God is the ultimate. He is the final goal and purpose towards which all things move. 

There are three kinds of substances considered:

#changeable and perishable (e.g., plants and animals)
#changeable and eternal (e.g., heavenly bodies)
#unchangeable and eternal – immutable (e.g. God)

Why are these distinctions important to Aristotle? Well, if everything was changeable and perishable, and essentially, everything was going to perish, then the world in itself would not be eternal. However, Aristotle thinks there are things which don’t perish, e.g. motion and time are eternal. This is interesting because if time weren’t eternal, and rather it was something that was created, then it would seem as if ‘something before’ the existence of time created ‘time’. The very concept of time seems to necessarily presuppose the existence of time before one could even talk about the ‘hypothetical creation of time’. Thus, time isn’t ‘created’, it is simply eternal and doesn’t perish. Problematic to the discussion, at least in my view, is that matter, motion, the heavens, and in this case, time, are eternal, and so we want to say that Aristotle’s world is in some way eternal. Yet, it is caused. How can a thing be caused and yet also be eternal?

“The heavens” is another contextual reference you need to understand to appreciate what Aristotle is saying here. Like time, the circular motion of ‘the heavens’ is eternal. These heavenly bodies are a very good example of the second kind of substance, namely what is changeable and eternal, which is different from the first kind because it doesn’t perish like plants and animals. We’re going to see these ‘heavens’ at the beginning of chapter 7; this is a part of Aristotle cosmology. What exactly are ‘the heavens’ or ‘first heaven’? What does his cosmic system look like? Think of it this way:

The Earth is the center of the cosmic system; it is a spherical, stationary body, and it is the realm of sensible perishing substances, a realm of chaotic motions. Around the Earth revolve other eternal substances, namely spheres in which are fixed the moon, the sun, and planets. The First Heaven, which plays so important a part in Aristotle's general cosmogonic system, is the heaven of the fixed stars. It surrounds all the other spheres and, being endowed with intelligence, it turned toward the God, drawn, as it were, by His Desirability, and it thus imparted to all the other heavenly bodies the circular motion which is natural to them. This cosmological doctrine and general concept of nature becomes the ‘standard view’ for millennia. This view didn’t change until the time of Newton and Galileo, and the birth of modern physical science. Their paradigm shift was truly revolutionary. E.g. Newton conceived of motion persisting without a mover, of force at a distance, and of heavenly gravitation being identical to the terrestrial laws of falling bodies, thus denying Aristotle's separation between the purity of the heavens and the perishability of the earth.

Note that the Unmoved mover is the only being who could generate eternal circular motion (not billiard hitting billiard balls, but in some other way). The Unmoved Mover is the ultimate cause of the universe, and He is pure actuality, containing no matter since He is the very cause of Himself. In order for the mover to be unmoved Himself, He must move in a non-physical way, by inspiring desire.

Aristotle gives the Unmoved mover the name of God, but this figure is unlike most standard conceptions of a divine being. Though Aristotle asserts that He is a living creature and represents the pinnacle of goodness, He also has no interest in the world and no recognition of man, for He exists in a completely transcendent and abstract state. The activity of God–if it can be called such–is simply knowledge, and this knowledge is purely a knowledge of Himself, because an abstracted being is above sense and experience and can know only what is best. Some have interpreted this to mean that God, in knowing Himself, implicitly knows everything else, but Aristotle flatly denied this view. In fact, he believed, for example, that God would have no knowledge of evil. Thus Aristotle's conception is full of apparent paradoxes. God is the ultimate cause of everything in the world, but He also remains completely detached.  Of course, the famous account Aristotle’s argument for the existence of God looks like the following:

#There exists movement in the world.
#Things that move were set into motion by something else.
#If everything that moves were caused to move by something else, there would be an infinite chain of causes. This can't happen. (Aristotle denies infinite regresses)
#Thus, there must have been something that caused the first movement.
#From 3, this first cause cannot itself have been moved.
#From 4, there must be an Unmoved mover.

So circling back once more: Actuality is prior to potentiality. God is pure actuality. All other things owe their movement to God. God causes the First heavens to move, and the movement is transferred to all other things, including the perishables and what is potential. To be moved or caused by God is to move via desire for God. God is eternal and unchanging. The ultimate aspect of God is His self-thinking thought. 

Let’s move into the text now. 

Section 7:

1072a19-1072a36:

<<<
Since this is a possible account of the matter, and if it were not true, the world would have proceeded out of night and ‘all things together’ and out of non-being, these difficulties may be taken as solved. There is, then, something which is always moved with an unceasing motion, which is motion in a circle; and this is plain not in theory only but in fact. Therefore the first heavens must be eternal. There is therefore also something which moves them.  And since that which is moved and moves is intermediate, there is a mover which moves without being moved, being eternal, substance, and actuality.
<<< 

For Aristotle, the first heaven moves in unceasing, circular motion, which means that the first heaven is eternal. The first heaven then communicates motion to all other things. What is eternally in motion as an intermediate, such as the first heavens, however, requires an Unmoved mover to cause it. The Prime mover is an eternal, fully-actual substance that moves the first heaven without Himself being moved, either self-moved or moved by something else. Being unmovable is in some sense being fully actual; God would be movable if and only if God was less than pure actuality and was in some sense or to some degree mere potentiality. 

<<<
And the object of desire and the object of thought move in this way; they move without being moved. The primary objects of desire and of thought are the same. For the apparent good is the object of appetite, and the real good is the primary object of wish. But desire is consequent on opinion rather than opinion on desire; for the thinking is the starting-point. And thought is moved by the object of thought, and one side of the list of opposites is in itself the object of thought; and in this, substance is first, and in substance, that which is simple and exists actually. (The one and the simple are not the same; for ‘one’ means a measure, but ‘simple’ means that the thing itself has a certain nature.) But the good, also, and that which is in itself desirable are on this same side of the list; and the first in any class is always best, or analogous to the best.
<<<

Aristotle points out that the object of desire and of thought move as an ‘Unmoved mover’ in some sense, for they cause motion in those who desire and think, but do not themselves move. For example, let's consider an ‘object or agent of desire’--a beautiful woman. Imagine an exceptionally beautiful woman sitting in a coffee shop. She minds her own business, head buried in a newspaper and sipping coffee. Now imagine some man takes notice of her (perhaps he is in some sense a patient), he is attracted to her and goes to her to initiate conversation. As between the man and the woman, the woman is the "unmoved-mover", being an object of desire for the man. She stimulates the man to come over to her. She is an unmoved mover (in this sense) because she did not engage in any specific activity to bring the man closer to her or to have him initiate conversation. The woman causes the man "to move", but this causality is different than, say, the sort of causation that is involved when someone playing billiards hits a ball--the player is not an unmoved mover. He is engaged in some positive activity to set the cue ball in motion, i.e. propelling it in motion with a pool stick. And so, Aristotle would argue that the Unmoved mover causes motion in a way that is analogous to the attractive woman rather than the pool player. However, comparing the charms of a beautiful woman to the motivating force of the Unmoved mover is not a perfect analogy. Unlike the attractive woman, the very nature or substance of the Unmoved mover causes the motion of the universe, not some accidental quality, as in the case of the attractive woman. Physical beauty is not an inherent quality of human-being-ness, but exists by accident just as anger existed "by accident" in Socrates. In contrast, God is far more essential and necessary to Aristotle’s view of teleology.

1072b13-1694:

<<<
That that for the sake of which is found among the unmovables is shown by making a distinction; for that for the sake of which is both that for which and that towards which, and of these the one is unmovable and the other is not. Thus it produces motion by being loved, and it moves the other moving things. 
<<<

The Unmoved mover moves by being the final cause of the motion of the first heaven, insofar as it is the object of love. The Unmoved mover as ‘final cause’ causes motion by being loved, whereas all other (moved) movers cause motion by first being moved. These are intermediates. God, however, is first and unmoved. Everything else moves towards God because he moves them, but without Himself being moved. 

<<<
Now if something is moved it is capable of being otherwise than as it is.  Therefore if the actuality of the heavens is primary motion, then in so far as they are in motion, in this respect they are capable of being otherwise,—in place, even if not in substance. 
<<<

The first heaven is subject to change with respect to place (locomotion), though not with respect to substance (ousia), since it is eternal; locomotion is the primary type of change, and ‘motion in a circle’ is the primary type of locomotion. God could not impart motion as the first efficient cause, because to do so God would have to be in motion, and if God were in motion, then God would be moved and movable.  Besides, there is no beginning to the process of eternal motion, no creation. So, what is implicit in Aristotle's argument is that the first heaven has intelligence, or soul, in order to love the Unmoved mover and so allow the latter to function as final cause. The circular motion of the first heaven is an expression of a love of the Unmoved mover, because such motion is the attempt to imitate the eternal and unchanging first cause: circular motion stands closest to motionless eternity, because, in a sense, in rotation no real locomotion occurs, since that which is moving in a circle always returns to where it started.

<<<
But since there is something which moves while itself Unmoved, existing actually, this can in no way be otherwise than as it is. For motion in space is the first of the kinds of change, and motion in a circle the first kind of spatial motion; and this the first mover produces.  The first mover, then, of necessity exists; and in so far as it is necessary, it is good, and in this sense a first principle. For the necessary has all these senses—that which is necessary perforce because it is contrary to impulse, that without which the good is impossible, and that which cannot be otherwise but is absolutely necessary.
<<<

It follows that the Unmoved mover cannot be otherwise than He is. God’s necessary existence in this sense gives Him prime status in Aristotle’s view of the world. God’s necessity consists in the fact that He cannot be otherwise but can exist only in a single way; in other words, His necessity is a result of His lacking all potentiality.
 
1072b31-1695:	

<<<
On such a principle, then, depend the heavens and the world of nature.
<<<

The Prime mover is also a first principle, for the Prime mover explains everything else because He causes all motion. The quality that allows the Unmoved mover to set the rest of the universe in motion is thus not accidental, but essential. For Aristotle, the universe is not infinite, but a circular chain of finite things which are eternally in motion. Outside this finite circle of things, this first principle keeps everything in motion while remaining unmoved.

<<<
And its life is such as the best which we enjoy, and enjoy for but a short time.  For it is ever in this state (which we cannot be), since its actuality is also pleasure. (And therefore waking, perception, and thinking are most pleasant, and hopes and memories are so because of their reference to these.) And thought in itself deals with that which is best in itself, and that which is thought in the fullest sense with that which is best in the fullest sense.
<<<

According to Aristotle, the Unmoved mover, God, eternally does one thing (but this is not self-movement), which is the best thing: God thinks. Eternal contemplation is what He does. Aristotle points out that we as humans in some sense partake in God or enjoy what God enjoys, temporarily, when we employ our reason and are actually (not potentially) thinking. 

<<<
And thought thinks itself because it shares the nature of the object of thought; for it becomes an object of thought in coming into contact with and thinking its objects, so that thought and object of thought are the same. For that which is capable of receiving the object of thought, i.e. the substance, is thought. And it is active when it possesses this object. Therefore the latter rather than the former is the divine element which thought seems to contain, and the act of contemplation is what is most pleasant and best.  If, then, God is always in that good state in which we sometimes are, this compels our wonder; and if in a better this compels it yet more. And God is in a better state. And life also belongs to God; for the actuality of thought is life, and God is that actuality; and God’s essential actuality is life most good and eternal. We say therefore that God is a living being, eternal, most good, so that life and duration continuous and eternal belong to God; for this is God.
<<<

God thinks about the best thing, which is thought (since thinking is the best of activities), so that thought and its object are the same: God's thinking about His own thinking. In addition, Aristotle says that, because God thinks, God is alive. What Aristotle means by life's being the actuality of thought is that only living substances can think, so that, if he actually thinks, God must be alive. What it means for God to be alive—apart from the fact that God thinks—is not, however, clarified; certainly, for God to be alive is different than for other substances to be alive, since God has no matter. Whatever exactly might be His state of existence and the way in which He is alive is better than what we have, though. After all, we aren’t in eternal contemplation, and He is. 

1073a3-1695:

<<<
Those who suppose, as the Pythagoreans and Speusippus do, that supreme beauty and goodness are not present in the beginning, because the beginnings both of plants and of animals are causes, but beauty and completeness are in the effects of these, are wrong in their opinion.  For the seed comes from other individuals which are prior and complete, and the first thing is not seed but the complete being, e.g.  we must say that before the seed there is a man,—not the man produced from the seed, but another from whom the seed comes.
<<<

All things exist in virtue of God. While in some way humans can be understood to generate other humans, they cannot be understood, in the end, to exist independently of God. It may also be implied that God is supremely beautiful and good, since supreme beauty and goodness must be from the beginning in order to be in any way part of the finished product.

1073a13-1695

It is clear then from what has been said that there is a substance which is eternal and unmovable and separate from sensible things. It has been shown also that this substance cannot have any magnitude, but is without parts and indivisible. For it produces movement through infinite time, but nothing finite has infinite power.  And, while every magnitude is either infinite or finite, it cannot, for the above reason, have finite magnitude, and it cannot have infinite magnitude because there is no infinite magnitude at all.  But it is also clear that it is impassive and unalterable; for all the other changes are posterior to change of place. It is clear, then, why the first mover has these attributes.

Aristotle calls God a substance (//ousia//), but differentiates this substance from all other substances, insofar as He is "eternal, unmovable and separate from sensible things." God is separate from sensible things because God has no magnitude (//megethos//), meaning that God is without a body or a spatial existence. The reason that God can have no magnitude is that God produces motion through infinite time, which means that God must be infinite in some sense, since an infinite effect requires an infinite cause; however, Aristotle also claims there cannot be such a thing as an infinite magnitude. As being a substance without magnitude, God is without parts and, therefore, indivisible (magnitudes are divisible).
In chapter 9, Aristotle discusses the nature of divine thought or the content of God's thought. Thought according to Aristotle is the most divine of things. Divine thought, therefore, is divine in the highest degree. 

Section 9: 

1074b34-1698:

<<<
The nature of the divine thought involves certain problems; for while  thought is held to be the most divine of phenomena, the question what it must be in order to have that character involves difficulties. For if it thinks nothing, what is there here of dignity?  It is just like one who sleeps.  
<<<

God's thought must have some content, "for if [God] thinks of nothing, what is there here of dignity?" He can’t be thinking about nothing, because surely the greatest thinker is thinking of something worth thinking about. Certainly he must be thinking about something important, or Book 12 would seem to be much ado about nothing. Surely God is thinking about something essential rather than something accidental.

<<<
And if it thinks, but this depends on something else, then (as that which is its substance is not the act of thinking, but a capacity) it cannot be the best substance; for it is through thinking that its value belongs to it. Further, whether its substance is the faculty of thought or the act of thinking, what does it think?  Either itself or something else; and if something else, either the same always or something different.  Does it matter, then, or not, whether it thinks the good or any chance thing? Are there not some things about which it is incredible that it should think? Evidently, then, it thinks that which is most divine and precious, and it does not change; for change would be change for the worse, and this would be already a movement.
<<<
 
Aristotle considers the nature of God's thought. It must be of what is most divine and precious, for anything else is unworthy of God.  Likewise, there can be no change in divine thought because that change would be change for the worst, since God thinks only of the most divine and precious; to think of anything but the best, however, would be unworthy of God, and, therefore, impossible. Aristotle also rejects the notion that divine thought is a potentiality, since, if it were, it would involve effort to actualize the potentiality and would mean that, for God, thinking would be laborious, as it is for finite intelligences, which cannot be true. God doesn’t change and what He thinks about doesn’t change.

<<<
First, then, if it is not the act of thinking but a capacity, it would be reasonable to suppose that the continuity of its thinking is wearisome to it. Secondly, there would evidently be something else more precious than thought, viz.  that which is thought.  For both thinking and the act of thought will belong even to one who has the worst of thoughts.  Therefore if this ought to be avoided (and it ought, for there are even some things which it is better not to see than to see), the act of thinking cannot be the best of things.  Therefore it must be itself that thought thinks (since it is the most excellent of things), and its thinking is a thinking on thinking.
<<<

In other words, when speaking about God as thinking, one must not imagine that God can begin to think about something, so that thought is a potentiality realized in the act of thought. Moreover, if thought were a potentiality for God, the object of thought would be greater than the thought, for otherwise God would not think about it. This would mean that something would be greater than God who thinks, but this is impossible. Similarly, distinguishing thought from its objects allows for the possibility of thinking "the worst thing in the world," which is unworthy of God.

1075a4-1698

<<<
But evidently knowledge and perception and opinion and understanding have always something else as their object, and themselves only by the way.  Further, if thinking and being thought are different, in respect of which does goodness belong to thought? For being an act of thinking and being an object of thought are not the same.  We answer that in some cases the knowledge is the object.  In the productive sciences (if we abstract from the matter) the substance in the sense of essence, and in the theoretical sciences the formula or the act of thinking, is the object.  As, then, thought and the object of thought are not different in the case of things that have not matter, they will be the same, i.e. the thinking will be one with the object of its thought.
<<<

This distinguishes divine thought from the human modes of "knowledge and perception and opinion and understanding," all of which have something else as their object. The only way in which a thought can be pure, about something immaterial, is to be concerned with essence. In an immaterial being, the object of thought will be the immaterial being itself. 

Thus, Aristotle attempts to avoid positing a distinction between divine thought and the object of divine object. He concludes that divine thought thinks of itself as its object, which means that God thinks about thinking. What he means is that, since God is nothing but intelligence or thought, for God to think of himself is to think of thinking. This would imply that God has no awareness of the cosmos. How thinking can be an object of thought, however, is not clear.

1075a10-1699

<<<
A further question is left—whether the object of the thought is composite; for if it were, thought would change in passing from part to part of the whole.  We answer that everything which has not matter is indivisible.  As human thought, or rather the thought of composite objects, is in a certain period of time (for it does not possess the good at this moment or at that, but its best, being something different from it, is attained only in a whole period of time), so throughout eternity is the thought which has itself for its object.

God thinks about something which is indivisible, He is indivisible, and He thinks about Himself.
<<<

According to Aristotle, the Unmoved mover either thinks about itself or thinks about something other than itself. Since God is by definition Unmoved or unchanged by anything else, it cannot, therefore, think of anything other than itself. To think of something other than itself is to be moved or changed by something from without. This is impossible according to his definition of God, since God is Unmoved/unchanged by any external agent. Thus, this leaves the other alternative, namely of God thinking about itself. Further, Aristotle makes the point that the content of God's thought must be the most excellent of things. "Therefore, God's thought must be about itself, and its thinking is a thinking on thinking" (1074b 32-34). Perhaps at face value, Aristotle seems to be describing a rather self-absorbed deity. However, perhaps if we allow the thinker (the Unmoved mover), the thinking (the Unmoved motion) and the thought (the sum total of all things in the universe including the Unmoved mover) as being one at a deeply metaphysical level, then perhaps we can rescue Aristotle's Deity from the accusation of self-absorption according to the common understanding of the word. An apt anology might be to conceive of this Deity as the dreamer, the dreaming and the dream, where the substance of a dream is the product of the dreamer's act of dreaming without any of the three being truly distinct. One can continue this line of thought, but that’s another subject.  	

It’s important to note, however, that this dreamer dreaming the dream of itself is different from the Australian aboriginal Dreamtime, which also is described as the Dream Dreaming Itself.  In the Dreamtime, the Dreamer is moved, in some sense, and changes due to its various manifestations within the dream.  With Aristotle’s God, however, the Thinker Thinking the Thought that is Itself is not in any way moved or changed by conflicting manifestations of Itself.  
Aristotle never gives a direct account of intentionality.<<ref "1">>  He does, however, provide rich accounts of some foundational topics to intentionality, e.g. the nature of reason and intellection, belief, //phantasia//, and perception.<<ref "2">>  These notions aren’t so straightforward though; they must be understood in context. For example, Aristotle believed in the primacy of ontology (an awkward worldview for many moderns), which was subsequently mirrored by language and epistemology; he carefully constructs these conceptual relationships throughout his work, and they are powerful constraints in a consideration of his theory of intentionality. It is also crucial to understand where and how Aristotle is reacting to various philosophers, especially to Plato, as this illuminates the context of his words. Lastly, the clear differentiationism found in his descriptions of the souls and teleological ends of plants, animals, humans, and God may prove useful in an examination of Aristotle’s intentional outlook, especially to moderns who wish to investigate the intentional similarities and differences between non-human animal and human minds. Combining these various elements, it seems conceivable to ‘piece together’ and sketch out central features of a theory of intentionality which Aristotle might likely have given. 

Of course, generating such an account, however carefully we might try, is fraught with the peril of not living up to the standard of the account of intentionality Aristotle might have actually given himself. As a component of this peril, there exists a danger of overstepping our bounds by eisegetically injecting modern notions of various philosophical thought into Aristotle’s worldview. If we are to offer a charitable account of intentionality which Aristotle himself plausibly might have provided, it must be done in keeping with his worldview. So, in an attempt to hedge myself against committing these offenses, I’m forced to speak both tentatively and conservatively about Aristotle’s account of intentionality. 

Also, in appreciating the both Aristotle’s extensive body of work and the breadth of matters which must be considered in the construction of a systematic theory of intentionality, I realize that the scope of this paper must be narrowed. It is my hope that I can offer a piece of what might count as part of a larger perspective on Aristotle’s account of intentionality. I’m going to focus upon aspects of Aristotle’s theory of perception, particularly as it relates to a more comprehensive theory of intentionality, seeking to comply with, if not further support, his overarching philosophical commitments to essentialism and teleology.

The// De Anima// is the richest source of information concerning Aristotle’s theories of perception. Let’s first briefly cover the conceptual framework of perception, pointing out its place within Aristotle’s teleological agenda, and then we’ll be in a position to examine the mechanical stages of perception with more detail. 

#The basic structure of perception is agent, medium, and patient.

#Perception can only transpire from movement or affection, pointing towards both perception’s similarity to intellection and also the potentiality of its proper objects (accidental sensible qualities).<<ref "3">>

#Only things with souls can possibly perceive, and perception seems to be some sort of qualitative alteration of the patient (that which is perceiving).<<ref "4">>  This is qualified, however, as Aristotle’s distinction between 1st potentiality, 2nd potentiality/1st actuality, and 2nd actuality comes into play in the explanation of the alteration. 

#Sense perception is a shift from 2nd potentiality/1st actuality to 2nd actuality, parallel to the geometer actively employing intellection, which Aristotle explains isn’t a normal sense of alteration (perhaps not even alteration at all, depending on the interpretation).<<ref "5">>

#Perceived objects affect the perceiver in such a way that the perceiver becomes like that which is perceived.<<ref "6">>  

#Perception is a certain sort of causal process (the word ‘cause’ had a much broader meaner for Aristotle) whereby the perceptible object acts upon the patient.

As to the mechanics of perception, all senses have a sense-organ. Eyes are for sight, ears for hearing, etc. The sense-organs are the perceivers, not the animal or human which has the sense organ. To be clear, the organs are the material cause, and the capacity for perception is the form which inheres in the corresponding organ, and thus perception isn’t reducible to merely the matter of organs. 

There are proper objects of perception – namely, color is something you see, and sound is something you hear, etc. In turn, perception of an object is actually perception of certain qualities inhering in the object which corresponds to the sense-organ, e.g. the quality of sweetness inhering in honey is what you taste, but you can’t taste other accidental qualities of the honey which don’t correspond to the sense-organ – you couldn’t taste its weight, for instance. 

As a plenum theorist (denying an incommensurable gulf or void between perceiver and object), Aristotle held that each sense has a medium through which the object or agent being perceived can transmit its form to the sense-organ. For everyday sight, air is the medium, or while underwater, the transparent water is the medium. Worth noting, the exact causal structure of the mediums of perception and how these mediums relate to third parties is a controversial issue; it is, unfortunately, beyond the scope of this paper.

Exactly what occurs when the form reaches the sense-organ is where we begin to see Aristotle’s intentionality unfold.  Here is an example of the process: the blackboard, as an agent, acts upon the patient by transmitting blackness and its various visual features through the air (the air being the medium) to the patient’s corresponding sense-organs, viz. eyes. The patient’s eyes are in turn //hylomorphically //altered, as the form of blackness is enformed in the patient’s eyes, altering his or her eyes to take on the sensible form of blackness which also inheres in the blackboard. The capacity to see, in this case, is the capacity for the patient to take on the form but not the matter of blackboard qua its visual accidental qualities. 

The controversial aspect of this theory of perception is what it means for a sense-organ to become like (in form, but not matter) that which it perceives, particularly given Aristotle’s emphasis on the physiological nature of the sense-organs. The germane passages are unclear:

<<<
As we have said, what has the power of sensation is potentially like what the perceived object is actually; that is, while at the beginning of the process of its being acted upon the two interacting factors are dissimilar, at the end the one acted upon is assimilated to the other and is identical in quality with it.<<ref "7">>
<<<
<<<
Generally, about all perception, we can say that a sense is what has the power of receiving into itself the sensible forms of things without the matter, in the way in which a piece of wax takes on the impress of a signet-ring without the iron or gold; what produces the impression is a signet of bronze or gold, but not qua bronze or gold: in a similar way the sense is affected by what is coloured or flavoured or sounding not insofar as each is what it is, but insofar as it is of such and such a sort and according to its form.<<ref "8">>
<<<

The “Likeness” principle makes great use of Aristotle’s understanding of potentiality and actuality (central tenets of his teleological view of the world). In the case of perception, there is a relationship between your potential-based status prior to perceiving the blackboard vs. actually perceiving the blackboard, which Aristotle wishes to highlight. It seems as if both likeness and unlikeness are essential to both perception and intellection, and, again, this makes sense given Aristotle’s painstaking distinction between what is accidental and what is essential to the world. Perception is all about sensing that which is accidental in a particular. The relationship of “Likeness” is found between the accidental qualities of sense or sense-organ (depending on the interpretation) and the corresponding accidental sensible qualities of the perceived object.  Exactly how we should further interpret this “Likeness” remains unclear. There are two major schools of thought.

Richard Sorabji, in his work: //Intentionality and Physiological Processes: Aristotle’s Theory of Sense-Perception//, defends (at great length and with very detailed exegesis) a literalist, physiological explanation of sense perception. Interpreters in this vein construe the process of perception to be a physical change in the eye itself, eventually pointing towards functionalism. This requires a somewhat literal interpretation. Essentially, the sense-organ factually becomes like that which it perceives, usually considered non-representational (though Brentano’s physical theory is considered representational), but in plain likeness and exemplification of the form of the perceptibles inherent to the object being perceived. The nose which smells cinnamon from a bun literally becomes like cinnamon; both the nose and bun share the accidental property of the cinnamon smell.

Of course, the physiological interpretation is problematic to us as moderns. Our scientific understanding of sensation gives us very good reasons to deny many aspects of Aristotle’s scientific views, but does this rule out all physiological interpretations of this passage? Perhaps it is still possible to defend it in light of our empirical knowledge, and perhaps the literal ‘taking on the red’ is still a process in physics, whereby light waves of redness affect the red-sensing cones in our eyes, or something along those lines. Oddly enough, the modern scientific understanding of retinotopic maps for visual perception is strikingly comparable to the physiological interpretation. 

One standing problem remains: I don’t understand how the literalist account of perception isn’t going to actually be a normal sort of alteration or affection, the taking on and shedding of accidental properties, which seems to contradict Aristotle’s potentiality/actuality qualifications given to both perception and intellection.

The other major interpretation of this ‘Likeness’ issue is the cognitive argument. In this case, the sense is really an awareness of what is perceived. This interpretation relies upon a stronger distinction between the actual sense and the sense-organ, emphasizing the awareness of the sense rather than the physical nature of the organ. M.F. Burnyeat’s paper, //Is an Aristotelian Philosophy of Mind Still Credible?//, which is in part a response to Sorabji’s work, is famous for this cognitive argument.
 
Burnyeat’s interpretation is that there isn’t a major physiological change, only a cognitive one. Now, he isn’t talking about the mind’s ability to think about what we’ve perceived (an important epistemic point in Aristotle that both the physiological and cognitive theories can maintain); rather, he’s talking about //awareness //of the actual sense which inheres in the sense-organs as taking on the ‘Likeness’ of the form of the object perceived (without its matter). Interestingly, in some manner, the awareness of perception is found in the sense-organ itself (not what you might expect). The cognitive argument emphasizes awareness, which I can appreciate because Aristotle himself indicates that perception is pregnant with awareness. The cognitivist is making the claim that it is the awareness of the sense-organ which takes on the ‘Likeness’ of the perceptible object (which is more metaphorical and abstract than the physiological argument). The cognitive argument makes strong use of symbolic representation in a way that the physiological account does not.

It is unclear what it means, although intuitively satisfactory, for perception to have awareness, and it is even further complicated by the notion (which is not intuitively satisfactory) that this awareness resides, in some manner, in sense-organs. Further, problematic to the cognitive interpretation is that it fails to account for Aristotle’s fixation and emphasis upon the physiological aspects of sensation. Why exactly would Aristotle spend so much time explaining the physical process only to then not have used it in his argument about taking on the form of the perceptible object?

It seems plausible to me that we can interpret this ‘Likeness’ issue using both the physiological and the cognitive theories. They aren’t entirely mutually exclusive. I think a hybrid theory might solve some of the problems of each of the individual theories. It seems plausible as an interpretation because it follows the physiological process which Aristotle emphasized, and the cognitive awareness component can make sense of Aristotle’s alteration qualification, such that perception is some sort of ‘abnormal’ alteration parallel to intellection. I rather like how the hylomorphic aspects of perception can be handled and understood by such a hybrid. Essentially, perception’s material aspect is explained through the physiological, and in a manner there is ‘Likeness’, and perception’s formal aspect (further taking on the form but not the matter) is explained through cognitive awareness of an object’s corresponding sensibles. It seems plausible that we should interpret Aristotle as claiming that perception of an external object’s sensible properties is a conversion from a physiological process to a cognitive one.

Perception is also conceptually parallel to Aristotle’s notion of intellection. Sense perception and intellection are both object-oriented because one can’t understand the epistemic without making reference to the ontic world. The major difference is that the objects of intellection are in some manner internal to the mind (the form is an object in the mind, although the form must reference the ontic world), while the objects of perception are considered external (relying upon accidental particulars). Fundamental to Aristotle’s teleology (and the difference in purpose of these two capacities) is that perception is of particulars and intellection is of universals. Structurally, perception and intellection are the same; it is only the scope of their proper objects which are different. The relationship between perception and reason is more than that of teleological analogs, however, for they are actually directly linked in Aristotle’s philosophy of mind. Perception precedes and feeds intellection.

Plato’s refutation of certain accounts of knowledge and intellection in the Theaetetus heavily influenced Aristotle’s //De Anima//, particularly with respect to perception. Aristotle claims that the sense is never wrong about the special objects of perception, and he derives this from Plato.<<ref "9">>  Plato denies ‘being’ in the predicative mode (‘X is Y’, which is separate from the existential mode ‘X exists’ or the veridical mode ‘X is true’) to the five senses. Because the senses cannot be wrong, they can never formulate a proposition. For example, as one can’t be wrong about perceiving color, Plato thinks one can’t state a proposition about the color. As soon as one can formulate a proposition, truth and falsity come into play. If one says ‘the moon is flat’, one is making a proposition, which is subject to truth values. Truth is not applicable to the senses, for Plato. Sense perception, for him, cannot be knowledge. Knowledge does not occur at the level of the senses, only at a higher level. 

Aristotle is responding to Plato’s view. Aristotle agrees with Plato as to the inerrancy of perception with respect to their proper objects, such that one can’t be wrong about taking on the sensible form in perception. The patient can’t be wrong about the fact that agent acts upon him or her because the patient is ‘aware’ that he or she has been affected. Aristotle, however, claims that while one isn’t wrong about perceiving an actual object, one can be wrong about the judgments one makes from that perception. Aristotle thinks that knowledge is strongly connected to perception in a manner that Plato doesn’t (in this way, we see elements of ‘loose empiricism’ in Aristotle’s account). The major counterexample Aristotle introduces against Plato’s view are the ‘common sensibles’, which are accessible to more than one sense in any particular instance. Aristotle considers these to be a proverbial ‘monkey-wrench thrown into’ Plato’s theory of perception.

Aristotle believes he can handle the common sensibles where Plato can’t, and this is accomplished through the development of ‘common sense’ (making intelligible the common sensibles), which is the focal point of consciousness where the senses meet and are unified.<<ref "10">>  Aristotle thought that Plato’s view of perception using the five senses perceiving a single common sensible led to the generation of five selves, which further led to unintelligibility of the world and self. Crucially, for Aristotle, it seems there is perhaps only a conceptual distinction between the senses and perhaps not an actual one.<<ref "11">>  They are actually unified, and they also have a unifying concept. Common sense is over and above the five senses, and, namely, it is the awareness that you are sensing the same thing with your different senses. The unification of the common sense enables Aristotle to deny that you have two or more senses for the same object (also denying that there are two or more selves). He treats the senses as having the same structure, as if they all adhere to the same conceptual apparatus. Unfortunately, Aristotle is not so clear about the ‘common sense’-organ. In the //De Anima//, he suggests there isn’t one. The ‘common sense’ is closer than the five senses to capacity for intellection, and so, perhaps like the fact that the intellect has no organ (according to Aristotle), the common sense might not as well.

The five senses give us the data, the common sense unifies the data. Each of the five senses is incapable of falsehood. And, while at the level of the five senses, propositional judgments are not formulated; propositional judgments must be made by the common sense. For example, I judge that the object I am seeing is also the object I am touching.

As perception is related to intellection directly, the intellect can’t think of perceptibles insofar as they aren’t intelligible. And, insofar as perceptibles aren’t intelligible, namely their accidental qualities rather than the essential ones, the capacity for perception is doing the conceptual heavy-lifting. Particulars are intelligible and understandable insofar as they participate in the forms, and the forms are the domain of the intellect, not perception. Concept formation within the intellect, however, relies upon input from perception. Unlike the intellect, there is no hierarchy of lesser or higher perceptibles as there is for intelligible; rather, the senses have equal epistemological status amongst each other, as do the sensibles amongst themselves.<<ref "12">> 

There is another topic of intentional interest which can be derived from Aristotle’s theory of perception – namely, Aristotle’s view on the intentional states of non-human animals vs. humans. Aristotle is clearly a differentiationist as set out by his very distinct teleological ends of animals and of humans; humans, unlike animals, have the power of intellection and essentially partake in the activity of Aristotle’s God. In Aristotle’s pyramid of souls, the vegetative and reproductive capacities are found in all forms of life (other than God’s, but he is a very special exception in the teleological framework); what distinguishes animals and the higher beings from mere plants are the capacities of motion, perception and memory (not all animals are said to possess memory, though; only some). While animals and humans are clearly differentiated by the possession (or lack) of reason, they both have perception in common, and perhaps both could be said to have intentionality (although most likely in differing degrees).

 Unlike his teacher, Aristotle denies that animals have beliefs. Aristotle thinks that beliefs are connected with reason (in a manner unlike Plato), and so to those animals he denies reason, he also denies beliefs.<<ref "13">>  Interestingly, as Aristotle diminishes the role of belief in animals, in order to make sense of the dynamic activity that animals do demonstrate (which the capacity for ‘belief’ handled for Plato, but cannot for Aristotle), he realizes he is forced to give a much more expansive account of perception (than any other philosopher had at the time) to make up for animals lacking the capacity for belief. The result is interesting because it recognizes some kinds of predication and judgment on behalf of the non-human animal kingdom. For example, a dog can perceive a scent. He perceives more than just the scent, though; he may also be able to perceive the direction from which that scent came. Since the dog lacks reason and belief, according to Aristotle, then the machinery of perception is doing the heavy inferential and predicative lifting. The direction is predicated of the scent, and this sort of predication is contained within the dog’s perception.

Aristotle’s emphasis on perception and his expansion of the definition of its capacity imparts several intentional features to its possessors. Animals benefit from this, and it seems that Aristotle’s teleology goes a long way towards establishing the similarities (and not just the differences) between humans and non-human animals.
 
Despite Aristotle’s careful construction of his account of perception and its relation to intellection, there are serious limitations to the realms of these related faculties from the perspective of more modern notions of intentionality. Unfortunately, neither of Aristotle’s theories of intellection and perception are meant to handle or make sense of some important modern intentional concerns, e.g. dreams, imagination, future hopes, hallucinations, spiritual experience and faith. It is likely that phantasia, a capacity connected to perception and experience, is the device which handles many intentional concerns which perception and intellection cannot explain.

There are many unsolved portions of this puzzle, but this should serve as a good sketch of his theory of perception and its relation to intentionality. Unfortunately, Aristotle’s theory of perception is far from sufficient for an adequate theory of intentionality, but I think it is a necessary component to his theory of intentionality. 


-------------------------------------

<<footnotes "1" "Interestingly, the very word //intentionality //originates from the medieval scholastics and was later revived by Franz Brentano, both of which were profoundly influenced by Aristotle.">>
<<footnotes "2" "Caston, Victor. “Aristotle and the Problem of Intentionality,” //Philosophy and Phenomenological Research//, Vol. 58, No. 2 (International Phenomenological Society: Jun., 1998), pp. 249-298">>
<<footnotes "3" "Aristotle. //Complete Works of Aristotle: The Revised Oxford Translation//. Edited by J. Barnes. 2 vols. Bollingen Series.  (Princeton, NJ:  Princeton University Press, 1984), De Anima, Book 2.5, 416b32-417a2">>
<<footnotes "4" "De Anima, Book 2.4, 415b22-415b27">>
<<footnotes "5" "De Anima, Book 2.5, 417b2-417b6, 417b7-417b9">>
<<footnotes "6" "De Anima, Book 2.5, 417a10-417a21, 417b29-418a6">>
<<footnotes "7" "De Anima, Book 2.5, 417b29-418a6">>
<<footnotes "8" "De Anima, Book 2.12, 424a18-424a23">>
<<footnotes "9" "De Anima, Book 2.6, 418a7-418a16">>
<<footnotes "10" "De Anima, Book 3.2">>
<<footnotes "11" "Caston, Victor. “Aristotle's Two Intellects: A Modest Proposal,” //Phronesis//, Vol. 44, No. 3 (BRILL: Aug., 1999), 202">>
<<footnotes "12" "De Anima, Book 3.1">>
<<footnotes "13" "De Anima, Book 3.3 428a10-24">>


-------------------------------------

''Bibliography''

Aristotle. //Complete Works of Aristotle: The Revised Oxford Translation//. Edited by J. Barnes. 2 
vols. Bollingen Series.  (Princeton, NJ:  Princeton University Press, 1984).

Burnyeat, M.F. “Is an Aristotelian Philosophy of Mind Still Credible?” //Essays on Aristotle’s De Anima//, 
ed. Martha C. Nussbaum and Amelie Oksenberg Rorty (Oxford University Press: 1992), pp. 15-26.

Butler, Jim. “Ancient Philosophy.” Class lectures, Berea College, Fall 2003.

Caston, Victor. “Aristotle and the Problem of Intentionality,” //Philosophy and Phenomenological 
Research//, Vol. 58, No. 2 (International Phenomenological Society: Jun., 1998), pp. 249-298.

Caston, Victor. “Aristotle's Two Intellects: A Modest Proposal,” //Phronesis//, Vol. 44, No. 3 (BRILL: Aug., 
1999), pp. 199-227.

Caston, Victor. “Aristotle on Consciousness,” //Mind//, New Series, Vol. 111, No. 444 (Oxford University 
Press on behalf of Mind Association: Oct., 2002), pp. 751-815.

Cogburn, Jon. “Continental Analytic Philosophy: Intentionality.” Class lectures, Louisiana State 
University, Fall 2010.

Cohen, Marc. “Aristotle on Perception.” 
http://faculty.washington.edu/smcohen/433/PerceptionLecture.pdf (accessed November 22, 2010).

Crystal, Ian. “Aristotle.” Class lectures, Louisiana State University, Fall 2010.

Ebert, Theodor. “Aristotle on What Is Done in Perceiving,” //Zeitschrift für philosophische Forschung//, Bd. 
37, H. 2 (Vittorio Klostermann GmbH : Apr. - Jun., 1983), pp. 181-198.

Magee, Joseph M. “Sense Organs and the Activity of Sensation in Aristotle, ” //Phronesis//, Vol. 45, No. 4 
(BRILL: Nov., 2000), pp. 306-330.

Slakey, Thomas J. “Aristotle on Sense Perception,” //The Philosophical Review//, Vol. 70, No. 4 (Duke 
University Press on behalf of Philosophical Review: Oct., 1961), pp. 470-484.

Sorabji, Richard. “Intentionality and Physiological Processes: Aristotle’s Theory of Sense-Perception,” 
//Essays on Aristotle’s De Anima//, ed. Martha C. Nussbaum and Amelie Oksenberg Rorty (Oxford University Press: 1992), pp. 195-226.

Stanford Encyclopedia of Philosophy. “Aristotle's Psychology.”  
http://plato.stanford.edu/entries/intentionality-ancient/#5 (accessed November 22, 2010).

Stanford Encyclopedia of Philosophy. “Intentionality in Ancient Philosophy.”  
http://plato.stanford.edu/entries/intentionality-ancient/#5 (accessed November 22, 2010).

''[1][a]''

McDowell argues against the codifiability of the virtuous agent’s views as universalized principles or rules which serve as the major premise in his hypothetical syllogism. He asserts an internalist view of ethics, whereby the justification and explanation for ‘what is right’ flows out from the virtuous agent into the external world. From this view, it seems that if anything or anyone could serve as an objective mechanism for universalizing principles it would have to be the mind of the virtuous agent. McDowell argues that the mind of the virtuous agent is not this mechanism and that the virtuous agent’s complete set of thoughts and views cannot be universalized. Consequently, given both his internalism and anti-codifiabilism, McDowell is pointing towards the impossibility of universal, independently objective moral truth. He defends this thesis:

<<<
As Aristotle consistently says, the best generalizations about how one should behave hold only for the most part….If one attempted to reduce one’s conception of what virtue requires to a set of rules, then, however subtle and thoughtful one was in drawing up the code, cases would inevitably turn up in which a mechanical application of the rules would strike one as wrong—and not necessarily because one had changed one’s mind; rather, one’s mind on the matter was not susceptible of capture in any universal formula.<<ref "1">>
<<< 

	The very nature of the virtuous agent’s mind and reason cannot be algorithmically captured and defined. Even if one were to attempt to algorithmically explicate the virtuous mind, or even if the virtuous agent were herself to provide accurate generalizations of morality, one would somehow find exceptions in these mechanistic rules. The rules would not, in all possible cases, match what the virtuous person would actually do. Likely, this isn’t a practical point either, whereby he is claiming we simply lack the ability to physically formulate universalized morality - this is a much stronger point about theoretical possibility. Namely, no matter how complex and detailed the algorithm or set of rules generated, one can never possibly capture all of moral reality or what is inside the mind of the virtuous agent. Virtue, as far as it can be conceptually abstracted from the Virtuous person, is not algorithmic. (That strikes me as saying that morality, in some sense, isn’t rational! I’m sure he thinks this article is meant for someone like me.)  

Note the order of this argument (as from what I can see, it is different from the Wittgensteinian argument presented later) – it is because the mind of the virtuous person isn’t algorithmic or mechanistic (I’m not sure how you can be a naturalist if you believe this – nature, from this view, should be reducible to one gigantic physical algorithm), in conjunction with the rightness-making primacy of the virtuous character inhering in the virtuous agent, that we can know that there isn’t a universal, algorithmic formula which can flow out to the external world. 

McDowell continues to argue against universal formulas and externalism, but via a different route. This one is not founded on the idea that the virtuous mind isn’t algorithmic directly (which may simply be a brute fact in his pseudo-naturalistic philosophy of mind and intentionality), but rather on the notion that the psychological state in the mind of the virtuous agent doesn’t correspond to anything universal and independent of the agent. There is no universal algorithm, and consequently, no need for the notion of a corresponding rule in our minds. He says:

<<<
Rationality requires consistency; a specific conception of rationality in a particular area imposes a specific view of what counts as going on doing the same thing here. The prejudice is the idea that acting in the light of a specific conception of rationality must be explicable in terms of being guided by a formulable universal principle. This prejudice comes under radical attack in Wittgenstein’s discussion, in the Philosophical Investigations, of the concept of following a rule.<<ref "2">> 
<<<

	McDowell wishes to attack the very notion of following a rule. In demonstrating skepticism of rule-following in general, he can establish why universal moral rule-following is fundamentally flawed. He uses an argument from Wittgenstein to smother the possibility of consistently following objective universal rules.  McDowell explains:

<<<
Consider an exercise of rationality in which there is a formulable rule, of which each successive action can be regarded as an application, appropriate in the circumstances arrived at: say (Wittgenstein’s example) the extending of a series of numbers. We tend to picture the understanding of the instruction ‘Add 2’---command of the rule for extending the series 2, 4, 6, 8,…---as a psychological mechanism which, aside from lapses of attention and so forth, churns out the appropriate behavior with the sort of reliability which a physical mechanism, say a piece of clock, might have.<<ref "3">>
<<<

	The mathematical, universal rule of ‘add 2’, which is paralleled to the notion of a universal moral rule, is captured and instantiated with in a mind, what he terms as a ‘psychological mechanism’. This is a particular person’s attempt to apprehend, interpret, mimic and ‘follow’ that independent universal rule. The psychological mechanism is our personal rule which is supposed to mirror the universal rule; the universal rule is an abstract blueprint of the engine, and the psychological mechanism is an instantiation of it.

The process starts with a specific circumstance, namely your location on the number line (the minor premise in the syllogism), input into this psychological mechanism (a cognitive imprint of the abstract universal major premise) which serves to digest the circumstantial input and consistently produce the appropriate answer (conclusion), in this case a mathematical computation to the next point on the number line (parallel to a moral theory taking an input of the circumstances and outputting the right moral decision/action). The psychological mechanism, if it correctly mimics the blueprint of the universal rule, will mechanically output the appropriate answer. 

There is a normative relationship between the psychological mechanism and the universal rule. Correctness is judged by the accuracy of a particular psychological mechanism’s mimetic relationship to the blueprint of the universal rule. If the instantiation fails to mimic the blueprint with all possible inputs, then one is said to have the ‘wrong rule’ in mind. If you have the right rule in mind, whereby your instantiation mirrors the blueprint completely, then your psychological mechanism is correct, and it will always produce the appropriate answers.

Note how McDowell’s choice to use Wittgenstein’s example and criticize the foundation of following a simple mathematical algorithm, if successful, would undermine the following of moral algorithms as well. Surely if one can be skeptical about psychological mechanisms being justified in ‘following rules’ of mathematics, what is usually considered an exemplar subject matter for what is patently obvious and clearly universally true, the same can be said of the uncertainty of rule-following for any psychological mechanism, including some subject matter as difficult and (I suppose for some people) unobvious as universalized ethics. The attack goes:

<<<
Suppose the person says, when asked what he is doing, ‘Look, I’m adding 2 each time.’ This apparent manifestation of understanding (or any other) will have been accompanied, at any point, by at most a finite fragment of the potentially infinite range of behavior which we want to say the rule dictates.<<ref "4">>
<<<

	There are an infinite number of possible instantiations, and this person has but one. His instantiation, namely his psychological mechanism, may or may not match the universal blueprint. How would we know if his psychological mechanism follows the universal rule? Furthermore, from this one of infinitely many possible instantiations of the universal rule, it is clear that any particular iteration, application, or computation cycle may produce any possible result. It seems that with an infinite number of instantiations of the universal rule, there will also be an infinite number of possible answers that might be given in a specific circumstance. This makes it tricky to compare instantiations, as perhaps given an arbitrarily large finite series of tests they will appear to employ the same algorithm, given an infinite series of tests, we will find they don’t. McDowell continues:

<<<
Thus the evidence for the presence of the pictured state is always compatible with the supposition that, on some future occasion for its exercise, the behavior elicited by the occasion will diverge from what we would count as correct.
<<<

	From outer appearances and testing, someone might appear to have a psychological mechanism which matches and acts in accordance with the universal rule, in this case ‘add 2’.  But, since we aren’t testing his psychological mechanism at every possible circumstance (every point on the number line), testing a finite set of points on the number line rather than the infinite set of points, we can’t really know if a person has objectively ‘followed the rule’ by having matched the blueprint. Perhaps, in the future, a person’s particular psychological mechanism may not result in acts in accordance with the universal rule ‘add 2’. How are we to know? McDowell continues:

<<<
Wittgenstein dramatizes this with the example of the man who continues the series, after 1,000, with 1,004, 1,008,…If a possibility of the 1,004, 1,008, …type were to be realized (and we could not bring the person to concede that he had simply made a mistake), that would show that the behavior hitherto was not guided by the psychological conformation which we were picturing as guiding it. The pictured state, then, always transcends the grounds on which it is allegedly postulated.<<ref "5">>
<<<

The man is //apparently //matching the blueprint of the universal rule, ‘add 2’, in each circumstance up to 1000; when he begins to diverge, we would be tempted to say he is //wrong//, that his psychological mechanism is incompatible with the blueprint of the universal rule ‘add 2’.  He insists, however, that he is correctly following the rule ‘add 2’, that his psychological mechanism really matches the rule ‘add 2’, and he will claim that we are the ones who lack objectivity.  If, then, we can have been wrong in our belief that this person, whose behavior has become aberrant, was previously following the rule, how can we be sure that another individual, whose behavior has not (so far) strayed is, in fact, following the rule as we have conceptualized it. 

If we can doubt other peoples’ minds, then McDowell believes we can doubt our own. Why should we think that we are adhering to a universal rule? Furthermore, we have confidence in our expectations of peoples’ behavior, even without relying upon a psychological mechanism. The entire process of having a psychological mechanism which is supposed to mirror universal rules and dictate correct behavior is an illusion, or is, at least, untrustworthy. He continues:

<<<
[O]n reaching 1,000, the person goes on as we expect, with 1,002, 1,004,…, but with a sense of dissociation from what he is doing. What he does no longer strikes him as going on in the same way; it feels as if a sheer habit has usurped his reason in controlling his behaviour. We confidently expect that this sort of thing will not happen; once again, postulation of a psychological mechanism does nothing to underwrite this confidence.<<ref "6">>
<<<

We don’t need the psychological mechanism to be confident of the consistency of anyone’s behavior. Even a person who appears to be ‘following a rule’ may not – perhaps it just habit (exactly how this isn’t a type of psychological mechanism is very unclear to me). 

McDowell’s point is that the actuality of the circumstance transcends our rule-making capability.  That is, there is an infinite range of circumstances (each point on the number line) which we want to cover with a universal rule.  McDowell believes there will always be, however, possible circumstances along that range that do not fit within the boundaries that can be covered by a universal rule.  The idea is that the same holds true for our conceptions of universal ethical standards – the reality of the situations we face will always be beyond our ability to formulate rules. 

According to McDowell, we can’t have confidence in the psychological mechanism to adhere to the universal rule. There is no universal rule to which to adhere. The hypothetical existence of the psychological mechanism does not save us from ‘vertigo’ (discussed further below). Our confidence in others’ actions are based on something else entirely, namely the forms of life. McDowell’s coup de grâce:

<<<
[There is] a congruence of subjectivities, with the congruence not grounded as it would need to be to amount to an objectivity. So we feel we have lost the objectivity of (in our case) mathematics (and similarly in other cases). We recoil from this vertigo into the idea that we are kept on the rails by our grasp of rule. This idea has a pair of twin components: first, the idea (as above) that grasp of the rules is a psychological mechanism which (apart from mechanical failure, which is how we picture mistakes and so forth) guarantees that we stay in the straight and narrow; and, second, the idea that the rails—what we engage our mental wheels with when we come to grasp the rules—are objectively there, in a way which transcends the ‘mere’ sharing of forms of life…This composite idea is not the perception of some truth, but a consoling myth, elicited from us by our inability to endure the vertigo.<<ref "7">>
<<<

	All that rule-following, McDowell says, is just an illusion. There are no universal principles, and we can’t follow them. The psychological mechanism is unnecessary. He claims that his challengers may not like that fact, and they might undergo ‘vertigo’, feeling unable to make sense of objectivity, truth, and rationality.
  
Somehow his challengers are wrong about the nature of reason, about what counts as ‘consistency’, and about the primacy of the external, objective world. His vertiginous challengers are artificially imposing this algorithmic conceptual framework on rationality. 
If there is no psychological mechanism necessary to apprehend correct behavior in a given situation, how does one acquire an ability to do what appears like ‘adding 2’?  If a student is taught, through the use of specific examples, how to ‘add 2’, how does that student then go on to other situations in which it is necessary to ‘add 2’ and do so correctly?  One might assume that the student infers from the given examples a universal rule of ‘add 2’ that is later applied to appropriate situations.  McDowell argues, however, that this deductive paradigm is unnecessary; rather, the student, through the given situations, develops a sensitivity to similar situations, and understands that the appropriate thing to do is to add two.  The student does not need some psychological mechanism to apprehend some illusory universal rule; instead, the student develops the sensitivity necessary to act in given situations through involvement with the shared forms of life.<<ref "8">>  How this sensitivity isn’t still a form of pattern recognition and abstract rule-formation, perhaps even a well-hidden psychological mechanism in his theory, is very unclear to me (I stand rightly accused of this vertigo; I bask in it). I’m unsure how a congruence of subjectivities will result in a form of objectivity, as well. Regardless, McDowell believes has a better conceptual framework for the nature of reason, maintaining its consistency without resorting to objective universal rules. He plows forward:

There is nothing but shared forms of life to keep us, as it were, on the rails.<<ref "9">>

The truth is that is it only because of our own involvement in our ‘whirl of organism’ that we can understand the words we produce as conferring that special compellingness on the judgment explained.<<ref "10">> 

Contemplating the dependence should not include vertigo at all. We cannot be whole-heartedly engaged in the relevant parts of the ‘whirl of organism’, and at the same time achieve the detachment necessary in order to query whether our unreflective view of what we are doing is illusory. The cure for the vertigo, then, is to give up the idea that philosophical thought, about the sorts of practice in question, should be undertaken at some external standpoint, outside our immersion in our familiar forms of life.<<ref "11">>

	Instead of relying upon some illusory objectivity and rule-following, McDowell presents us with the real conceptual framework, the ‘whirl of organism’ and the ‘forms of life’. Only in these subjective contexts does he believe we can muster a sense of true objectivity and consistent reasoning, particularly for morality.

Circling back, by attacking the notion of rule-following, McDowell believes he’s demonstrated why ethics is uncodifiable, and how his internalism and the reliable sensitivity of the virtuous agent, as a subjective approach within forms of life, make sense. In the ultimate analysis, McDowell thinks there is nothing that transcends one’s particularities and form of life. Morality is not independently objective; it is subjective to the forms of life. Rule-based thinking requires justification for why things are right, in some way, while McDowell believes the Virtuous agent, as he lays the notion out, is a much better justification for why things are right. 

'' [b]''

Part of McDowell’s argument is spent attempting to secure his theory against the accusation of non-cognitivism, that ethical statements aren’t the sorts of propositions which are either true or false, and that consequently, virtue ethics isn’t moral knowledge and the decision procedure of virtuous agent aren’t really rational and objective. The cognitive process he claims the virtuous agent employs is //reliable sensitivity//:

<<<
[V]irtue, in general, is: an ability to recognize requirements which situations impose on one’s behavior. It is a single complex sensitivity of this sort which we are aiming to instill when we aim to inculcate a moral outlook.<<ref "12">>
<<<

<<<
It is by virtue of [the virtuous agent’s] seeing this particular fact rather than that one as the salient fact about the situation that he is moved to act by this concern rather than that one.<<ref "13">>
<<<

The virtuous agent’s reliable sensitivity serves a sort of perceptual cognitive device which can consistently pick out what is relevant in a situation. For example, the virtuous agent encounters a circumstance which contains some number of relevant and irrelevant moral factors. What counts as being relevant seems to vary between circumstances, and so it takes a special sensitivity to know what matters. The virtuous agent’s reliable sensitivity allows him to focus his concern upon only the salient factors of the circumstance, and it is from the recognition of the salient factors that the virtuous agent can understand how he should act. Again, this reliable sensitivity is somehow the sort of reasoning which can’t be captured within an algorithm (it’s super special somehow). The cognitive moral outlook of the virtuous agent is his reliable sensitivity. McDowell offers the object of this reliable sensitivity:

<<<
If we resist non-cognitivism, we can equate the conceptual equipment which forms the framework of anything recognizable as a moral outlook with a capacity to be impressed by certain aspects of reality. But ethical reality is immensely difficult to see clearly.<<ref "14">>
<<<

	Ethical reality is the set of salient features which a virtuous agent picks out in a circumstance. Assuming virtuous agents are rare, it really should be difficult to see ethical reality clearly because only the virtuous agent can see it clearly. When we join this argument with McDowell’s implementation of Wittgenstein, we see that the ‘form of life’, insofar as it is a normative description of circumstances, is part of the analysis of ethical reality. McDowell employs Stanley Cavell’s interpretation of Wittgenstein’s ‘forms of life’:

<<<
We learn and teach words in certain contexts, and then we are expected, and expect others, to be able to project them into further contexts. Nothing insures that this projection will take place (in particular, not the grasping of universals nor the grasping of books of rules), just as nothing insures that we will make, and understand, the same projections. That on the whole we do is a matter of our sharing routes of interest and feeling, modes of response, senses of humour and of significance and of fulfillment, of what is outrageous, of what is similar to what else, what a rebuke, what forgiveness, of when an utterance is an assertion, when an appeal, when an explanation—all the whirl of organism Wittgenstein calls ‘forms of life.’ Human speech and activity, sanity and community, rest upon nothing more, but nothing less, than this.<<ref "15">>
<<<

The ‘forms of life’ are the social spheres in which agents live. The norms, social cues, and mores of the society which surrounds an agent compose a form of life. A Catholic in Massachusetts has a certain form of life, and a Buddhist in a province of China has another form of life. Each form of life has its own expectations and controls which dictate for the virtuous agent what counts as salient ethical features of any given circumstance. The virtuous agent is the person who can recognize and be ‘impressed by’ the relevant factors of a situation from within his or her own form of life. A particular agent’s ethical reality is relative and subjective to whatever form of life in which he or she lives.

From what I can see, McDowell’s denial of rule-following does not sit well with his notion of ‘ethical reality’. First, I have no idea how McDowell can claim that reliable sensitivity isn’t a psychological mechanism (even if he wants to say there is only an illusory relationship to a made-up, non-existing universal rule). Reliability, by its very nature, points to ‘rules’. It is about a pattern. It is about following a certain expected order. Let him attempt to deny the existence of objective universal rules, but I don’t see how he can honestly say that the virtuous agent employs a cognitive process which isn’t a psychological mechanism. Of course, inherent to being a psychological mechanism is trying to follow rules; it is algorithmic in nature. I can’t make sense of something that is rational, and therefore consistent, but not algorithmic. I don’t see how the rational mind escapes being at least under the illusion that it follow rules – I think he must posit the existence of the psychological mechanism if he wishes to posit rationality. Of course, this doesn’t necessarily force his hand into postulating an actual universal rule; it can remain a mere ‘illusion’ for now. He claims his theory is cognitivist, but he did not maintain and support; I’m convinced his peddling disguised non-cognitivism.

My second problem is that I think he is assuming a type of universal rule, even when he thinks he isn’t. Ethical reality, as it is based on a form of life, still seems external. Sure, whatever the virtuous agent says is salient is what is salient, but what is salient to the virtuous agent is conditioned by a form of life. I believe we can solve this ‘chicken or egg’ problem; the form of life, insofar as it is an environment for social conditioning, is primitive to the virtuous agent in this process of reliable sensitivity. The form of life defines what does and doesn’t count as salient in a circumstance because it defines the virtuous agent, and whatever agents happen to be sensitive to the norms of a form of life are said to be virtuous. The society, the form of life, defines what is right. Here’s the kicker: each form of life is really its own sphere of rules, it has its own justice, and its own code of conduct.

By connecting the forms of life to ethical reality, McDowell has simply narrowed ethical objectivity from the universal scope to the subjective form of life. While he denies universal rules, the form of life serves as the new grounds of objectivity and the new ‘universal’ for McDowell’s theory. It seems that since the form of life is composed of rules and norms and mores, which in turn goes on to help define salience in this process of reliable sensitivity, then the virtuous agent is applying rules derived from his particular form of life to any given circumstance.  McDowell denies the ability to follow rules, but I believe he ends up with the virtuous agent following rules within a form of life. 

If virtuous agents are following rules, whereby there is psychological mechanism (reliable sensitivity) and some ‘universal rules’ (contained, conditioned, shaped, and defined by the forms of life to which virtuous agents belong), then I think McDowell’s notion of ethical reality does not sit well at all with his opposition to rule-following.

''[c]''

	McDowell’s Wittgensteinian view, specifically the use of the ‘forms of life’, seems deeply misguided to me; the form of life is just another way to explain moral relativism. I actually like the descriptive capacity of the notion of a ‘form of life’ because it requires us to recognize cultural differences, social conditioning, memetics, sociocybernetics, and many other complex and interesting things that go into making individuals and groups who they are. Just because ‘forms of life’ may have this descriptive capacity does not mean, however, it should serve in a normative capacity. 

	He thinks they serve in some normative capacity. A universal, objective moral reality is denied by McDowell. Reality, instead, is a set of forms of life, each form of life acting as a moral reality to its constituents. Reality is a bag of marbles, and each marble is a form of life. The bag says nothing universally normative, only the marble is normative within its own sphere. No form of life overlaps another, and each set of ethical values are independently justified.

It seems McDowell doesn’t believe we can normatively compare the values of one form of life to another. Each form of life is its own socially constructed moral system. Each form of life has its own way of doing things, and rightness-defining/salient factors of circumstances will vary based upon in which form of life an agent happens to find themselves. Perhaps a virtuous Buddhist from China will find some features of a circumstance salient where a virtuous Catholic from Massachusetts will not. Both are virtuous in their own forms of life, and neither can be said to be vicious, as we can only judge them according to their own form of life.  How is this not pointing to moral relativism? 

McDowell isn’t very clear about what separates one form of life from another. There may be an infinite number of possible forms of life. Couldn’t any action or belief be justified by some of the infinitely many forms of life? If so, this seems like moral relativism.

I have other questions too. What constitutes being in one form of life rather than another? What is the minimal scope of a form of life? How can you justify that scope – would you do it from within your own form of life? Even the mechanism of being in a form of life isn’t well described. For example, it doesn’t make sense to be in more than one form of life – salient features of different forms of life can be contradictory. Can you switch forms of life? I don’t know, perhaps some forms of life are ‘switchable’ and others aren’t. 

While no form of life has a universal scope, we aren’t sure exactly how particular a scope we can use in pointing out a form of life. Consider an example of the problems this creates. Being an American might be a broad form of life. What does it mean to be a Texan? That would be a narrower form of life, right? It would be overly simple, however, to assume that since Texas is a part of the United States that the Texan form of life is a subset of the American form of life. Note, perhaps being a virtuous Texan might be contradictory to being a virtuous American. For example, it might be a virtue of the American form of life to oppose the secession of any state from the United States. Being a virtuous Texan, on the other hand, may require that you are in favor of Texas’ secession from the United States (take current legislation of some hardcore Texans). 

It seems that we can narrow the scope from Texas to Houston, and from Houston to a certain section of town, and the section to a certain block, and so on, until the scope of the ‘form of life’ reaches the individual person. Why can’t each individual have their own form of life? It seems perfectly reasonable to justify their beliefs as moral if they are really their own form of life. I see no good reason to think that there aren’t an infinite number of diverse forms of life, covering pretty much every configuration of norms and beliefs possible, which leads to the justification of pretty much anything. I also see no reason why the scope of a form of life can’t be reduced to an individual, or why there can’t be just one individual in a possible form of life. As far as I can see, this would also justify moral relativism.
 
	If moral relativism is to be denied, then I think McDowell’s use of ‘forms of life’, which is innately relativistic, fails. But, why should I think that moral relativism is to be denied?

Internalists require a way to draw pseudo-objectivity out of essentially subjective systems, and the ‘forms of life’ do just that (it comes at a great cost). Who doesn’t ‘like’ subjective moral systems? They are easy to swallow. They pose no problem for the rest of our beliefs; in fact, they justify what we believe and how we behave, no matter what that ends up being. The moral relativism which flows from the ‘form of life’ argument is ridiculous (I can’t overstate this – the concept makes me physically ill). Moral relativism is not an adequate theory of ethics (it isn’t even ethics to me; it swims with its other useless brethren, moral skepticism and nihilism).

Everything is relative to its ‘form of life’. What counts as virtue, eudaimonia, the virtuous agent, etc. are all pseudo-objective within the subjective forms of life. These notions, which otherwise could have remained pure and unblemished, have been infected by moral relativism. They are meaningless. 

''[2][a]''

	In Chapter 8, Hursthouse defends her thesis ‘the virtues benefit their possessor’. She spends much of the chapter fleshing out what this thesis really means. It isn’t straightforward; a great deal of context and argumentation is used to qualify it. In order to demonstrate what I consider to be two fundamental pillars which support this thesis, I’ll need to explicate her overall argument so we can see how and why she arrives at her conclusion. 

	Hursthouse lays out her major concern in the preamble, a concern which requires several chapters:

<<<
Can we hope to achieve a justified conviction that certain views about which character traits are the virtues (and which not) are objectively correct?<<ref "16">>
<<<

	This is the objective which the claim ‘the virtues benefit their possessor’ will partly answer. Importantly, in her view, this thesis is a component of a larger argument which justifies the virtues but does not necessarily provide motivating reasons for practicing them. I find that an odd division, but so be it; this is part of the conceptual framework she provides, so let’s run with it.

Her argument at large rests upon a fundamental assumption. She explains that, “a virtue is a character trait a human being needs for eudaimonia, to flourish to live well.”<<ref "17">>  The word ‘benefit’ in her thesis is directly linked to the notion of flourishing and eudaimonia. She wishes to demonstrate how the virtues lead to eudaimonia. Eudaimonia is the primary goal and ‘end’, in some sense, and the virtues are a means to that end.  [Pillar Argument #1] Eudaimonia is foundational to justifying the virtues. This is a long-standing assumption in her book, but it is perhaps most prevalent in this particular chapter. Without this pillar, we could make no sense of what she means by ‘the virtues benefit their possessor’.

	Hursthouse attempts to answer a really important question about the relationship between virtue and eudaimonia. Are the virtues sufficient or even necessary for eudaimonia?<<ref "18">>  She employs the analogy of the doctor in determining the sufficiency and/or necessity of virtues for achieving eudaimonia. She also says:

<<<
The claim is not that possession of the virtues guarantees that one will flourish. The claim is that they are the only reliable bet—even though, it is agreed, I might be unlucky and, precisely because of my virtue, wind up dying early or with my life marred or ruined.<<ref "19">>
<<<
<<< 
To claim that the virtues, for the most part, benefit their possessor, enabling her to flourish, is not to claim that virtue is necessary for happiness. It is to claim that no ‘regimen’ will serve one better—no other candidate ‘regimen’ is remotely plausible.<<ref "20">>
<<<

	It seems clear that virtue is not sufficient for eudaimonia. Moral luck can easily override virtue’s contribution to attaining eudaimonia. Circumstances out of our control can impact the possibility of eudaimonia. Having a virtuous character isn’t enough to attain eudaimonia. But, is it necessary? She seems to waffle on it above, but I don’t think she really means it; in fact, I think the correct interpretation, given the rest of her argument at large would be ‘yes’.
 
	Life is a gamble, and virtue, as a regimen, provides the highest chance for eudaimonia. In fact, she calls it the “only reliable bet.”  This is a very strong statement. In decision (game) theory, given choices with only probabilistic outcomes, the appropriate strategy for achieving the goal will be the choice with the highest chance of achieving the goal. Virtue is the best strategy for achieving eudaimonia. She goes even further though in claiming its status as the ‘only reliable bet’, implying that the other choices don’t even appear to have close to the same chance in the overall reliability calculation. This is argument is about maximizing odds, and so, at this point it isn’t yet directly explaining that virtue is ‘necessary’ for eudaimonia. 

If, in her theory, virtue does attain the status of being ‘necessary’ for eudaimonia (and I think it will), and if eudaimonia is the ‘end’ we seek, then virtue becomes justified as a necessary means. For now, virtue is only probabilistically justified by eudaimonia as a strategy. Her case for virtue’s necessity, in my view, becomes much stronger though. Before she provides us this notion, she tackles a few obstacles. Hursthouse continues:

<<<
Those who draw attention to the fact that my virtue may lead to my downfall and/or the fact that the wicked sometimes flourish like the green bay tree are, perhaps unconsciously, thinking of these as the obvious responses that would be made by the wicked or ‘the moral sceptic’ if we were to recommend the life of virtue to them on the grounds of the benefit that it will bring. They foresee that, if we tried to convince them that the life of virtue was worth the risk, whereas the life of vice (which clearly carries its own risks) was not, we shall fail. They will just laugh at us and go their merry wicked way, finding our answer completely implausible.<<ref "22">>
<<<

	Hursthouse realizes that her previous point about virtue as the ‘best bet’ to achieve eudaimonia may be criticized as being unjustified and lacking objectivity. How can she convince the vicious and the wicked from an empirical, neutral point of view (she’s going to deny this is possible later on) that the virtues are the ‘best bet’ for achieving eudaimonia? How does Hursthouse handle cases that seem contrary to her view of this ‘bet’? It does seem as if there are several counterexample situations which demonstrate that virtue isn’t the best bet for flourishing (e.g. sensible knave). She explains:

<<<
Suppose…we fall under a vicious regime in which…[it] cease[s] to be true that those who have and exercise the virtues characteristically achieve //eudaimonia//, and thereby, virtue can indeed cease to be a reliable way to achieve it…But, even in such times, it is still not the case that there is some //other //reliable way.<<ref "23">>
<<<

	I think this isn’t a very satisfactory answer. Why should I believe that there aren’t times in the world in which the most reliable way (or in fact a highly reliable way, not just the ‘most’) to achieve eudaimonia will be vices? It would seem she needs some empirical evidence which she hasn’t provided in order to say this.

	As well, we must really wonder: what is reliability? What is reliable in the short term may not be what is reliable in the long term. Perhaps over the course of just my individual life, there really is a tactic more reliable than virtue for achieving eudaimonia (for reasons we’ll see later, she will deny this). It seems as if it would have been better to have explained that the overall course of human history, despite some dark times, demonstrates the long term reliability of virtue – and in that fact, perhaps the reliability of virtue should be measured over all lifetimes. Note, this is an empirical issue for her critics. Any attempt at an empirical, objective justification, we shall see, has been in vain:

<<<
Our answer to the question ‘Why should I be virtuous/moral?’ may be ‘I want to be—that’s the sort of life I want to live, the sort that I think is a good and successful and rewarding one.’<<ref "24">>
<<<

	Virtue, as Hursthouse specifies it, is justified from the perspective of the virtuous agent. [Argument #2] An internalist view of ethics is foundational to Hursthouse’s justification of virtue ‘benefiting’ the possessor. If this is the case, the empirical claims about the flourishing are in a great deal of trouble because the very definition and metric of ‘flourishing’ is subjective, only the virtuous agent knows these things. Much of the rest of the argument is framed such that there isn’t a ‘neutral view’ between the virtuous and the vicious, and this demonstrates her internalism. She gives us an example:

<<<
[Hare] describes all…[claims] as ‘empirical’ claims about the way human life works (‘the way the world goes’) and regards them as providing reasons ‘of a non-moral sort’ for not choosing to be an amoralist ‘from the point of view of an egoist’, and I do not agree with him that they have this status. When Hare makes these claims he does not, it seems to me, speak from a neutral point of view he might share with an egoist, but from the point of view of the humane, high-principled man that he is.<<ref "25">>
<<<
<<<
There is no possibility of ‘justifying morality from the outside’ by appealing to anything ‘non-moral’, or by finding a neutral point of view that the fairly virtuous and the wicked can share.<<ref "26">>
<<<

	Hare has incorrectly thought that he has an objective ‘neutral’ position from which he justifies the virtues. He really can only begin to justify them from his own perspective. He has a specific ethical outlook which will act as a bias in any of his explanations. Of course he would see the world that way, he’s got a specific moral outlook, and he can’t escape it. He can never be truly unbiased and objective. 

The fundamental answer to the objections of the wicked and vicious is this: there is no neutral position. Hursthouse claims we don’t need to justify virtue to the vicious because to some extent they simply can’t understand it. Virtue must be justified by Hare’s reasons, but can only be done so from a virtuous perspective. From here, Hursthouse provides the framework for understanding how ‘the virtues benefit their possessor’. 

#It is only from within the outlook of the (at least moderately) virtuous that the truth of ‘the virtues benefit their possessor’ can be discerned.
#From the perspective of this outlook it is necessarily or infallibly true that the virtues benefit their possessor, because
#The virtuous have a conception of eudaimonia, of benefit, advantage, harm and loss, of ‘profit’ and ‘what pays’ such that nothing gained by action contrary to virtue pays or is a genuine advantage or benefit, and no sacrifice necessitated by virtue counts as a loss. In virtuous action one ‘accomplishes all’, achieves ‘moral benefit’, and since the virtues, uniquely, enable one to act virtuously, and never fail to do so, they are, indeed, guaranteed to benefit their possessor, enabling her to achieve eudaimonia, namely, a life lived in accordance with the virtues.<<ref "27">>

In (3) she claims a ‘guarantee’ which is quite strong. I think this is in conflict with her ideas of moral luck and tragic dilemmas. This passage strengthens her probabilistic claim to one of necessity. The virtues are necessary to enabling an agent to achieve eudaimonia. However the virtuous agent might conceive of eudaimonia, the virtues are certainly a necessary condition to the achievement of eudaimonia.

We can also see the dominant strand of internalism in her argument. Defining and justifying both virtue and eudaimonia are accomplished by those who are virtuous alone. Only the virtuous can understand and achieve these things for themselves. The wicked are left out in the cognitive cold; there is no complete explanation for them. There is no objective, external standard by which to judge, define, and justify Hursthouse’s conception of virtue and eudaimonia. 

Hursthouse doesn’t deny the possibility that ideas of the virtuous can overlap, to some extent and not completely, with the ideas of the vicious.  The overlap, however, seems quite coincidental. The focus of justification of the virtues, in part, will be something which the vicious will find implausible. Her internalism remains very robust.

	Hursthouse disagrees with the idea that “morality is a form of ‘enlightened self-interest’ specified from the neutral point of view,” and instead believes “morality is a form of ‘enlightened self-interest’ specified in a ‘value-laden’ way, from within an ethical outlook.” 

	Clearly, the internalism of her theory plays a huge role in defining eudaimonia. The virtuous agent is the only source of describing eudaimonia, as in some sense, eudaimonia acts as the end goal of the agent. The virtuous agent, perhaps not consciously, but according to this internalism, sets the metric to gauge not only which characteristics are most likely to bring about eudaimonia, but even which characteristics are always necessary to the achievement of eudemonia - namely the virtues. Thus, from an internalist point of view, employing a certain virtuous perspective, it is eudaimonia, as an end, which justify the virtues.

''[b]''
''[Criticism of Pillar Argument #2]''

Hursthouse holds what might be a slightly softer version of internalism than McDowell does, but she is an internalist. As an internalist, she thinks there is no neutral, independent (of character) way to understand virtue. The virtuous person is supposed to be the place/person we look to in order to answer ‘what should we do?’ (which I take to be the primary question of ethics, even if they might argue this is a secondary question). The internalist view relies upon the primacy of the virtues and the virtuous character, and, in this, virtue ethics does not collapse into any other approach to ethics (which should be important to a virtue ethicist). 

If internalism fails, then her notion of how the ‘virtues benefit their possessor’ also fails. I think her internalism does fail (probably because I’m an externalist), so I’m not convinced by her thesis.

The domain of the external is the domain of the rational. If there isn’t an independent, objective standard of morality, if we can’t hold the externalist view, then morality isn’t rational. Irrational ethics is no ethics at all. Subjective, internalist ethics is no ethics at all.

Clearly, if we take down this pillar argument, the conception of how ‘the virtues benefit their possessor’ crumbles. Her argument would need to become externalist, and demonstrate an objective set of reasons for her thesis. She doesn’t seem to believe this is possible. 

''[Criticism of Pillar Argument #1]''

Eudaimonia is foundational to justifying the virtues in her argument. If there is no eudaimonia, then the virtues can’t be justified in Hursthouse’s theory. My problem with using eudaimonia to justify the virtues is that she hasn’t really justified her conception of eudaimonia.

My first problem is eudaimonia’s primacy to the virtues, whereby virtue is necessary for eudaimonia, but eudaimonia isn’t necessary for being virtuous, demonstrates that Hursthouse’s virtue theory collapses into eudaimonic ethics. And, what is eudaimonia? It is a teleological end of mankind. It is the definition of flourishing as a human. I’m convinced that teleology is a consequentialist variant. Virtue theory seems to be a form of consequentialism. So, ‘the virtues benefit their possessor’ conflicts with Hursthouse’s overall assumption that virtue ethics is ‘the way to go’, that it offers something truly unique that other theories can’t. 

The second problem is even worse, in my view, and it extends to most consequential theories, including Hursthouse’s virtue theory. Hursthouse has yet to convince me that ethics is about flourishing and about eudaimonia. Why should the virtues, that is, ethics, be defined and justified by what is ‘beneficial’ to me? What does my happiness have to do with what I ought to do? Ethics isn’t about happiness or eudaimonia. It is strictly about what is right for the sake of rightness. Whatever results, whatever the consequences, they are incidental to rightness. 

Lastly, I can’t help but think her virtue theory isn’t completely circular. It seems that the internalist view infects the definitions she uses. Eudaimonia is a circular concept. Both eudaimonia and the virtues, in the end, are justified by the virtuous person, and the virtuous person is defined in terms of what he justifies.

Clearly, if we take down this pillar of eudaimonia, the conception of how ‘the virtues benefit their possessor’ crumbles. Nobody cares if ethics benefit their possessor if eudaimonia isn’t the end.

''[3]''

In the last chapter of //On Virtue Ethics//, Rosalind Hursthouse presents an argument against the moral skepticism of Bernard Williams. In my arbitration of these arguments, let me first say that my representation of Williams’ view is based upon Hursthouse’s depiction of him. To make up for any bias and lack of argumentation from the side of Williams, as presented in Hursthouse’s book, I’m going to represent the naturalistic moral skepticism where Hursthouse may not have. 

These two naturalists clash, one saying that morality does not exist in naturalism (Williams) and the other claiming morality does exist in naturalism (Hursthouse). Within this larger debate are several related arguments, particularly the relationship between Darwinism and Aristotelian Teleology, and also the nature of man and its relation to eudaimonia and ethics. 

Ethics, to Williams, is a product of evolution. It is a social virus. It is selected for. Humans who have certain mental states are more likely to pass on their genes and produce more viable offspring than those who don’t. Sometimes ‘virtue-like’ mental states are what win out in the memetic wars, and for Williams, it seem that most of the time, they don’t. Ethics is merely a phase in the evolving human nature; it is merely an illusion. His attack on Hursthouse’s theory is even more specific:

<<<
Aristotle’s conception of nature, and thereby human nature, was normative, and that, in a scientific age, this is not a conception that we can take on board…Aristotle’s conception of nature is teleological, whereas our modern scientific one is not.<<ref "30">>
<<<
<<<
The idea of a naturalistic ethics was born of a deeply teleological outlook, and its best expression, in many ways, is still to be found in Aristotle’s philosophy, a philosophy according to which there is inherent in each natural kind of thing an appropriate way for things of that kind to behave.<<ref "31">>
<<<
<<<
The first and hardest lesson of Darwinism, that there is no such teleology at all, and that there is no orchestral score provided from anywhere according to which human beings have a special part to play, still has to find its way into ethical thought.<<ref "32">>
<<<
 
	Williams contrasts Aristotle’s teleology with the Darwinism of modern science. Aristotle’s sciences are teleological, and modern science isn’t. What is so different about Aristotle’s view of the species and the view derived from Darwinism?

For Aristotle, each species has its own end, its own purpose, and a special place in the cosmos. Aristotle believed the species to be eternal; it seems reasonable that he would have opposed the possibility of evolution; it didn’t fit in his teleological framework. What is very powerful about Aristotle’s teleological and essentialist views is that there is specific definition of ‘human’ (and specific definitions for all the species), with a specific view of flourishing for the species, and individual humans could be judged on a normative gradient on the degree to which they exemplified the characteristics set out in that definition.

	Darwinism includes the concept of evolution, and denies the teleological ends and eternal definitions of species. Without these definitions, it seems that Darwinism is devoid of normative claims. My guess is that Williams prefers Darwinism to Aristotle’s teleology because Darwinism can explain the world and make it intelligible, arguably more intelligible than Aristotle’s, without having to resort to what he might consider awkward, abstract, and overly complex theories requiring the specialness of things or the ends of substances like Aristotle’s teleology. Perhaps he has employed Occam’s razor and believes Darwinism comes out on top.

	We might even argue there is a deeper question in his naturalism. Namely, what is ‘meaning’ or what is an ‘end’ in naturalism? Perhaps he believes there isn’t such a thing in naturalism. Teleology, perhaps, is beyond naturalism in some sense, and if this is the case, then, of course, as a naturalist, Williams would deny Aristotle’s teleology off the bat. Darwinism, however, is clearly reducible to naturalistic terms. 

Whatever his reasons, Williams believes that Darwinism has defeated Aristotle’s teleological worldview. As well, he thinks denying Aristotle’s teleology is a ‘hard lesson’ to be learned for those who think there is a purpose to the things in a world. Humans, as a species, aren’t working towards some perfection of an end. There is no normative conception of humanness. Humans are simply objects in a naturalistic world which do as they must, nothing more.

Williams also thinks that because humans live very dynamic and unpredictable lives you can’t say they demonstrate the same sort of regularity that other creatures in nature demonstrate. Either Hursthouse will have to restrict the viable options available to humans or say that biology lacks some explanatory power to define why there is so much variation in humanity.

Hursthouse, however, does maintain a type of Aristotelian teleology. Humans, in particular, have a very special place in the world. All the species are said to have some paradigm definition which they are attempting to attain, and to which they are compared, and from which normative claims can be made about members which partake in that definition. 

Clearly, Hursthouse as a naturalist must deny the possibility that Aristotelian teleology is in any way going to contradict the fundamental restrictions of naturalism. Her teleology must be expressible in naturalistic terms; she must claim that the only things ontologically available to her teleology are things defined by what is ordinary, natural, or observable. She must claim that ‘flourishing’ is a natural concept. The connection between the biological and the ethical will require an impressive explanation (I don’t see how she can do it). She replies to Williams’ view: 

<<<
[Darwinism] sets its own standards for what is right and wrong, and the most Darwinism could do is show that, for whatever purposes we hitherto used those standards to identify the good and the defective, we would serve them better by setting Darwinian ones.<<ref "33">>
<<<

	Hursthouse thinks she can use Darwinian terms and explanations to make moral claims about the ‘goodness’ or ‘badness’ of human beings. Hursthouse believes that the Darwinian threat is really inert at the worst; and at best, it would actually help qualify the standards and metrics of her own teleology. To her, Darwinism is not incompatible with Aristotelian teleology. She thinks the naturalistic ends she had previously laid out are reasonable measurements that even Darwinism might employ. She says:

<<<
I have found in discussion that many people imagine that Darwinian evaluations would either rely solely on the second end (continuance of the species) or replace that, as the sole end, with ‘replication of the individual’s genes’. But human being are not the only species in which the female members have a ‘characteristics life expectancy’ that extends well past the age in which they are replicating, or even nurturing, their genes…But scientific ethologists are not considering giving up on the idea that there must be something defective about a female member of such a species who dies well before her allotted span for no external cause. On the contrary, they are trying to figure out whether, and if so how, the presence of these elderly females contributes to the good functioning of the social group and thereby to the continuance of its members and thereby, as an evolutionary strategy, to the replication of the elderly females’ genes.<<ref "34">>
<<<
 
She thinks that current Darwinian standards aren’t such that her Aristotelian standards would collapse into mere ‘replication of the individual’s genes’; rather, it seems that Darwinian evaluations are pointing towards similar standards to her Aristotelian ones. If Aristotelian standards aren’t correct, then we should replace them. At this point, however, we don’t have reason to do so. So, insofar as Darwinism is compatible with Aristotelian teleology, she doesn’t seem to worry much. 

I think Williams would want to point out here that Hursthouse doesn’t make a good case for the compatibility of teleological definitions and a Darwinian view of species. What is ‘human’ if it is something which has evolved from the primordial? Where and why do you draw the lines of species? Darwinism is descriptive, rather than normative, and more capable of handling these continuums of species. A strict Aristotelian definition of species doesn’t seem capable of handling much of a continuum at all. If it can, Hursthouse really should have explained it more clearly.

Hursthouse thinks the teleological ends of humans are more complex and difficult to define than the other ends of other animals. She explains:	

<<<
If the grammatical idea behind ethical naturalism is right, namely that our terms ‘good’, ‘bad/defective’, ‘well’ do not suddenly start being used in a totally new way when we start using them in relation to ourselves, then our concept of living well, or flourishing (or eudaimonia, when we use it in relation to ourselves), is connected to our evaluations of human beings as good or bad. But that concept, used in relation to ourselves, is indubitably also connected to eudaimonia, the Good Life that we all seek, the life that is of benefit to the individual whose life it is, as it appears in thesis (i). The other animals cannot form their own conceptions of living well, cannot say to themselves ‘That’s the sort of life I want to live, the life in which . . . ‘ and consciously aim to live it; they live as nature determines. We can.<<ref "35">>
<<<

She believes eudaimonia and ‘evaluations of human beings as good or bad’ form a feedback loop; they modify each other. Somehow they are separate, but they are highly connected to each other. The other animals don’t have this loop because their species don’t have the same sort of purpose - something like human eudaimonia. This eudaimonia belongs to humans and any species which evolves to have human-like reasoning. These special properties of the complex minds of naturalistic beings imbue them with the ability to control the definition of their own ends, in some sense. Eudaimonia, to some extent, is determined by human beings who consciously decide what it can mean in some way. Given the feedback loop, human beings in some way determine the evaluations of what counts as good or bad qua human being. Likely, the notion that ‘virtues benefit their possessor’ only applies to beings that have a concept of eudaimonia. The other animals don’t have reason or the same individualistic requirements as part of their ends.

She is pointing out how Darwinism alone may fail to capture these ends and the complexity of eudaimonia in the case of human flourishing. Defining ‘human’ flourishing, eudaimonia, isn’t easy to do in Darwinism. Perhaps Hursthouse is suggesting the limits of Darwinism. I think Williams would reply that the notion of human ‘eudaimonia’ is normative, that it begs the question of teleology and normativity in an unnaturalistic manner.

Williams might not consider the diminution of Darwinian influence on the standards of eudaimonia to be a strong argument because of other reasons as well. What makes humans so special? Reason? What is reason to Williams? It is just a very complex network of chemical and electrical reactions in a brain. Why is that so special? Why does that change the normativity of humanness? It seems that the end of all species is to become the top of the food chain, to evolve into something with human-like reason. Aren’t the ends of non-human animals false? Shouldn’t other animals seek to become special like humans?

What if an evolutionary accident occurred tomorrow, whereby a strong beneficial mutation occurs in a monkey, a crow, a dolphin, or an elephant, such that this highly evolved animal has human-like reason. Wouldn’t we say that this animal (we’ll say monkey) is really better than other monkeys? That monkey, however, didn’t adhere to the definition of monkeyness; it isn’t flourishing as a monkey. This is a bad monkey, right? I’m not sure why Hursthouse can claim that the highest hope of any monkey isn’t to evolve and morph into something with human reason rather than adhere to the definition of monkeyness. This ‘ends’-based reasoning seems flawed in and of itself.

Williams provides a serious attack on the fundamental notion of human nature, the notion of its ends, and the possibility of ethics:

<<< 
The [fact] that human nature is not harmonious ‘still has to find itself into ethical thought’.<<ref "36">>
<<<
<<<
[H]uman beings are to some degree a mess, and…the rapid and immense development of symbolic and cultural capacities has left humans as beings for whom no form of life is likely to prove entirely satisfactory, either individually or socially…[T]hose who have tried to reach a naturalistic morality which transcends it have had to read the historical record, or read beyond the historical record, in ways that seek to reveal a partly hidden human nature which is waiting to be realized or perfected.<<ref "37">>
<<<

Williams believes that from an evolutionary, Darwinian perspective, human nature is flawed. Science and history present us with a very negative view of humanity. He thinks this idea is not understood by the proponents of naturalistic morality. Humanity lacks any real sense of ‘hope’ to him. It seems impossible to be ‘entirely satisfied’ as a human, and extremely unlikely (mere happenstance if it does occur) and entirely out of the hands of the agent to somehow reach or attain the status of eudaimonia. He thinks the idea of naturalistic morality rides upon an unscientific and inaccurate historical account of humanity and its nature. He would explain:

<<<
[The naturalistic concept of eudaimonia] takes for granted…’a strong view of the harmony among themselves of human capacities and need’. ‘This assumption does…seem to me more plausible if you can help yourself to Aristotelian cosmology, than if you regard it as an open question whether the evolutionary success of humanity, in its extremely brief period of existence, may not rest on a rather ill-assorted bricolage of powers and instincts.’<<ref "38">>
<<<

The naturalistic concept of eudaimonia is implausible because it assumes an unrealistic and overly optimistic ‘harmony among humans’ which is not rooted in science or history. Without the ingrained possibility of ‘harmony’, Williams thinks the notion of eudaimonia is failed from the outset, and that morality doesn’t exist.
 
Hursthouse defends her argument:

<<<
We could make [the view that virtues on the standard list benefit the possessor] ‘more plausible’ to the immoralist if there were some (unimaginable) scientific, even cosmological, facts we could appeal to…But we didn’t even try, for to do so would, yet again, be attempting to justify morality from the outside—as, in a final vestige of his earlier view that ethical naturalism is supposed to base itself on a ‘scientifically respectable account of human beings’, Williams seems to be supposing we must do if we are aiming at ‘plausibility’.<<ref "39">>
<<<

	Hursthouse thinks she doesn’t need to demonstrate the plausibility of the notion of eudaimonia. She thinks she can assume it. Her internalist leanings allow her to denounce external justification of her theory of ethics. It seems that the external view has implications for how we might come to know what counts as virtue and its naturalistic ends, but it doesn’t justify virtue. But she does take on the historical and scientific record to demonstrate a hope for ethics that Williams lacks. Then she provides her counterstrike:

<<<
Any human being who, at the end of her life, is able to look back and say, sincerely, ‘That was satisfactory; I lived well’, has been astonishingly lucky, and no inculcation of character traits, no supposedly rational plan of one’s life or attempts at supposed self-improvement or supposed improvement of our societies can make anyone one whit more likely to be lucky; all such attempts are futile…this amounts to complete moral nihilism.<<ref "40">>
<<<
<<<
The belief that harmony is possible for human beings, that we have the virtues neither by nor contrary to nature, but are fitted by (our) nature to receive them, is, I think, an essential part of the ethical outlook even of the minimally virtuous—any of us who think that being right about ethics matters…We manifest it by going in for ethical thought and talk at all.<<ref "41">>
<<<

	Honestly, this section made me chuckle because I can’t tell if this is meant to have an edge of sweet, sweet ad hominem attack or not.  Perhaps the reason behind Williams’ pessimism and moral nihilism, which are “as old as misanthropy and despair,”<<ref "43">>  is his vicious nature. If only he had some minimally virtuous outlook, he could understand why ‘being right about ethics’ matters. This does match up with a great deal of her book – of course the vicious agent, Williams in this case, can’t see the value of virtue. He lacks a belief in this harmony (a necessary component to having the outlook of one with even trace elements of virtue), thus he lacks the ethical outlook of even the minimally virtuous. It does seem as if she is claiming he doesn’t understand or agree with her argument because he is evil—that’s not something you see every day in formal philosophy.

	There is something more profound to consider - namely that ethics requires assumptions, leaps of faith. People assume that ethics exists, that value and meaning are real, that there are things actually worth pursuing in this world, else they wouldn’t continue manifesting moral beliefs in various aspects of their lives. Hursthouse finishes:

<<<
[T]he idea that we are just a mess is a particularly global form of moral scepticism, one which not only dismisses the whole ethical outlook of the (even minimally) virtuous as mere optimistic fantasy but simultaneously rejects the idea that practical rationality has anything substantial or long-term to do…As such it would be akin to other forms of global scepticism about, say the possibility of scientific knowledge (based, as it is, on the non-scientifically validated assumption that nature is intelligible), or even the possibility of knowledge of the external world or other minds.<<ref "44">>
<<<
<<<
The practice of ethical thought, as we know it, has to be based on the assumption that human beings, as a species, are capable of harmony, both within themselves and with each other. If we suppose they are not, the whole practice collapses. There is no refutation of scepticism about this assumption. But the practice is worth going in for, there is no practicable alternative for us, so we have to take the assumption on board.<<ref "45">>
<<<

Hursthouse considers Williams’ argument to be a form of global skepticism. It isn’t just ethics that requires assumptions and leaps of faith to even begin their topics. There are few topics which can survive a corresponding form of global skepticism. Given just this argument, I’m not sure why Williams simply can’t claim to make the assumptions necessary to do science and not make them for ethics.
 
Hursthouse believes that Skepticism about the objective nature of morality is partly answered by the Neurathian procedure. The hull of the boat of ethics is an assumption that the boat can exist.

''Conclusion''

I’m convinced that Williams is the much more consistent naturalist of the two. I have absolutely no idea how naturalism is compatible with any adequate theory of ethics. In my view, naturalism requires the denial of free will, moral responsibility, meaning and value in the world. I agree with Williams that if naturalism is true then teleology is really dead. Ethics is an illusion for a proper naturalist. If naturalism is true, then Williams is right. Hursthouse’s objective can’t be achieved in the naturalistic framework. Hursthouse never adequately addressed these issues.

I am not a naturalist, however, so I think Hursthouse’s objective is still a reasonable (even worthy) pursuit. I have other issues, though. Exactly why is it necessary that 'human nature is harmonious' in order to do ethics? It seems integral to assumptions about naturalistic ethics theory, but I’m not sure why this should worry the non-naturalist. I can at least claim that humans are generally disharmonious, and still claim an ‘ought’ and the reality of ethics. 

The fundamental point of this argument didn’t appear until the very end of this argument though. I appreciate what Hursthouse has to say. We naturally assume that ethics is real. This is a foundational assumption. She’s right about tackling global skepticism. You have to make some unprovable assumptions about the world to either deny or agree to the existence of ethics. 

	I think there is a slightly stronger argument to give than she did. I think value and ethics share primacy with logic and God in this world – they’ve always co-existed in some sense. The sorts of assumptions we make about ethics are parallel to assuming the laws of non-contradiction or excluded middle. 

I don’t think anyone pursues anything unless they think they want it. Whatever they want has value to them, and in this way, they think they ‘should’ pursue it. Value, by definition, is something worth pursuing, and value is really just another way of claiming ‘ought’ and reality fo ethics. Value is primitive to the world, and whatever is worth doing is really worth doing. If a person denies value, then how could they rationally pursue anything? The pursuit of anything assumes the object of pursuit is worth pursuing, that the object has value in some sense.

The fact that Williams took the time to write his paper, claiming that ‘value’ doesn’t really exist in the world, that nothing is really worth pursuing, demonstrates a contradiction with his intentions. He set out to do something; he pursued something - namely saying there wasn’t anything worth pursuing. I’m sure he pursues other things. And why does he pursue them? Because he wants something, because they are in some sense worth pursuing, because they have value to him. If ethics is an illusion, even Williams is under its spell.


-------------------------------

<<footnotes "1" "John McDowell, “Virtue and Reason” in //Virtue Ethics//, ed. Roger Crisp and Michael Slote (Oxford and New York: Oxford University Press, 1997), 148">>
<<footnotes "2" "Ibid., 148">>
<<footnotes "3" "Ibid.">>
<<footnotes "4" "Ibid., 149">>
<<footnotes "5" "Ibid.">>
<<footnotes "6" "Ibid., 150">>
<<footnotes "7" "Ibid., 150-151">>
<<footnotes "8" "Ibid., 153-154">>
<<footnotes "9" "Ibid., 150">>
<<footnotes "10" "Ibid., 151">>
<<footnotes "11" "Ibid., 153">>
<<footnotes "12" "Ibid., 144">>
<<footnotes "13" "Ibid., 157">>
<<footnotes "14" "Ibid., 161">>
<<footnotes "15" "Stanley Cavell, //Must we Mean What We Say?// (New York, 1969), 52">>
<<footnotes "16" "Rosalind Hursthouse, //On Virtue Ethics// (Oxford: Oxford University Press, 2001), 164">>
<<footnotes "17" "Ibid., 167">>
<<footnotes "18" "Ibid., 172">>
<<footnotes "19" "Ibid.">>
<<footnotes "20" "Ibid., 173">>
<<footnotes "21" "Ibid., 172">>
<<footnotes "22" "Ibid., 174">>
<<footnotes "23" "Ibid., 176-177">>
<<footnotes "24" "Ibid., 177">>
<<footnotes "25" "Ibid., 178-179">>
<<footnotes "26" "Ibid., 180">>
<<footnotes "27" "Ibid., 181">>
<<footnotes "28" "Ibid., 187">>
<<footnotes "29" "Ibid., 190">>
<<footnotes "30" "Rosalind Hursthouse, //On Virtue Ethics// (Oxford: Oxford University Press, 2001), 256">>
<<footnotes "31" "Bernard Williams, “Evolution, Ethics, and the Representation Problem,” in //Making Sense of Humanity//. (Cambridge university Press: 1995), 110">>
<<footnotes "32" "Ibid., 110">>
<<footnotes "33" "Rosalind Hursthouse, //On Virtue Ethics// (Oxford: Oxford University Press, 2001), 258">>
<<footnotes "34" "Ibid., 258">>
<<footnotes "35" "Ibid., 259">>
<<footnotes "36" "Ibid., 261">>
<<footnotes "37" "Bernard Williams, “Evolution, Ethics, and the Representation Problem,” in //Making Sense of Humanity//. (Cambridge university Press: 1995), 109">>
<<footnotes "38" "Rosalind Hursthouse, //On Virtue Ethics// (Oxford: Oxford University Press, 2001),  260">>
<<footnotes "39" "Ibid., 260">>
<<footnotes "40" "Ibid., 262">>
<<footnotes "41" "Ibid.">>
<<footnotes "42" "Page 176 indicates she would agree that this is an ad hominem argument.">>
<<footnotes "43" "Ibid., 261">>
<<footnotes "44" "Ibid., 262-263">>
<<footnotes "45" "Ibid., 265">>
''[1][a]''

A mile-high definition of a contingent practical identity: “the basis of choice…a description under which you value yourself and find your life worth living and your actions to be worth undertaking.”<<ref "1">>  Truly, there is a lot packed into this notion, and I want to carefully unpack what I believe is most important about it. The three most cardinal features connected to this notion of a contingent practical identity are: Action, Agency, and Psychic Unity. Arguably, these features are larger than the notion of contingent practical identity itself, but I don’t think this is a problem. Contingent practical identity must be understood within the context of these cardinal features, and vice versa – they interdefine each other. 

	Korsgaard gives us examples of practical identities and their acquisition:

<<<
Conceptions of practical identity include such things as roles and relationships, citizenship, memberships in ethnic or religious groups, causes, vocations, professions, and offices. It may be important to you that you are a human being, a woman or a man, a member of a certain profession, someone’s lover or friend, a citizen or an officer of the court, a feminist or an environmentalist, or whatever.<<ref "2">>
<<<
	We can immediately appreciate this notion, as it seems we all have these identities, and we all spend a great deal of our lives in these sorts of roles. Clearly, practical identity is a powerful descriptive notion for anyone attempting to understand humanity. She continues:

<<<
One might think of a particular practical identity, if a little artificially, as a set of principles, the dos and don’ts of being a teacher or a citizen, say.<<ref "3">>
<<<

	For Korsgaard, the notion of a practical identity is not merely descriptive; it is has normative characteristics. Practical identities are part of the process, for each individual, of figuring out what one ought to do in a certain role. She points out the motivational implications to possessing a practical identity:

<<<
Our conceptions of our practical identity govern our choice of actions, for to value yourself in a certain role or under a certain description is at the same time to find it worthwhile to do certain acts for the sake of certain ends, and impossible, even unthinkable, to do others.<<ref "4">>
<<<

	The way in which you ‘value’ yourself in a certain description in turns serves as your motivation to act in particular ways and for certain ends which are provided, at least in large part, by a practical identity.  This leads us to Korsgaard’s contingent aspect of practical identities:

<<<
However it goes, reasoned or arbitrary, chosen or merely the product of circumstance, the sorts of identities I am talking about remain contingent in this sense: whether you treat them as a source of reasons and obligations is up to you.<<ref "5">>
<<<

The various ways in which one might acquire an identity are not the sources of its contingency (even though we can say that the acquisition might be arbitrary and contingent in some cases). Rather it is the choice, which is ‘up to you’, to continually keep and use these identities which make them contingent. Clearly, the contingency of practical identity is founded upon our free will. Commitment to a practical identity is thus vastly different from mere acquisition. 

Once an identity is chosen (or we ‘commit’ to it), it provides reasons for acting in certain ways or for pursuing certain ends.  Whether an identity is chosen (‘doctor’, for instance) or given (‘son’ or ‘American’), it remains contingent simply because ‘it is up to us’ whether or not we choose to treat it as motivating, and crucially, as a guide. This contingent aspect strengthens the normative components to practical identity. She fleshes this out further:

<<<
Forms of identification are contingent, and we can walk away from them. Their hold on us depends on our own endorsement of the laws they give us. We ratify their laws whenever we act in accordance with them.<<ref "6">>
<<<

<<<
If you continue to endorse the reasons the identity presents to you, and observe the obligations it imposes on you, then it’s you…[If not then] it’s not a form of practical identity anymore: not a description under which you value yourself. 
[Agents treat] contingent identities as the sources of absolute inviolable laws.<<ref "7">>
<<<

<<<
	The obligations and reasons for action provided by contingent practical identities aren’t arbitrary and morally neutral, as one might have initially suspected about at least some of these identities. Practical identities provide strong moral normativity – they provide moral law to their bearers.<<ref "8">>
<<<

As Korsgaard sees it, valuing oneself in a certain role or description, committing to a practical identity, is thus committing to certain moral obligations. If she is correct, then it seems that the notion of a contingent practical identity is fundamental to the construction of our moral obligations.  This leads us to the foundational practical identity so crucial to her moral theory:

<<<
Morality itself is grounded in an essential form of practical identity, our identity as rational or human beings…[We as agents make a] commitment to our own human or rational identity as a form of practical identity.<<ref "9">>
<<<

<<<
Making the contingent [practical identity] necessary is one of the tasks of human life and the ability to do it is arguably a mark of a good human being.<<ref "10">>
<<<

Korsgaard believes morality exists in virtue of this fundamental practical identity. It seems the 'moral' identity, the ‘rational’ identity, the ‘human’ identity – the identity of agency – is itself a practical identity we take on. Moral agency is the foundational practical identity upon which we construct our self-constitution. Thus, our practical ‘moral’ identity is the reason why our other practical identities are normatively empowered in some sense.  

Contingent practical identity is further developed in terms of the cardinal features. 

''Action -- [Cardinal Feature connected to CPI #1]''

<<<
But there is a reason not to abandon all of our identities. The reason is given by…the human plight. We must act, and we need reasons in order to act. And unless there are some principles with which we identify we will have no reasons to act. Every human being must make himself into someone in particular, in order to have reasons to act and to live. Carving out a personal identity for which we are responsible is one the inescapable tasks of human life.<<ref "11">>
<<<

	Action is strongly connected to the notion of identity. Korsgaard comes right out and claims that, “Human beings are //condemned //to choice and action…action is necessary…it is our //plight//.”<<ref "12">>  We are destined to have a particular contingent practical identity. We are condemned to be agents, agents who choose and perform action. Importantly, Korsgaard uses the word ‘action’ as a term of art; it is a technical term in her moral theory.

	In her first chapter, Korsgaard endeavors to synthesize major components of Aristotelian and Kantian views on the nature of action. Out of this discussion, her definition of action follows:

<<<
The basic form of a Kantian maxim is “I will do act-A in order to promote end-E.” Call that entire formulation the description of action. An action, then, involves both an act and an end, an act done for the sake of an end.<<ref "13">>
<<<

<<<
[An agent] chooses this whole package, that is, to-do-this-act-for-the-sake-of-this-end – he chooses that, the whole package, as a thing worth doing for its own sake, and without any further end.<<ref "14">>
<<<

	Vitally, ‘act’ and ‘action’ are distinguished, while ‘ends’ are configured into the equation. Action is a package deal; it includes both the deed and its purpose. Contingent practical identities provide motivation and guidance as to which actions we should choose to perform. Identity determines the ‘act + end’ combination to which are obligated. The way that action is related to the role of a ‘reason’ and identity isn’t completely squared up:

<<<
The reason for an action is not something outside of or behind or separate from the action at all, for explicating the action, and explicating the reason, are the same thing. Rather, an action is an essentially intelligible object that embodies a reason, the way a sentence is an essentially intelligible object that embodies a thought.<<ref "15">> 
<<<

	Action includes and represents a reason. Contingent practical identity is the source of these reasons, and thus it is also the source of action. It isn’t just the source of motivation and guidance then; it isn’t just an identity-bearer that is performing an action; identity is, in some sense, an expression of action. 

Odd questions arise, such as ‘What is good action?’ and ‘What is bad action?’  Korsgaard explains that, “Action is self-constitution…what makes actions good or bad is how well they constitute you,”<<ref "16">>  and “A bad action by contrast is something misshapen and defective.”<<ref "17">>   It seems that good action has to do with more than a single contingent identity.  

''Agency -- [Cardinal Feature connected to CPI #2]''

	Korsgaard’s conception of agency does a lot of her philosophical work, and it does so within the context of the notion of contingent practical identity. As I said, they interdefine each other. Exactly where one starts and the other begins isn’t so clear. It is probably safe to say that identity of agency is a special one, perhaps the least arbitrary and the most necessary. It is the one that all good humans have in common. 

At least three major concepts flow from the identity of agency: choice, responsibility and necessitation. The first two are clearly connected to practical identity in these passages: 

<<<
It is as the possessor of personal or practical identity that you are the author of your actions, and responsible for them. And yet at the same time it is in choosing your actions, that you create that identity. What this means is that you constitute yourself as the author of your actions in the very act of choosing them.<<ref "18">>
<<<

<<<
We are self-conscious in a particular way: we are conscious of the grounds on which we act, and therefore are in control of them.<<ref "19">> 
<<<

<<<
When you deliberately decide what sorts of effects you will bring about in the world, you are also deliberately deciding what sort of cause you will be. And that means you are deciding who you are.<<ref "20">>
<<<

<<<
So we are each faced with the task of constructing a peculiar, individual kind of identity—personal or practical identity…It is this sort of identity that makes sense of our practice of holding people responsible, and of the kinds of personal relationship that depend on that practice.<<ref "21">> 
<<<

<<<
To regard some movement of my mind or my body as my action, I must see it as an expression of my self as a whole, rather than as a product of some force that is at work on me or in me.<<ref "22">>
<<<

	You choose and have control over, and essentially, you construct your practical identities and in doing so you choose the obligations and actions corresponding to those identities. It seems that you cannot choose one without the other. Action, obligation, and identity are rolled into one package. You are the free author of your identity, and in making these entailed commitments, you are morally responsible. 

Korsgaard explains that the “temptation to resist the claims of our practical identities is possible.”<<ref "23">>  This is interesting, and it shows that the free will component of agency is robust, and perhaps even foundational to the other identities. The ‘agency identity’ is interesting because it seems (although, Korsgaard will deny this, I believe) that it precedes all other identities. How do you ‘decide who you are’ without having the ability to decide already? I think this suggests that free will is not sufficient (even if it is necessary) for agency in Korsgaard’s theory. 

<<<
This is where the problem of personal identity comes into the picture…in the relevant sense there is no you prior to your choices and actions, because your identity is in a quite literal way constituted by your choices and actions.<<ref "24">>
<<<

Other issues arise - for example, how one sheds agency isn’t clear (although her conceptions of unity and disunity will attempt to explicate it). It does seem to the observer, though not to Korsgaard, that the agency identity is a necessary precondition to choosing whether or not to take on, shed, keep, and use other contingent practical identities.

	This is still, however, oversimplifying the role of agency in her theory. Recall that to use one’s free will to choose an identity is to choose its obligations and its reasons and its actions, simultaneously. The (lack of a) temporal aspect of Korsgaard’s conception of agency is difficult to understand. 

	Fundamental to being an agent, and probably most important, is the way in which it is connected to the notion of contingent practical identity, via her conception of necessitation. Being subject to and bound by the normativity of law, experiencing the “psychological mechanisms of its enforcements,” is an essential feature of what it means to truly be a moral agent.<<ref "25">>   Korsgaard (borrowing from Kant) calls this psychological force //necessitation//.<<ref "26">>   It is noteworthy that it is usually believed necessitation can only be experienced by those who can fail to follow the moral law; the assumption is that you can only be subject to and bound by normativity of law if it is a real possibility that you can fail to meet those requirements. Korsgaard will certainly agree to the idea that duties and obligations belong to agents, at least to those entities who experience necessitation.

	Assuming identities are not entirely fleeting, there is a type of necessitation regarding an agent’s choice to follow a particular identity's obligations. Agents may have incentives, desires, or emotions which in some way drive them to not follow the obligations of an identity. They might, in this sense, maintain an identity and contradict its obligations and choose otherwise (I won’t exactly call this ‘action’ as she understands the word). This sort of necessitation has a small scope; the larger scope is even more important. 

	There seems to be necessitation between different identities as well.  That is, the obligations of one identity may conflict with the obligations of another.  This larger notion of necessitation of agency is vital to the contingent practical identity framework in that it calls forth her most cardinal feature, psychic unity. As she says, “I also believe it is essential to the concept of agency that an agent be unified.”<<ref "27">>  This struggle for unity, at least in part, is based upon conflicts among our various contingent practical identities. She says:

<<<
	Normative standards – as I am about to argue – are the principles by which we achieve the psychic unity that makes agency possible. The work of achieving psychic unity, the work that we experience as necessitation, is what I am going to call self-constitution.<<ref "28">> 
<<<

''Psychic Unity -- [Cardinal Feature connected to CPI #3]''

	Psychic unity is our ultimate goal. Korsgaard explains:

<<<
Identities are the sources of our reasons, but of course the idea is not just that we decide which ones we want and conform to them. We have many particular practical identities and so we also face the task of uniting them into a coherent whole.<<ref "29">>
<<<

<<<
There is work and effort – a kind of struggle – involved in the moral life, and those who struggle successfully are the ones whom we call “rational” or “good.” But it is not the struggle //to be rational or to be good//. It is, instead, the ongoing struggle for integrity, the struggle for psychic unity, the struggle to be, in the face of psychic complexity, a single unified agent.<<ref "30">>
<<<

Agency is about having a unified super-identity, a sum unity of contingent practical identities (which it is itself also therefore a contingent practical identity). Practical identities can conflict, and an agent must unify them. Of course, this again brings up the paradox she mentions, and I’m not sure how she can solve it. If she is able to solve the paradox, and she is right about our final end as unification, then we see that practical identities become even more complex, particularly as they are subject to degrees. She alludes to this:

<<<
People are more or less successful at constituting their identities as unified agents, and a good action is one that does this well. But since action requires agency, it follows that an action that is less successful at constituting its agent is to that extent less of an action. So on this conception, “action” is an idea that admits of degrees. An action chosen in a way that more successfully unifies and integrates its agent is more authentically, more fully, an action, than one that does not.<<ref "31">>
<<<

Action, identity, agency, and unity admit of degree. You aren’t necessarily 100% a teacher or 100% a father – it is possible that you are only 60% of this identity. The unification of your contingent practical identities is about making your super-identity 100% an identity. This helps us understand the forces of normativity within her theory:

<<<
Being a person, having a personal identity, being a rational agent, is in itself a form of work. And the experience of necessitation, with its elements of effort and even of pain, is the experience of the form of work. A good person, it follows, is one who is good at this work. A good person is someone who is good at being a person.<<ref "32">>
<<<

To be a good person, to be a good agent, to be a good human, to have a good identity is to be unified. It is complicated to commit to being a self.

''[b]''

	The cardinal feature of agency has some serious problems, almost all of them connected to the paradox of self-constitution. There is more attached to this paradox than she lets on (although she is probably aware of it). I see three problems arising in this paradox. 

	First, the temporal problem is the most obvious. What does it mean to choose an identity if you don’t already have at least the agency identity? It seems that such a choice isn’t the choice of an agent. It seems that in taking on any non-agency practical identity will somehow lack moral force if it wasn’t the choice of an entity which was an agent beforehand. How can we make sense of amoral entities choosing to become moral agents? It isn’t clear.

	(Further, one might imagine that agency is the sort of identity that comes to you without choice, and perhaps you can lose your agency via suicide or something akin to massive head trauma. But, outside of suicide, it doesn’t make much sense to say you can choose to shed your agency. What would that look like? Surely, she needs a powerful account of this.)

	This paradox of choosing your identity and choosing to be an agent brings with it a second problem as well, namely the idea that there are degrees of agency which you choose. Along with it come degrees of action, identity, unity, moral responsibility, and morality. It isn’t clear what a degree of some of these things will entail or how it operates. 

	Action, for example, seems modular, not like a gradient. What exactly is bad action? It seems that an action can be so bad, springing from such a great degree of disunity of identity, that it is no longer action. Further, it seems that moral responsibility only exists when there is action for which an agent is an author. Was Hitler even a moral agent at all - were his acts really ‘bad’ at all? Was Hitler morally responsible for what he did? It seems he isn’t an agent, and he isn’t morally responsible, and his acts weren’t really morally wrong given Korsgaard’s account. Even if he was minimally an agent, and he minimally had actions, and he was minimally responsible, and minimally ‘wrong’, it seems that he isn’t as responsible as the virtuous agent. In this case, Hitler’s actions don’t count as being as action-like as the virtuous agent, and they don’t count as admittedly of moral wrong in the same way that the virtuous agent’s actions are morally right. 

	It seems difficult to give examples of immoral agents in her theory. Wouldn’t we want to say that immoral agents are just as responsible for their actions as even the most virtuous of agents? Intuitively, it makes sense to  say that immoral agents are unified, and that there isn’t conflict among their various practical identities, but rather what their practical identities are all about are in themselves morally wrong. But, that is not the picture which Korsgaard paints, and that brings us to the last problem.

	 Korsgaard’s conception of agency with respect to contingent practical identities suffers from the problem of moral construction. Korsgaard is offering an account of how one ‘constructs’ morality. What counts as moral law, and whatever obligations we have, is ‘up to us’. Korsgaard has imparted too much power to agency, in this case. If an agent gets to choose identities, obligations, and what counts as ‘valuable’, and as long as the agent is perfectly unified, then it seems whatever they do is arbitrary, but also automatically morally good. Her conception of agency enables practical identity to justify behavior in a circular, subjective fashion.

''[c]''

	Korsgaard really doesn’t think this is paradoxical. As I said before, I think part of her argument will rest upon the notion that possessing all necessary capacities for being an agent is not sufficient for agency. Perhaps free will and rationality, while necessary, aren’t sufficient for agency. If this is true, then it seems that one can freely choose to commit to the agency identity. In one way, I like this argument -- moral responsibility is something you grow into.  But, this should not be confused with the idea that you can choose agency.

	I’m not sure how she would reply to the idea that a free non-agent choosing to be a free agent has moral force to it. I suspect that her constructivism would allow her to make this move. If so, you can shed agency, but retain your free will and other agency-necessary capacities.

	The degrees problem which flows from the premises of the paradox is also largely solved by her constructivism, if she wished to go that route. Without an independent, objective morality, it would seem an acceptable move to claim that ‘morality’ looks like this inside the mind and leave it at that.

	I don’t know how she would defend her constructivism other than to explain that this is the way the world is. Perhaps she might say, “Well, that’s just what it means to be a moral agent, etc.” She certainly doesn’t agree to the idea that we can shed and take up identities whimsically, which is agreeable. Korsgaard thinks her 'dedications and integrity' clause is what prevents me from 'giving up my fatherhood' as an identity at whim. However, I’m still not sure how it is not 'up to me' in some sense whether or not I can take up or drop off my practical identities. I hope she has a deeper account of this issue.
	

''[2][a]''

''[Argument #1]''

Korsgaard is a constructivist with strong elements of moral anti-realism in her theory; essentially, she denies that there are moral properties independent of the mind. The dogmatic rationalist holds that moral propositions are objective features of the world, existing independent of our minds. Given her position, her attack on the moral realism of the dogmatic rationalist makes a lot of sense (although, it is possible that it is her argument against moral realism that led her to her current position).

She explains that she is against the provision of “some sort of ontological foundation, [which posits]…the existence of certain normative facts or entities to which moral requirements somehow refer.”<<ref "33">>  Korsgaard doesn’t like the metaphysical commitments which the dogmatic rationalists make – but why? She explains:

<<<
	The rationalist account…allows instrumental reasons to function as guides, but at the price of making it impossible for us to see any special reason why we should be motivated to follow these guides.<<ref "34">>
<<<

	Korsgaard believes that the rationalist’s conception of instrumental reason, one of the three sorts of practical reason initially discussed, is assumed to be a principle which is an independent, objective feature of the world. Crucially, she claims that while this may be sufficiently guiding, it is insufficiently motivating. 

	Essentially, Korsgaard doesn’t think that an objective moral fact sitting out there in metaphysical reality is really going to be motivating to an agent, and thus, regardless of its guiding contents, it can’t serve or function as a type of practical reason.

	She is calling out the dogmatic rationalist’s framework and asking ‘why’ an agent should really care about morality. Because she believes the dogmatic rationalist can’t demonstrate motivation, their moral realism is an illusion. This is cardinal to her overall moral theory because, if she is right in criticizing the moral realist commitments of the dogmatic rationalist, and this independent objectivity is an illusion, then her constructivist theory is plausible. 

''[Argument #2]''

Korsgaard argues that the dogmatic rationalist is unable to provide a substantial, meaningful, and non-circular definition of rationality. She says:

<<<
	The dogmatic rationalist’s strategy is to first identify reasons—by asserting them to be parts of realty—and then to define rationality in terms of reasons: a rational being is by definition one who responds to reasons in the right way. This strategy necessarily leads to a purely definitional account of rationality, and can tell us nothing substantive about what function or power of the human mind rationality is.<<ref "35">>
<<<

	The relationship between reasons and rationality is misconstrued, as Korsgaard’s sees it. She draws a distinction between Rationality and Reasons. She says that dogmatic rationalists begin with reasons, and then 'go up' to rationality. She thinks we have to go from top down instead to avoid problems. In part, she’s pointing out something fishy about the dogmatic rationalist’s strategy to interdefine reasons, rationality, and the rational being. It seems tautological and analytic, but also circular and uninformative about the contents and nature of these concepts. 

	This is somewhat similar to the criticism of moral reasoning in virtue ethics as being circular; namely, the virtuous agent defines virtue, and virtue defines the virtuous agent - but in the end, we aren’t exactly sure what either one really looks like.

	Korsgaard offers a possible rebuttal which a dogmatic rationalist might give:

<<<
	There is one way in which the realist strategy still might seem to work. We could simply //define //a rational agent as one who responds in the appropriate way to reasons, whatever they are, and we could then give realist accounts of all practical reasons, including instrumental ones. There is a set of normative facts, about which reasons there are, and a rational agent is by definition someone whose actions are motivated by these reasons.<<ref "36">>
<<<

	Perhaps the dogmatic rationalist can say that insofar as agents are not motivated by independent, objective moral truth, they aren’t rational. This is an interesting approach, but I think Korsgaard still has the circularity problem. She explains:

<<<
	If all we mean is that the person is reliably caused to act in accordance with reasons, we fail to capture what is rational about the person. His actions may be rationally appropriate, but not because he sees that they are so: it seems to be a sort of accident that his motivational wiring follows the pathways of reason.<<ref "37">>
<<<

	The problem with the circular definition is that it seems accidental rather than essential. If a dogmatic rationalist would use this argument, then it isn’t just cheating on the definition, but really it fails to capture meaningful motivational requirements, in Korsgaard’s eyes.

	This criticism of dogmatic rationalism points toward a cardinal concern for Korsgaard, namely offering an account that can actually describe the contents of rationality and reasons, and essentially, she wants a non-circular account of the normative force of practical reason. If she herself can avoid making a circular argument, and she can offer a substantive account of rationality, reason, and the normative force of practical reason, then it seems she would have the more plausible theory.

	
''[b]''

''[Counter-argument #1]''

		It is unclear what it means for something to be true if it doesn’t have the independent, objective status. Just because X in your mind just doesn’t seem like a good enough reason to call X a truth. Yes, it is true that ‘X is in your mind’, but that doesn’t make it true that ‘X’. This motivational concern seems like misdirection. How can Korsgaard escape from this strong moral realist view without becoming a nihilist or relativist? I don’t know. 

	Consider, as an example, a comparison between mathematics and the categorical imperative. Let us assume (and I think Korsgaard does) both the categorical imperative and mathematics are //synthetic a priori// truths. Would Korsgaard agree to the idea that the principles and truths of mathematics are not dependent upon our minds? It seems like the truths of mathematics are not ones we socially construct, but rather discover. Surely the truth of mathematics is best handled by metaphysical commitments of the dogmatic rationalist, despite the uneasiness we might have making such strong, yet abstract and difficult to empirically point out, ontological assumptions. Are we motivated to believe and use a truth like 2+2=4? I think so. And, why?  Because it is true. I don’t think it is coincidental that I’m motivated to believe it. I think there is something wrong with being motivated to believe and use something when it isn’t objectively true. 

	Consider Goldbach’s conjecture (every even integer greater than 2 can be expressed as the sum of two primes). It is either true or false, but we don’t know which. We have good reasons to believe it is likely true, but we have no proof solution. We don’t yet know. Surely the truth or falsity of this mathematical claim does not rest upon my belief. The dogmatic rationalist is a great position to tell the story of what is happening here, and I think Korsgaard wants to agree to dogmatic rationalist story in this case. But, why can’t the same sort of objectivity story be told for moral truths?  It seems that the truth of mathematics binds us in the same way that truth of rational morality binds us.

	I’m left wondering how respect for the moral law not itself the sort of ‘special reason why we should be motivated’ to follow the moral law as a guide? Why can’t the dogmatic rationalist posit this ‘respect for the moral law’? I don’t know.

	The potency of morality and the relationship between epistemology and ontology are both at stake. It would have been prudent if Korsgaard had instead openly started with and assumed the dogmatic rationalist’s position, the position which we all would hope to pan out, only giving it up after demonstrating beyond a shadow of doubt that the position is committed to something illogical and intolerable (which she hasn’t done). There is too much at stake to do otherwise.

''[Counter-argument #2]''

	I don’t find the circularity of such a foundational topic to be terribly objectionable. We are the bottom level of philosophy, and it is here that our justifications begin to look a lot more like assumptions than proofs. At some level, we are going to beg the question, and formally include our axioms within the justification of our axioms. There is no way to justify the reflexivity principle, loosely speaking, A= A, unless one already assumed it is true, and likewise for other axiomatic propositions like the law of excluded middle. It seems these sorts of meta-ethical questions, which are at the foundational link between epistemology and ontology, are not the sort of concepts which have anything beneath them with which justify an argument. It is because of this, at least for now, I don’t see a problem with a circular definition of these concepts.

	As such, I’ll make the odd move and claim that Korsgaard’s criticism against circularity, in this case, will ‘hold-water’ if and only if she is able to present a theory which isn’t also subject to the same criticism. I’m not sure how she isn’t making, however, the similar sort of circular definition in her own theory.

	Korsgaard has an innately constructivist view of these concepts. In her theory, it seems that rational morality is what we define it to be. It seems she also employs a circular definition, not from mind to independent reality, but from the mind to itself. Even if the dogmatic rationalist doesn’t have a substantive or informative definition of rational morality, I don’t think Korsgaard does either. 

''[3][a]''

''[Aspect #1]''

Like the dogmatic rationalist, Korsgaard locates rationality internally, but rather than finding practical reasons to act externally, she also finds them internally. The internality of both rationality and reasons is a major aspect of her theory. The practical reason to act is created through the categorical imperative and the instrumental principle, which are both internal to the agent (in her opinion; she also comes to define them as the same thing, eventually). This internality demonstrates a strong relationship between rationality and the will. This is part of meeting the requirements of practical reason: being both guiding and motivating. She explains:

<<<
Kant is usually thought of as a rationalist, but the Kantian conception of practical rationality represents a third and distinct alternative. According to the Kantian conception, to be rational just is to be autonomous. That is: to be governed by reason, and to govern yourself, are one and the same thing.<<ref "38">>
<<<

<<<
By seeing what goes with [Kant’s] early presentation of the instrumental principle, we are led to the mature Kantian view, which traces both instrumental reason and moral reason to a common normative source: the autonomy or self-government of the rational agent.<<ref "39">> 
<<<

Korsgaard holds this conception of rational autonomy. Rationality and will are entwined. An agent can’t be said to have one without the other.   Rationality and the autonomous will are, in fact, the same thing – the same faculty by which one determines what actions to take in order to reach the end one has chosen. She continues:

<<<
The principles of practical reason are constitutive of autonomous action: they do not represent external restrictions on our actions, whose power to motivate us is therefore inexplicable, but instead describe the procedures involved in the autonomous willing. But they also function as normative or guiding principles because in following these procedures we are guiding ourselves.<<ref "40">> 
<<<

Rationality acts both as motivation and guidance because it is descriptive of the movements of the autonomous will. In this way, Korsgaard escapes the trap of having the instrumental principle merely describe what happens when one desires something.  It is truly the will – the faculty of choice – that drives decision making. She continues:

<<<
Kant’s version of the instrumental principle [is] formulated in terms of the will, not in terms of desire. In general or schematic form, the instrumental principle tells us that if we will an end, then we ought to will the means to that end.<<ref "41">>
<<<
<<<
Instead, the act of making a maxim—the basic act of will—conforms to the instrumental principle by its very nature…To will an end just is to will to cause or realize the end, hence to will to take the means to the end. This is the sense in which the principle is analytic. The instrumental principle is constitutive of an act of the will. If you do not follow it, you are not willing the end at all.<<ref "42">>
<<<

	By combining rationality and reason through the autonomous will, Korsgaard makes it possible to view the process as both constructivist and normative.  This is connected to the practical identity, as well – in choosing an end and committing yourself to a particular identity and its obligations, you create and accept normative moral laws:

<<<
Willing an end just is committing yourself to realizing the end. Willing an end, in other words, is an essentially first-personal and normative act. To will an end is to give oneself a law, hence, to govern oneself. That law is not the instrumental principle; it is some law of the form: realize this end. That of course is equivalent to “Take the means to this end.” So willing an end is equivalent to committing yourself, first personally, to taking the means to that end.<<ref "43">>
<<<

Korsgaard’s conception of the relationship between practical reason and rationality is necessary for the rest of her moral theory. The internalist argument she provides is of cardinal importance to the concepts of self-constitution – they are inextricably linked. The notion that rationality finds internally the reason to will and act allows her to support a constructivist view of morality. 

[Aspect #2]

	The instrumental principle is normative only insofar as the categorical imperative normatively gives us ends. The instrumental principle is not normative on its own -- it doesn’t stand alone. While the categorical imperative doesn’t specifically tell us which certain ends we have, the categorical imperative leads us to some ends, and in doing so, it grants normativity to the instrumental principle.<<ref "44">>   We see that Korsgaard is, at first, considering that the instrumental principle is in some way separate from, but not fully independent of, the categorical imperative. She points towards this:

<<<
The instrumental principle cannot stand alone. Unless there are normative principles directing us to the adoption of certain ends, there can be no requirement to take the means to our ends. The familiar view that the instrumental principle is the only requirement of practical reason is incoherent.<<ref "45">>
<<<

	The instrumental reason is dependent upon the categorical imperative. So far it seems that she is still willing to separate instrumental reason, in some sense, from the categorical imperative, but her later clarification demonstrates that it really isn’t separable. There is a unification theory of practical reason. As she changes the outline of her argument in her afterword, we see an explanation which ends up saying something profound, namely, there is only one type of practical reason, the categorical imperative. Admittedly, she originally points towards this in a footnote:

<<<
	Moral or unconditional principles and the instrumental principle are both expressions of the basic requirement of 
giving oneself a law, and bring out different implications of that requirement…I am inclined to think that the right thing to say about this parallels what I take to be the right thing to say about Aristotle’s theory of the unity of the virtues. There is really only one virtue, but there are many different vices, different ways to fall away from virtue, and when we assign someone a particular virtue, what we really mean is that she does not have the corresponding vice. In a similar way, there is only one principle of practical reason, the categorical imperative viewed as the law of autonomy, but there are different ways to fall away from autonomy, and the different principles of practical reason really instruct us not to fall away from our autonomy in these different ways.<<ref "46">>
<<<

	Korsgaard makes an important analogous explanation of the single principal of practical reason in this footnote; it is from this after thought that her change in the afterward develops.  She compares her idea to Aristotle’s conception of the single virtue.  According to Aristotle, there is only one virtue; there are, however, many vices (that is, many ways to fail to meet that virtue).  What we conceive of as many virtues, as being in some way artificially separable from the single virtue, are really various ways we can fail to fail (i.e. succeed) – they are not, in essence, separate entities from the single virtue.  Likewise, in Korsgaard’s view of the single principal of practical reason, the only true principal is the categorical imperative.  There are many ways, however, that one can fail to achieve or perhaps lose autonomy – and the various corresponding ways to fail to fail can be seen as principals of practical reason.  The instrumental principle, then, is not separate from the categorical imperative – it is merely part of the way to meet the requirements of the categorical imperative. Failure to implement the instrumental principle is but one specific way of failing to meet the categorical imperative.

	She later makes the explicit claim in her afterword:

<<<
	The instrumental principle is not a principle of practical reason that is separable from the categorical imperative: rather, it picks out an aspect of the categorical imperative; the fact that the laws of our will must be practical laws, laws that constitute us as agents by rendering us efficacious….So let me here state the conclusion of my argument properly. There is only one principle of practical reason, and it is the categorical imperative.<<ref "47">>
<<<

	By integrating the instrumental principle into the categorical imperative, she is able to explain why the instrumental principle has normative force.

''[b]''

''[Counter-argument #1]''

	Her theory does show guidance and motivation, but I think her argument does so at the cost of normative force rather than to the conclusion of it. Two issues come to mind. 

	The first is that her internalism removes the objectivity that I seek above all else. Without it, I just don’t see anything as justified. Of course, I’m defining justification as something that is outside me, and it doesn’t look like Korsgaard is willing to go that direction.

	Second, I question if it is an appropriate move to combine rationality and the will as she does. I certainly recognize that there is a strong connection between the two, but I’m not convinced that they are the same faculty. I don’t know what it means to do what is irrational or wrong in her theory. Separation of will from rationality provides room to make better sense of things like irrationality and even immorality. I don’t see why one can’t choose to will what is irrational. 

''[Counter-argument #2]''

	I’m not sure I can disagree with the idea that there is only one principle of practical reason. I think, however, that it’s a possibility with which moral realism might be able to agree. But, therein lays the difference. The relationship between the agent and the principle is where I disagree with Korsgaard the most. 

	The relationship between the instrumental principle and categorical imperative should be a strong one. Exactly how strong, I’m not sure. 

	Admittedly, in conjunction with others features of a moral theory, there are odd sorts of positions which might come about if we collapse the instrumental principle into the categorical imperative. Let us assume that only universalizable maxims count as rational ones. Aren’t there elements of rationality in non-universalizable maxims, specifically of the sort which include a proper implementation of the instrumental principle?

	If the instrumental principle is merely an integrated subset of the categorical imperative, then it seems extraordinarily difficult to talk about being rational, to any degree, in reference to a non-universalizable maxim. I believe some evil people are ‘more rational’ in their approach to being evil than others. Would not the agent who is most effective at bringing about evil ends be, in some way, more immoral than the inept agent who failed to implement the instrumental principle? I’m not convinced this sort of story can be told within Korsgaard’s framework. 

	There definitely has to be overlap between the instrumental principle and the categorical imperative. I don’t see how it is plausible that the categorical imperative includes within it the instrumental principle. It doesn’t seem to make enough room for doing what is wrong, what is against the categorical imperative, while still being otherwise quite rational.
	  
---------------------------

<<footnotes "1" "Christine Korsgaard, //Self-Constitution: Agency, Identity, and Integrity //(Oxford: Oxford University Press, 2009), 20">>
<<footnotes "2" "Ibid., 20">>
<<footnotes "3" "Ibid., 21">>
<<footnotes "4" "Ibid., 20">>
<<footnotes "5" "Ibid., 23">>
<<footnotes "6" "Ibid.">>
<<footnotes "7" "Ibid.">>
<<footnotes "8" "Ibid.">>
<<footnotes "9" "Ibid., 22-23">>
<<footnotes "10" "Ibid., 23">>
<<footnotes "11" "Ibid., 24">>
<<footnotes "12" "Ibid., 1-2">>
<<footnotes "13" "Ibid., 11">>
<<footnotes "14" "Ibid., 10">>
<<footnotes "15" "Ibid., 14">>
<<footnotes "16" "Ibid., 25">>
<<footnotes "17" "Ibid., 17">>
<<footnotes "18" "Ibid., 20">>
<<footnotes "19" "Ibid., 19">>
<<footnotes "20" "Ibid.">>
<<footnotes "21" "Ibid., 19-20">>
<<footnotes "22" "Ibid., 18">>
<<footnotes "23" "Ibid., 21">>
<<footnotes "24" "Ibid., 19">>
<<footnotes "25" "Ibid., 2">>
<<footnotes "26" "Ibid., 3">>
<<footnotes "27" "Ibid., 18">>
<<footnotes "28" "Ibid., 7">>
<<footnotes "29" "Ibid., 21">>
<<footnotes "30" "Ibid., 7">>
<<footnotes "31" "Ibid., 25">>
<<footnotes "32" "Ibid., 26">>
<<footnotes "33" "Christine Korsgaard. “The Normativity of Instrumental Reason” in //The Constitution of Agency: Essays on Practical Reason and Moral Psychology// (Oxford: Oxford University Press, 2008), 29-30">>
<<footnotes "34" "Ibid., 31">>
<<footnotes "35" "Ibid., 55">>
<<footnotes "36" "Ibid.">>
<<footnotes "37" "Ibid.">>
<<footnotes "38" "Ibid., 31">>
<<footnotes "39" "Ibid., 32">>
<<footnotes "40" "Ibid., 31">>
<<footnotes "41" "Ibid., 46">>
<<footnotes "42" "Ibid., 56">>
<<footnotes "43" "Ibid., 57">>
<<footnotes "44" "Ibid., 68">>
<<footnotes "45" "Ibid., 32">>
<<footnotes "46" "Ibid., 63">>
<<footnotes "47" "Ibid., 68">>
Liam Murphy is exclusively interested in “describing a robust egalitarian conception of justice that nevertheless makes reasonable demands on people.”<<ref "1">> His assessment of ‘reasonable’ does a lot of unspoken philosophical work which shapes the rest of his argument. His debate between monism and dualism of political philosophy rests upon this aim.  Admittedly, this initial aim, prima facie, seems quite agreeable. As it shapes his discussion, however, it becomes apparent that this aim requires clarification and justification.  I’m going to briefly sketch out his argument, as well as explain his distinction between monism and dualism.   From there, we’ll be able to consider the impact of the underlying aim, and whether or not it really makes a good case for monism, and if the aim (or its denial) has influence on the viability of dualism as Murphy presents it.

A monist believes there is one set of fundamental normative principles or goals which determine both institutional requirements and personal moral requirements.  Justice is likely a subset of morality.   Whatever principles define morality also determine the subsequent principles of justice. Murphy takes monism to be the default view, such that we need good reasons to depart from it.<<ref "2">>

	A dualist believes there are two sets of fundamental normative principles or goals, one which determines institutional requirements, which is where justice begins, and another which determines personal moral requirements. For the dualist, justice isn’t activated until the institutional level. Essentially, the source of the normativity of justice does not correspond to the source of the normativity of morality. Morality and justice are separate realms of normativity.

To be clear, monists certainly aren’t against institutions. In practical terms, and in most circumstances, it seems that monistic justice demands that we create some sorts of institutions. Vitally distinguished from dualism, the justice of monism isn’t activated by the implementation or design of institutions; rather justice is active before any institutional considerations. Institutions are instrumental, but not fundamental, to the monist.

	What monistic theories have in common is simply that principles of justice are derived from the same principles of morality. Principles of justice aren’t fundamental; they can’t stand alone; they must be underwritten by moral principles. Murphy’s standard principle of morality is some variant of utility, but he thinks this isn’t important (he’s probably wrong about that). He believes that monism motivated by his aim can cover many sorts of mainstream moral theories. While I can agree that monism, in general, without regard to his motivation, is capable of catering to other moral theories, I’m not convinced his motivation for monism is the right one, nor do I think his aim remains compatible with many moral theories. It is likely the case that his initial aim is built into his moral theory, which is why it plays out in any subsequently derived theory of justice he would deem plausible. 

Importantly, Murphy believes that dualism also takes up this aim. He explains:

<<<
A main hope behind all the arguments for dualism seems to be that it will help with a fundamental problem faced by, specifically, egalitarian theories of distributive justice: the problem of the unreasonable demands such theories of justice may potentially impose on some people.<<ref "3">>
<<<

His initial aim is a motivating force behind not only his monistic theory of justice, but, in his view, that of dualists, as well. Murphy believes that many political philosophers pursue dualism because they perceive it to be better at avoiding a problem of ‘unreasonable demands of justice’. Much of his argument deals with showing why dualism is not as favorable as monism in this respect. In some sense, Murphy believes that almost all arguments in favor of dualism, particularly for the sake of this initial aim, can be more effectively captured by monism. And if he is correct, then the reasons which might drive political philosophers towards dualism, need not take us there, but can instead lead to a specific conception of monism which does the same work without as many problems. He continues:

<<<
What binds together all the arguments I will consider is an underlying concern to describe a plausible and robust egalitarian theory of distributive justice that nevertheless appears to make reasonable demands on people in just and unjust circumstances. That this Rawlsian project is worthy I take for granted; my aim is to show that dualism hinders rather than helps it.<<ref "4">>
<<<

This ‘underlying concern’, the initial aim, is part of what he thinks is a Rawlsian project (and he is probably right).  Murphy believes monism is superior to dualism in this Rawlsian project.  This initial aim is a litmus test for the plausibility of any theory of justice, regardless of whether it is monistic or dualistic; it is a test of the ‘reasonableness’ of the demands of that theory.  This he admits to taking for granted. 

It is a potent test, but I think we must question its grounds.  If he is wrong about that initial claim, then I don’t think the rest of his argument can serve as a justification for why one should maintain monism. Further, if he is correct about the motivation behind dualism, and his initial aim is unjustified, then dualism also seems unjustified. The context of his argument at large rests upon this initial aim. 

What counts as a ‘reasonable demand on people in just and unjust circumstances’?  By reasonable, he means ‘minimal’. And by minimal, we aren’t talking about whether justice can demand more than what is required (that would be injustice!).  Rather, the minimal aspect of ‘reasonable’ is that justice demands obligations of minimal size or minimal degree.  In Murphy’s view, justice has a low-ceiling on positive duties. He’s not going to consider any theory of justice which could make demands greater than his intuitive minimalism.   That assumption needs justification.

So, what is the problem with this principle of minimal sacrifice? What are the effects of assuming that there is a low ceiling to the sacrifices which justice requires? Murphy begs the question. Within the word ‘reasonable’ Murphy has inserted this principle of minimal sacrifice.  And, it just so happens that theories which meet this ‘reasonable’ requirement come pre-built with the principle of minimal sacrifice. 

Perhaps the obligations of morality and subsequently justice are such that we should sacrifice almost everything but the clothes on our backs for the sake of others. Murphy’s low ceiling is, for now, artificial, it is begged.   It might suit his intuitions or justify his way of life, but I’m far from convinced it is correct.

In part, we are roped into a discussion of the grounds of normativity.   It is clear, at least for the monist, that the moral principles dictate the principles of justice, and thus, our moral theories have profound impact on the sorts of justice theories which can be considered. He assumes certain moral principles, and that shapes justice for him. I’m fine with that, but it isn’t a great reason to be a monist in general, only to be a monist if you take his moral principles and further arguments comparing the effectiveness of dualism and monism to be true. It seems then, that he needs to justify his moral views in order to further defend his theory of justice.

Murphy is interested in achieving “our egalitarian aims without making ourselves miserable in the process.”<<ref "5">>  I think nobody wants to be miserable. But what does justice/morality have to do with my happiness?  To the egoist, everything.  To the utilitarian, it is substantially more complicated, and still not clear at all that I myself will achieve happiness.  To a virtue ethicist, it still isn’t clear in the practical world, particularly concerning moral luck and tragic dilemmas that we likely face in the real world – many virtue theorists purposely avoid the discussion of justice simply because it very often seems that the virtuous agent doesn’t directly benefit from it.   The Kantian doesn’t think personal happiness has anything to with justice or morality.   I tend to sympathize with this view; as far as I can see, what ‘I want’ has no direct connection to morality or justice.  Murphy subscribes to a variant of utilitarianism in this paper, but he mistakenly believes this argument is going to work for the other mainstream moral approaches.<<ref "6">>  Depending on the moral theory one takes us up, in monism, the sort of justice derived might be quite contradictory to Murphy’s aim.

Justice very well might call for us to make ourselves miserable. The easy example might be that misery is in some way subjective, and so it is very easy to see why some really might need to make themselves miserable for the sake of justice. But, even past this subjective point, I don’t see why it isn’t at least a possibility that justice requires we are all going to make sacrifices which will make us miserable. He continues:

<<<
If the background institutions are doing their job properly, people will not have to think too much about promoting general well-being, and this liberation is, from the point of view of beneficence, all to the good.<<ref "7">>
<<<

Pursuing our own interests and being happy is a good thing, generally speaking.   And, of course, all else being equal, the choice between a hypothetical theory of justice which doesn’t make room for our own interests, e.g. a prescription for institutions which are inefficient in maintaining our personal interests, and a theory of justice which does make room for our interests and happiness (to some extent), I’m willing to accept the latter is best.  Except, I think Murphy is really pointing out how important he thinks our ‘interests’ really are so superior in priority that the demands of justice must be bent around them. He thinks my lifestyle, my interests, my enjoyments – are to some degree fundamental to morality, and thus fundamental to justice. 

The principle of minimal sacrifice built into his moral theory plays a strong role in developing his monistic theory of justice. He seems to assume in some sense that the dualist has monist tendencies to start, but then drifts away toward dualism directly because of how they perceive the test results for reasonable obligations, essentially minimal sacrifices and maximizing happiness. Because he is a monist, if his moral principles are wrong on account of his principle of minimal sacrifice, then his principles of justice will be also. And, if he is correct about how dualism develops and what motivates their thinking, but remains incorrect about the principle of minimal sacrifice, then the dualists are also wrong. His initial assumption, if correct, might enable the rest of his argument for monism to follow, but he gives no reason to assume his initial assumption is correct.

---------------------------------

<<footnotes "1" "Liam Murphy, “Institutions and the Demands of Justice,” //Philosophy & Public Affairs//, Vol. 27 No. 4 (Blackwell Publishing: 1998), pg. 257">>
<<footnotes "2" "Ibid., 267">>
<<footnotes "3" "Ibid., 255">>
<<footnotes "4" "Ibid., 256">>
<<footnotes "5" "Ibid., 258">>
<<footnotes "6" "Ibid., 262">>
<<footnotes "7" "Ibid., 263-264">>

''[1][a]''

	Korsgaard is very careful in her definition of a “moral reason." For the most part, moral reasons stem from moral principles – for example, “the fact that an act is unjust or unkind is a moral reason against it.”<<ref "1">> In addition, she claims there is a special category of moral reasons, derived from the proper application of the categorical imperative. If a person acts according to the guidance of the categorical imperative, then he or she acts from moral reasons – or, at least, according to a moral ‘ought’. Korsgaard does not, however, claim that all actions – even those allowable by the categorical imperative – stem from moral reasons.<<ref "2">>  This is a bit confusing, because other parts of her theory suggest that actions which unify one are the only things we can call actions – and that those actions are derived from the categorical imperative, and should, therefore, be considered actions with moral reasons. 

In considering the differences in substantive and formal conceptions of morality, particularly regarding what it means to say we have a “moral reason” to do something, Korsgaard has an interest in preserving an “unconditionally binding” property of moral reason.<<ref "3">>   “Moral reasons” are products of a proper procedure or method of deliberation – it is in virtue of the procedure that moral reasons are significant and binding. The sort of procedure that Korsgaard endorses, the categorical imperative, which she believes is a formal conception of morality, produces unconditionally binding moral reasons. She wishes to dismantle procedures which don’t produce morals reasons which are unconditionally binding, such as those which might emerge from substantive conceptions of morality. 

	 Korsgaard contends with Bernard William’s explanation of “should” and “morally ought.”<<ref "4">>  It seems to him that morals reasons are a subset of all the reasons used for deliberating what we should (in a non-moral sense), in an all-things considered sense, do in general. Each subset of reasons belongs to a ‘point of view’ such as a “moral point of view,” a “self-interested point of view,” and so on.<<ref "5">>  So, the question “What should I do?” can be broken down into a sub-question from each point of view, such as “What should I do from a moral point of view?” and “What should I do from a self-interested point of view?” and so on. Each question represents a “sub-deliberation” of the general deliberation of the question “what should I do?”<<ref "6">> 

The “weighing model,” as a decision procedure, is about balancing reasons from different specific points of view to ascertain what one should do in general. <<ref "7">>  This is explicitly a procedure for figuring out whether one should or should not do some particular thing. In a decision to do one particular thing, some reasons are for one thing and some are against it. Whichever side, for or against, ultimately has the most weight (a detailed analysis of Korsgaard’s interpretation of this model can be found in part [B]) determines whether you should or should act in a certain way.

The vital point is that the deliberation of the weighing model contrasts moral reasons, which stem from the moral point of view, from other types of reasons, which stem from other points of view.<<ref "8">>  Korsgaard believes that a substantive conception of morality of the weighing model, in contrast to a formal conception of morality, particularly the operation of the categorical imperative, has built into it the pitfall of the possibility of separating the sense of ‘moral should’ from (as a subset of) the ‘general should’. The problem then is that moral deliberation takes a backseat to the deliberation of the ‘general should’. Moral reason doesn’t seem unconditionally binding within this procedure, as other sorts of reasons may override moral reason.

Korsgaard would likely agree that my moral point of view might provide strong moral reasons for me to be a good father to my children and to take proper action necessary to help them flourish. I might, on the other hand, not feel like doing this action. Perhaps some non-moral points of view offer quantitatively and qualitatively more robust reasons against this action of fatherhood (the self-interested point of view, for example, might point in this direction). By this conception of the weighing model, my moral reasons are outweighed by the reasons of my non-moral points of view. Thus, while from my moral point of view, I morally ought to do this fatherly action, I generally should not do this fatherly action. In this way, ‘moral oughtness’ loses its normative teeth; it is merely one of many points of view in domain of the ‘general shouldness’.

Avoiding that distinction between ‘moral ought’ and ‘general should’, which Korsgaard believes to be caused by employing a substantive conception of morality, is the motivation behind her preference for a formal conception of morality, in particular the Kantian “testing model.”<<ref "9">>  She explains:

<<<
The way you are supposed to deliberate is to formulate a maxim, stating the complete package of considerations that together favor the performance of a certain action…the marshaling of relevant considerations…will still go on, but now it will be part of the work of formulating the maxim. You will still do some weighing and balancing, although now it will only be of considerations that plainly are generally commensurable—we need not assume a metric that makes any possible consideration commensurable with any other. Your maxim, once formulated, embodies your proposed reason. You then test it by the categorical imperative, that is, you ask whether you can will it to be a universal law, in order to see whether it really is a reason. Universalizability is a condition on the form of a reason, and if a consideration doesn’t meet this condition, then it is not merely outweighed—rather, it is not a reason at all.<<ref "10">> 
<<<

	The categorical imperative is an oven in which you bake maxims; it is a test of the universalizability of maxims. Universalizable maxims are the cakes that come out of the oven which are worth consuming. Notice that the categorical imperative is a formal principle. Let us see if it does the work she thinks it does.

The complex part of the story begins with the formulation of the maxim. A maxim, which is a subjective principle, might usually be thought of as the set of {act, principle, end}. In this explanation of the maxim above, we are also marshaling together and adding to that set all other relevant considerations. So, the maxim as a complete package is the set {act, principle, end}∪{all other considerations}. This is our proposed reason, our proposed action even, which will be tested for universalizability by the categorical imperative.

Interestingly, Korsgaard claims that weighing and balancing of commensurable considerations is part of the formulation of the maxim. This suggests that some of work of the weighing model is done as a part of formulating the maxim, and thus the weighing model, in some sense, is incorporated into this testing model.

Only the maxims which pass the test of the categorical imperative, satisfaction being the universalizability of the maxim, can be said to be reasons for actions. If a proposed maxim doesn’t pass the test, then you can’t act on it, and you can’t use it as a reason to act, and it fails to be an action (as Korsgaard uses the word). And, so, we can see the categorical imperative essentially defines what really counts as action or true maxim or a moral reason, while the hypothetical imperative and proposed maxims play very subsidiary roles.gpg --verify check.sum.sig check.sum

This model is crucial because it seems that the products of the categorical imperative are moral reasons entirely for or entirely against specific actions. This formal conception of morality neatly packs the relevant considerations which we might be worried about including in the procedure, which the weighing model is designed to handle, while also avoiding the mistake of making moral reasons a subset of all the reasons used to deliberate about what we generally should do. So, it seems that Korsgaard can plausibly “identify the general should of deliberation with the moral ought.”<<ref "11">>  

Given Korsgaard’s remark, “we make ourselves the authors of our actions, by the way that we act,” she really must prefer the testing model over the weighing model.<<ref "12">>  By Korsgaard’s technical terms of art, in order for a person to perform an action, that person must be an agent. In order to be an agent, that agent must be unified. And, unifying yourself requires constituting yourself in accordance with the principle of practical reason, ultimately the categorical imperative. Essentially, “action requires agency, and agency requires unity,” and unity requires the categorical imperative.<<ref "13">>  Action, agency, and unity inter-define each other; all are subject to the categorical imperative; and therefore we say the categorical imperative is the constitutive principle of action. 

Thus, the categorical imperative is normative for us, it binds us.<<ref "14">>  But, since this is Korsgaard’s major thesis, and this is what she means by the above remark, then she must prefer the testing model – the test itself being the categorical imperative. The very definitions of reason, action, and agency rest upon the use of this particular testing model.

''[b]''

Intuitively, we should object to Bernard Williams’ weighing model because it allows non-moral reasons to trump moral reasons – essentially, we shouldn’t agree to the notion that ‘moral ought’ is distinct from, as a subset of, the ‘general should’. Korsgaard does point out that her description of the two models doesn’t solve this problem,<<ref "15">>  but I think she passes the argument off as being in the right direction. My intuitive objection motivates me to deny Williams’ particular weighing model, but it doesn’t motivate me to deny weighing models and take up the testing model. I think is easy to slip into making the mistake of transferring the force of the intuitive argument against Williams’ weighing model to an argument which is both against all weighing models and in favor of a testing model like the categorical imperative.

 If I were to deny, for the sake of argument, Korsgaard’s theory of self-constitution at large, and therefore lacked the crucial reasons she offers to motivate taking up a formal conception of morality, particularly the categorical imperative as a testing model, I remain unconvinced that the categorical imperative is obviously more plausible than well-constructed substantive conceptions of morality, such as utility or a plausible, non-relativistic weighing model.

With that said, my objective is to specifically defend Williams’ weighing model. The virtues of Williams’ weighing model might be slim, but I think the manner in which Korsgaard presented the model missed some of the advantages of the argument, and so I will extend and clarify her interpretation of his weighing model. Charitably and carefully presenting Williams’ weighing model in a better light will illustrate more depth to the virtues of it. So, while I might not, in the end, agree to the weighing model, my defense of the weighing model will demonstrate that Korsgaard doesn’t provide us a well-made picture of Williams’ weighing model, and that a proper account will be more coherent and (somewhat) more plausible than she implies. 
Korsgaard gives this example of the model:

<<<
You take a piece of paper, draw a line down the middle of the page, and write ‘‘for’’ on one side and ‘‘against’’ on the other, and then you start listing the relevant considerations…Then you add them all up somehow to see how strong the balance of reasons is ‘‘for’’ and how strong the balance of reasons is ‘‘against’’…On the ‘‘for’’ side you might write: ‘‘I would earn a lot of money’’ and ‘‘I would have more prestige.’’ Those, you say to yourself, are self-interested considerations. But perhaps on the ‘‘for’’ side you also write: ‘‘It would give employment to the local population’’ and on the against side you write: ‘‘It would damage the environment.’’ Those, you say to yourself, are moral considerations.<<ref "16">> 
<<<

A construction of the list she describes above likely looks something like this:
                    Figure 1

I’m taking liberties in interpreting a plausible meaning of “you add them all up somehow to see how strong the balance of reasons is ‘for’ and how strong the balance of reasons is ‘against.’”<<ref "17">>  All the reasons are stacked up on two sides of a single table, and they are balanced/weighed by adding the sum strength of reasons for and against. Notice that the number of reasons isn’t what matters; it is the weight of the reasons that decides. One really good reason for something might outweigh several less significant reasons against something.  In this case, the weighing model shows that you should not do X.

I’ve marked this as a ‘general point of view’, and we should note that the ‘moral point of view’ and all the other specific points of view are not directly demonstrated by this illustration; perhaps in her example they’ve been collapsed into the general table. I’ve artificially grouped similar types of reasons together on each of the side, but I need not do that – they could be in any order and it wouldn’t matter. We should also notice that the notion of subdeliberation appears somewhat absent from this picture. 

Unfortunately, it seems like only one giant deliberation. There is supposed to be a final deliberation, but preceding it, there should be subdeliberation(s) – and those, unfortunately, aren’t found in this illustration.

Korsgaard’s example does not mesh well with other things she explains, including:

<<<
[1] The picture seems to be that, on the way to making a decision, you marshal together the considerations of a certain common type before balancing them against considerations of another type.<<ref "18">> 
<<<
<<<
[2] If you think about deliberation this way, it is perfectly natural to talk about moral reasons and contrast them with other types of reasons.<<ref "19">> 
<<<
<<< 
[3] When you make your final decision, you might say something like: ‘‘well, there are some moral reasons against it, but they are outweighed by the moral reasons in favor of it, so on the whole morality favors it. And self-interest favors it too. Therefore, all things considered, it is what I should do.<<ref "20">> 
<<<
<<<
[4] Then you might do some subdeliberation on these various types of considerations, and then balance out the results against each other. .<<ref "21">> 
<<<

Remarks [1], [2] and [3] suggest that each point of view is its own group of considerations/reasons, and the reasons belonging to a point of view are weighed/balanced/contrasted as one collective group against another collective group. The example she gives doesn’t make sense of this. Remark [3] is especially important to modeling because it points to multiple decisions in the process, and it seems to directly show how it isn’t the reasons of one type directly intermingling with reasons of others types in a weighing process, but rather the point of view as a whole is directly weighed against another point of view as a whole. 

Remark [4] is clearly related to the other remarks, but within it there is also a vagueness which requires clarification. Bernard Williams explained part of the weighing model in this way (although he didn’t give this procedure an explicit name, he continually makes reference to a sort of ‘weighing’ throughout the book):

One can of course ask, on a given occasion, "what should I do from an ethical point of view?" or "what should I do from a self-interested point of view?" These ask for the results of subdeliberations, and invite one to review a particular type of consideration among those that bear on the question and to think what the considerations of that type, taken by themselves, support. .<<ref "22">> 

I bring Williams’ exact words up to help us make sense of an ambiguity in Korsgaard’s interpretation. She says, “Williams refers to these as questions of ‘subdeliberation,’” and “they could result in what Williams calls ‘subdeliberation,’” which leaves open the possibility that the sum of the questions results in but a single subdeliberation..<<ref "23">>  If that was the case, then there would be a single overarching subdeliberation and then a final deliberation. While this doesn’t immediately seem like it would be a worthy idea, perhaps there could a viable reason for setting the model up like this – just like subtotal and a total on some receipts. This doesn’t appear to be what Williams is saying. Intuitively, it makes more sense to say that each question results in its own subdeliberation, which I believe was Korsgaard’s intent; it wasn’t, however, explicitly stated.

So, given all these descriptors, what should an accurate model look like? We see there are some holes in Korsgaard’s example, and it doesn’t seem to nicely relate to other very important aspects of the weighing model she describes. We need to try to make sense of these details to construct an example model which makes more sense. I’m going to show a thought process involved in building a plausible example.

Admittedly, there is some level of uncertainty in how best to model. As a heads-up, my figures aren’t perfect, but I believe they’ll quickly demonstrate what I’m thinking. 

This model looks a lot closer to what Williams intended, and it makes sense of most of the descriptors which posed problems to Korsgaard’s example. Note that we now have subdeliberations of specific points of view which feed into a final deliberation from the ‘general point of view’. You can imagine that there are many more subdeliberations, I’ve only shown three for brevity’s sake.
Vitally, we need to recognize how the relationship between the subdeliberation tables and the master ‘general point of view’ table affects the outcome. In the case of Figure 2, the method of relation will result in the exact same outcome as Figure 1. Each side of each subdeliberation is summed and the results are transferred to the master table. What this amounts to is that the subdeliberations don’t really matter – having just one master table and no subdeliberations would have amounted to the same outcome. Surely this is not what is intended. Clearly, the relationship between the subdeliberations and the final deliberation won’t look like this.

As we’ll look at two more figures, let’s assume that all points are of equivalent value  because (from what I can see) any weighing model which would constructed otherwise can be shown to be convertible to an equivalence point system with no change in outcome. It is easier this way. Just to be clear, each method of relating the subdeliberation tables to the master table I’ll be showing is a unique function – there is no redundancy. The argument is that depending on how we clarify Korsgaard’s description, we arrive at weighing models of varying merit. Let’s see another.

Figure 3

I’ve kept subdeliberations the same. But, in the end, the weight of the conclusion of each subdeliberation remains the same – each gets a vote. Note that this produces a different outcome from our original method – by this account, you should do X. This model relies heavily upon Remark [3]. Subdeliberations favor one thing over another, and then all things, particularly the conclusion of each subdeliberation, are considered. Voting is a type of weighing, it strictly weighs the quantity of the conclusions of subdeliberations. We might argue that this isn’t enough; we may also need to weigh the quality of each conclusion of a subdeliberation against the others. So, let’s look at that:

Figure 4

In Figure 4 we see that the relationship between the subdeliberation tables and the master table generates a different outcome from Figures 1 and 2. The method of relation is transferring the weighted points of the ‘winning’ side of each subdeliberation to the master table. Interestingly, the qualitative weight of each conclusion is transferred for a final weighing. This makes sense to me because perhaps I only have one or two small reasons for doing X from one point of view; then it seems that the weight of that point of view is less significant than a point of view with four or five substantial reasons against doing X. If this is a problem, then we should weigh the conclusions of subdeliberations in a non-vote – which is why Figure 4 seems more plausible a model than Figure 3.

One of the weird aspects of the weighing model is figuring out what happens when both sides are equal. I’m sure a clause for the weighing model could be created to be a tiebreaker.

So, I’ve done a lot of work to show the depth of constructing a more plausible weighing model. But I’m afraid that even this isn’t satisfactory. I worry that Korsgaard’s description is still missing the point. Part of the problem is that the weighing model isn’t about “Should I do X?” but rather “What should I do?” or “How should I live?” These are substantially broader than she demonstrates with her prototype of the weighing model. If she constructed the model correctly, I think she’d need to show more explicitly how it makes sense of the last questions rather than the first. She built this weighing model to provide “yes/no” answers, similar to the categorical imperative as a testing model. But the weighing model isn’t looking for an answer as simple as a yes or a no. 

A proper weighing model will need to take into account all the possible alternatives of action available, and it will need to weigh between the various actions, using a subdeliberation/final deliberation model. There are various ways of doing this. You might, for example, imagine that there is a final vote or weight for each possible action, either a negative or positive weight (in degrees of course), which depend on whether or not your decision procedure for a particular “Should I do X?” determines whether you are for or against it, and to what degree. So, then it seems there an overarching deliberation and weighing procedure for the conclusions of the smaller “Should I do X?” and “Should I do Y?” and so on. Likely, the overall weighing model requires a detailed account of how it relates to the smaller single action deliberations and their weights.

As a side note, one possible weighing model which technically fits Williams’ model, but certainly isn’t his intent (basically, it would be cheating), would be to have the value of moral reasons to astronomically outweigh any other type of reasons (or perhaps non-moral reasons may have zero weight), to the point that moral reasons are the only sort of reasons which actually ever end up mattering in the weighing model. That would clearly be against the spirit of Williams’ original objection, but it is an example of a weighing model that determines what to do from essentially moral reasons alone (which I prefer).

Another worry I have is that it seems Korsgaard’s missing substantial principle and her robust maxims actually demonstrate her theory requires a hybrid, being both formal and substantive. But it seems that the weighing is also a hybrid. The weighing model is a formal principle; it is a way of deliberating. It is a function whose inputs are substantive arguments; but the model itself, the function of weighing inputs, seems very much like a formal principle to me. The contents which are input into the formal weighing model are substantive; they come preloaded with substantive values. But, arguably, maxims and the missing principle do something similar. Oddly, it seems as if her theory can be construed as a weighing model as well.

	Interestingly, in seems that we can also argue for a weighing procedure of the maxims which are universalized by the categorical imperative. In this case, the categorical imperative test is contained by a larger weighing model. The “Should I do X?” deliberations, with ‘yes or no’ answers (although, they might also require some mechanism for weighting), which are but one part of Bernard Williams’ weighing model, can actually be replaced by the categorical imperative (although, perhaps some additions will be necessary). But, if this is case, then perhaps some form of a weighing model might ultimately be the decision procedure at large.  

''[2][a]''

	Korsgaard investigates the nature of the Kantian hypothetical imperative. What does it mean to say “if you will an end, you must will the means to that end?”.<<ref "24">> In particular, Korsgaard is worried about the interpretation of the relationship between “taking the means to an end” and “determining yourself to cause the end” as being analytic.<<ref "25">>  But, why should she be worried about the notion that: someone fails to take the means to an end if and only if that person didn’t determine themselves to cause the end? She is interested in preventing Kant’s view from degenerating “into tautology” such that “your end would be whatever you in fact pursue.”.<<ref "26">>  If this occurs, it seems to Korsgaard that the hypothetical imperative loses its normativity – it is important to her that a person can fail to meet the requirements of the hypothetical imperative. But, further, breaking up the analytic interpretation of the hypothetical will help promote one of her majors theses. [Significant Feature #1] Significantly, Korsgaard prefers to interpret the hypothetical imperative as a “constitutive principle of willing,” whereby a “person who wills an end constitutes himself as the cause of that end.”.<<ref "27">>  

	Her view of rationality coincides with her interpretation of the hypothetical imperative. The vital feature of a rational mind is that it “acts not merely in accordance with laws, but in accordance with its own representation or conception of a law.”.<<ref "28">> This notion of rationality arguably has an element of free will attached to it. If we are merely acting in accordance with laws, then we aren’t really acting at all. We would be misrepresenting the state of affairs to claim that a rock which falls in accordance with the laws of physics was really acting in a meaningful sense – after all, it was the laws of physics causing the rock to fall. Likewise, a mind which is completely determined by laws, laws which aren’t the mind’s own conception as Korsgaard would have it, isn’t acting of its own accord. A rational mind must cause its own acts, and Korsgaard thinks it can only cause its own acts when it acts in “accordance with its own representation or conception of a law.” Korsgaard is claiming that when we generate our own maxims, we are generating our own conceptions of laws..<<ref "29">>  We act in accordance with our own conception of law. Thus, when we act upon our maxims, those acts really are ours; they are acts caused by our rational minds; we have determined ourselves; we have willed those acts. The self-determination of rationality demonstrates our responsibility and is a necessary condition to her the self-constitutive feature I highlighted above.

	Korsgaard gives an example of a rational mind using logic. She parallels the principle of modus ponens (P → Q, P ⊢ Q) as a normative principle which describes the mental process of drawing a conclusion to the hypothetical imperative as a normative principle which describes the mental process of willing an action..<<ref "30">>  It makes that she has chosen modus ponens. It is easy to see how all other rules of inference might rely upon it in a deductive system. Conjunction introduction (P, Q ⊢ P ∧ Q) in a deductive system is applied via modus ponens. If P is true, and if Q is true, then P ∧ Q is true. Since P is true, and Q is true, therefore P ∧ Q is true. Modus ponens is a well-chosen example of drawing any sort of logical conclusion. We walk away with the notion that the hypothetical imperative is “a constitutive principle for the will” in the way that modus ponens is a constitutive principle of drawing logical conclusions.<<ref "31">>

	She also tells us a psychological story (which she uses several times in the book) about how the hypothetical imperative unifies and constitutes the will. The story is basically that I, as an agent, can be in conflict over my desires and emotions, but I can choose not to conform to and ‘to be’ these desires and emotions. Only when I am overriding my desires and emotions, when I say “I am not you; my will is this,“ and when I “consciously pick up the reins, and make myself the cause of the end” can it be said that ‘I’ am willing an end rather than my desires and emotions.<<ref "32">> Without the capacity to employ the hypothetical imperative, it would be my desires and emotions which determine me; I would have not a will without the hypothetical imperative.<<ref "33">> Thus, to say that the hypothetical imperative is a constitutive principle for the will is to say that “I” willed something, in part because I’m employing the hypothetical imperative.

	Korsgaard explains that in some sense, “there is no hypothetical imperative” because the “hypothetical imperative is not really a separate principle at all; rather, it captures an aspect of the categorical imperative: the fact that the laws of our will must be practical laws.”<<ref "34">> In another sense, however, Korsgaard does artificially separate the hypothetical imperative from the categorical imperative, but at the same time the she maintain the normativity of hypothetical imperative, which means we can fail to satisfy it. [Significant Feature #2] A very significant feature arises: the possibility of instrumental irrationality.<<ref "35">> 

	An agent who is instrumentally irrational “does will the end, but cannot bring himself to take the means.”<<ref "36">> An agent who is instrumentally irrational does will an end and constitutes himself as the cause of that end, but Korsgaard believes he does it badly, because he cannot bring himself to take the means to that end. Korsgaard gives us an example:

<<<
For if someone shrinks from an agonizing medical procedure needed to save his life, it seems more plausible to say that he can’t face the means than that he doesn’t really will the end of continuing to live.<<ref "37">>
<<<

	In some sense, this man chooses not to take the means to this end, but at the same time he does will his end and he does determine himself to cause the end - he just does it badly. If this is the case, then Korsgaard might be successful in avoiding the tautological interpretation of the hypothetical imperative.<<ref "38">> I am not sure, however, if Korsgaard’s example strictly supports her own interpretation. I worry that Korsgaard needs to provide a stronger account of how degrees of agency and constitution are linked to failing to meet the normative requirements of the hypothetical imperative.

	I see two versions of this story. The above way appears to be Korsgaard’s interpretation. A person can be influenced (which isn’t necessarily being ‘determined’) by an irrational impulse. The man may know that he is going to die if he doesn’t have the medical procedure to save his life. The rational thing to do is to have the procedure if his end is to live. However, irrationally, while he really does want to live, he is inclined to deny the procedure because of an overwhelming fear of pain. So, he has an irrational incentive that overrides his reason, and causes him not to take the means to his chosen end.

	Another version of the story still supports the tautological interpretation of the hypothetical imperative. Perhaps the man really didn’t will to live at all, and that is why he didn’t have the agonizing medical procedure. He knew that willing the minimization of pain and suffering as an end was incompatible with willing to live as an end. What he really willed as his end was the minimization of pain and suffering to the exclusion of willing to live. And, he did take the means to that end. Obviously, Korsgaard doesn’t like this interpretation because it removes the normativity of the hypothetical imperative; but, it seems very plausible that we can make sense of the tautological interpretation, despite Korsgaard’s dislike of its inviolability. For now, I don’t see why we should deem her version of the story more plausible than this second version. 

	Korsgaard concludes 4.3 with the following:

To act is to constitute yourself as the cause of an end. The hypothetical imperative picks out the cause part of that formulation: by following the hypothetical imperative, you make yourself the cause. As we are about to see, the categorical imperative picks out another part of that formulation—that the cause is yourself. By following the categorical imperative, you make yourself the cause.<<ref "39">>

	Here, she wraps up what she means about how there isn’t a hypothetical imperative, in some sense. Clearly, in another sense, we can artificially extract it from the categorical imperative because of the “distinctive feature[s] of action” it captures.<<ref "40">> 

''[Criticism]''

	One of the worries I have with this reading is how it might contradict Korsgaard’s previous criticism of Dogmatic rationalists. She denies that moral propositions are objective features of the world, existing independent of our minds.<<ref "41">> This criticism is found in both “The Normativity of Instrumental Reason” and again in sections 1.1.4-1.1.5 and 4.2 of Self-Constitution. It seems that the very same criticism she makes against the Dogmatic rationalist can also be applied to her argument. If this is true, then she’ll either need to give up her criticism of the Dogmatic rationalist or she’ll need to deny the parts of her argument which are subject to the Dogmatic rationalist criticism (both of which have an enormous set of implications for her theory at large). Here is the passage from 4.3 in question:

<<<
Rationality is a power of self-determination. This is a general point, not just a point about practical reason. Consider again the case of logic. Perhaps you don’t arrive at all your beliefs through reasoning, but when you do, it’s an act of self-determination, in the sense that the activity of your own mind is part of what produces the belief in you. Suppose you believe two premises, and a certain conclusion follows. You won’t automatically believe that conclusion, because you might not notice the connection between them. But if you do notice the connection, and put the premises together in the way suggested by the connection, then you do something: you draw the conclusion. In drawing the conclusion—or, as we say, in making up your mind, in constituting your mind—you determine yourself to believe it. The principle of modus ponens describes what you do when you draw the conclusion, but it is also a normative principle. In the same way, the hypothetical imperative describes what you do when you will an action: you determine yourself to be a cause, the cause of some end. But it is also a normative principle. It is a constitutive principle for the will.<<ref "42">>
<<<

	Modus ponens is paralleled to the hypothetical imperative; the relationship between an agent’s rational psychology and the world is parallel for both sorts of principles. Problematically, this relationship, at least in the case of modus ponens, appears to be a form of representationalism which Korsgaard vehemently denies in her earlier criticism of the Dogmatic rationalist concerning moral propositions and principles.	

From the reading, we can see that the connection between two premises pre-exists any belief or awareness of its truth. That is to say, modus ponens as a rule of inference applies regardless of whether or not an agent exists or knows it to be the case. The story of rational psychology put forth is that the agent himself ‘draws the conclusion’, that modus ponens as a fact becomes introduced into the mind of the agent as a part of that agent’s willing to know the truth. Notice that what makes the internal representation of modus ponens coherent at all in the mind of the agent is its link to the objectivity of modus ponens as a rule inference in the world external to the agent. Modus ponens is not a valid rule of inference in virtue of the agent; instead, the belief of the agent is justified by its relationship to external reality; modus ponens is good rule of inference in virtue of reality. 
 
Assuming this parallel between the logic of modus ponens and the hypothetical imperative as a practical reason holds, Korsgaard’s original criticism of Dogmatic rationalism is untenable; she can’t deny that practical reasoning such as the hypothetical and categorical imperatives are objective features of the world, existing independent of our minds. The representation of the moral law in our minds is coherent and justified solely in virtue of its link to the actual, objective moral law which is external to us in the world.

Of course, Korsgaard might criticize the Dogmatic rationalist’s representationalist form of normative principles as lacking motivational force. But, she’s already said that modus ponens is a normative principle, and it is normative in virtue of being external to us – and yet we are motivated by it. The same line of reasoning should be offered for the hypothetical and categorical imperative. This view, however, has profound implications for what it means to be a self-determining and self-constituting agent in her theory.

''[b]''

Particularism eschews any kind of general rule-governed morality - reasons for acting are never based on generalities such as “don’t lie.” In a nutshell, Korsgaard answers particularism by claiming that incentives and desire can’t constitute you, but rather 'you' are over your desires. In, particularistic willing, incentives and desires dictate who you are, and thus you aren’t determining yourself. So, if we are to assume Korsgaard’s self-constitution theory, then particularistic willing isn’t willing at all.  Essentially, 'you' includes being under the operation of categorical imperative, a general rule, which is contrary to particularism. Let’s zoom in to see her argument, starting with Korsgaard’s initial concern with particularistic willing:

<<<
Particularistic willing would be a matter of willing a maxim for exactly this occasion without taking it to have any other implications of any kind for any other occasion.<<ref "43">><<<

Particularistic willing within the framework of maxims and the categorical imperative amounts to over-specified and seemingly non-universalized maxims which fit your exact particular circumstance. In the particularistic maxim, the antecedent of a maxim is specified to the point that you’ll never find yourself in that circumstance again by definition, e.g. to exaggerate the point, the time/date and your GPS coordinates could be a part of the antecedent of the maxim, such that generalizing, universalizing, or demonstrating similarities to other circumstances is impertinent or impossible and no longer the purpose of the categorical imperative as a test of universalizability. So, there is a sense in which particularistic maxims are ‘universalized’, but a maxim of this sort is so specific that it no longer possesses any general guiding powers outside of a truly unique circumstance. Hence, this is why one might say that particularistic maxims aren’t really universalized in a meaningful way. 

The categorical imperative becomes impotent in this paradigm. In a very theoretical sense, this formulation of the categorical imperative seems to provide an analytic, logically true notion of moral theory, much like how virtue and the virtuous agent are inter-defined. It comes at a cost, namely that these logically true statements of moral theory fail to provide substantial, concrete moral truths or a meaningful, practical decision procedure. While not completely explicated by Korsgaard, I believe this is part of what motivates her to deny particularistic willing.

Korsgaard gives an example of an agent with conflicting/incompatible desires, A and B. The agent has “some principle that favors A over B,” and so this agent exercises his principle and chooses A.<<ref "44">> In this case, we can see the agent regards “the principle of choice as expressive, or representative” of himself and his causality. Vitally, the principle within the agent is not some third force within him which helps A win the conflict over B; the agent’s mind is not a battleground on which he is a “mere spectator” whereby his principle is the real cause of his action. Rather, it is in the agent’s “identification with the principle of choice” on which he acts that enables us to say ‘he’ did something, not his principle. Essentially, self-determination requires self-identification with a principle on which you act.<<ref "45">> This example is parallel to the psychological story about how the hypothetical imperative unifies and constitutes the will that we saw in 4.3.

According to Korsgaard, “particularistic willing makes it impossible for you to distinguish yourself, your principle of choice, from the various incentives on which you act” because “in order to will particularistically, you must in each case wholly identify with the incentive of your action.”46 If she is correct, and a person cannot constitute himself by wholly identifying himself with his incentives, then the person who employs particularistic willing isn’t actually willing at all; thus, he is not really agent because he does not constitute himself as the cause of an end. 

This is clearly connected to her thesis in 4.3: the hypothetical imperative is a “constitutive principle of willing,” whereby a “person who wills an end constitutes himself as the cause of that end.”<<ref "47">> Particularistic willing is a determination of the self from some alien part within the person, not the person himself as a whole determining himself. Lacking self-determination prevents a person from truly willing an end and constituting himself as the cause of that end.

''[3][a]''

I am going to explain the structure of the argument in this chapter. In doing so, we’ll realize the defining qualities and the impact of Korsgaard’s conceptions of self-consciousness and reason, and then it will be obvious how the argument collapses without both of these notions. The argument in chapter 6 is expansive and very detailed; and so I’m going to explicate her argument section by section.

''6.1  Instinct, Emotion, Intelligence, and Reason''

''6.1.1''

	Korsgaard sets out to differentiate the sort of will, action, and psychology of non-rational from those of rational animals (humans). Korsgaard provides a generous account of the psychology of non-rational animals, but she wishes to show an even ‘deeper sense’ of human agency, will, action, and identity by pointing out what is ‘up to us’ and how we determine ourselves, unlike non-rational animals.<<ref "48">>

	There is a relationship between principles and incentives, namely “principles determine which incentives a creature is subject to as well as what she does about them.”<<ref "49">> Incentives seem to be the sort of thing which agents (both rational and non-rational) perceive, and the principles govern.  The principles are the laws of one’s causality. The will of non-rational animals stems from instincts because the principles of non-rational animals are instincts. Action can only be understood by how instinct determines the non-rational animal to move. Unlike non-rational animals, humans have a much stronger sense (perhaps ‘degree’) of agency in that we actually choose our principles. We are not determined by instinct. Our actions, our will, our laws of causality are ‘up to us’. 

	We will see that humans are similar to the non-rational animals, possessing primitive psychological capacities, even some elements of instinct, but we also find that humans have something more than do the non-rational animals.

''6.1.2-6.1.3''

	These sections are focused on the notion of instinct. Korsgaard believes the impact of instincts differ among non-rational and rational animals. Instincts “structure an animal’s consciousness, his conception of the world, in ways that will enable him to survive and reproduce.”<<ref "50">> Korsgaard claims that the perceptions of animals come pre-loaded with practical, teleological significance, not requiring contemplation.<<ref "51">>

<<<
	There are two senses in which “instinct” is used, the narrow and the broad. The narrow sense refers:
to an established connection between a representation (the incentive) and a certain primitively normative response, an automatic sense of the response as appropriate to or perhaps better called for by the representation.<<ref "52">>
<<<

	In considering instinctive action, Korsgaard wishes to narrow this range of connections to the sort which is less automated, “where there is room in consciousness to experience the response as called for or appropriate.”<<ref "53">>  While in non-rational animals, it seems that we can inevitably tell a deterministic story of how instinct automates behavior and psychology, the ‘knee-jerk’ reaction is not the interesting end of the spectrum which Korsgaard wishes to consider.

''6.1.4''

	This section is largely about Korgaard’s conception of emotion. She claims that emotions are “perceptions of reasons,” particularly “perceptions of practical reasons, reasons for action.”<<ref "54">> We should note that the way in which instincts operate in animals as a type of perception or emotion should be distinguished from how emotions operate, in a deeper and more complex sense, in the minds of humans.

	Importantly, emotions aren’t the sort of thing we can choose or decide to have. They are responses of agents, likely in a slightly automated sense, which we don’t possess from reason. Emotions are a weaker form of response of agency, however, than something like action, which requires reason.<<ref "55">>

	Korsgaard claims that “emotions can sometimes be judged morally good or bad, and this is in turn because an emotion is subject to standards of appropriateness and intelligibility.”<<ref "56">> This is interesting. At least some emotions aren’t ‘knee-jerk’ reactions, and that is part of what allows them to be subject to normativity. While Korsgaard isn’t clear on the matter here, I suggest that she must be maintaining that the sort of emotions in humans which can be judged as morally good or bad are not completely deterministic (hormonal, chemical, electrical impulses, etc.). If not, perhaps she is trying to relate these sorts of emotions to the type of normativity she believes belongs to the non-rational animals, but I am not convinced that works.

	Further, “to have an emotion is to stand in the presence of a normative fact.”<<ref "57">> This is related to a weak sense of normativity for animals, which is based on the teleology built into their perception.<<ref "58">>

''6.1.5-6.1.6''

	The broader meaning of instinct is explained in relation to intelligence. This broader meaning of instinct includes “learned responses”<<ref "59">> and is thus linked pretty strongly to intelligence. Intelligence is the “ability to learn from…experiences,” the ability to “extend [one’s] repertoire of practically significant representations…beyond those with which instinct (or the inventor) originally supplied,” and the “capacity to forge new connections, to increase your stock of automatically appropriate responses.”<<ref "60">> Both the non-rational animal and the human seem to possess, to some degree, some more than others, intelligence on this account.  

Crucially, we are told that both non-rational animals and humans naturally have a teleological perception of the world.<<ref "61">> Human perceptions can move beyond this natural, teleological perception of the world. Differences in the degrees of intelligence, however, do not distinguish the nature of human perception of the world from the non-rational animal in a significant way.  The scientific (non-teleological) view of the world is an abstraction unique to rational animals, but intelligence is not sufficient for the creation of this worldview. Reason is the necessary ingredient which allows humans to detach from the naturally teleologically-loaded perceptions of the world common to all intelligent animals.<<ref "62">>

Korsgaard says that reason is “the thing that makes us us.”<<ref "63">> This is somewhat a double-entendre. Clearly, reason has to be the thing which distinguishes non-rational animals from rational animals. But, further, Korsgaard’s use of the word ‘make’ is no accident – reason, as she uses the word, is central to how rational beings make their own selves, forms, and identities.

''6.1.7''

The capacity of ‘reason’ was very briefly introduced in the last section, and the capacity of ‘self-consciousness’ is strongly introduced in this one. Self-consciousness comes in different degrees and forms.<<ref "64">> Self-consciousness relates to different spaces: physical space, social space, and mental space. Self-consciousness is partly about locating the ‘self’ in a type of space, about relating and distinguishing the self from the things around it. Almost all animals are capable of the first, many the second; but it seems that only the very potent self-consciousness of agents like humans are capable of enabling an agent to locate himself in mental space.<<ref "65">>

	To locate oneself in mental space is “to locate yourself with respect to your own thoughts and emotions, and in particular to know them as your own.”<<ref "66">> ‘You’ are distinct from your thoughts and emotions. Here it becomes evident how Korsgaard wishes to employ her dual meaning of the “I.” Paradoxically, in one sense, the “I” is the whole organism, with all its thoughts, emotions, physical parts, etc., and in another sense, the “I” is the self-consciousness within the mental space that is distinct from, aware of, and contained by the surrounding capacities and parts of the rational organism. I am not sure how we are meant to make sense of this dual “I.” 

Korsgaard goes on to show the beginning of the philosophical work intended for self-consciousness:

<<<
We are aware, not only that we desire or fear certain things, but also that we are inclined to act in certain ways on the basis of these desires or fears. We are conscious of the potential grounds of our actions, the principles on which our actions are based, as potential grounds. And this, as I have argued elsewhere, sets us a problem that the other animals do not have.<<ref "67">>
<<<

 	Here is a necessary moral, rational agent-making property. Animals aren’t aware or conscious of their principles (instincts) in the way we are. Animals can’t separate themselves from their principles. And, by ‘potential’, she isn’t pointing out how humans are aware that our ‘potential grounds’ will be our grounds in the future, and that we can’t do anything about it (like seeing the potential of an oncoming train from afar). As we will see, the ‘grounds’ of action are contingent; our ‘potential grounds’ are only potential because we have free will to choose them. She continues:

<<<
For once we are aware that we are inclined to act in a certain way on the ground of a certain incentive, we find ourselves faced with a decision, namely, whether we should do that. We can say to ourselves: ‘‘I am inclined to do act-A for the sake of end-E. But should I?’’<<ref "68">>
<<<

	We get a glimpse of her terminology here. Incentives are the grounds (a type of reason) to act in certain ways. Inclinations are about having the proclivity to act in a certain way. One is aware, self-conscious, of one’s inclinations. It seems that awareness of inclinations is part of the crossroads for decision making, namely whether we will follow our inclination. We can contemplate and choose not to follow our inclination; we can refuse to act; we can refuse to use an incentive as a reason for acting in a certain way. Korsgaard explains that “self-consciousness is liberation from the control of instinct.”<<ref "69">> It seems that free will is located in our self-conscious awareness, and it is this sort of ‘control’ that differentiates us from animals. 

Humans, however, are not so different from animals in that we have escaped our instincts. To Korsgaard, it may even be the case that the source of all the grounds on which humans act is instinctual (which doesn’t seem to make us much different at all from the animals in this aspect).<<ref "70">> It is likely the case that Korsgaard takes the time to describe the similarities between the human species and other animals specifically because being an animal is part of our human identity. She’s pointing out the primitive roots from which we came, demonstrating the animal-like teleological traces still left in our human biological identity. Despite our similarity to non-rational animals, Korsgaard emphasizes what differentiates us:

<<<
But instincts no longer determine how we respond to those incentives, what we do in the face of them. They propose responses, but we may or may not act in the way they propose. Self-consciousness opens up a space between the incentive and the response, a space of what I call reflective distance. It is within the space of reflective distance that the question whether our incentives give us reasons arises. In order to answer that question, we need principles, which determine what we are to count as reasons. Our rational principles then replace our instincts—they will tell us what is an appropriate response to what, what makes what worth doing, what the situation calls for. And so it is in the space of reflective distance, in the internal world created by self-consciousness, that reason is born.<<ref "71">> 
<<<

	Here the major philosophical work of self-consciousness is established. The degree and the form of self-consciousness of humans, that which differentiates us from the non-rational animals, is the capacity to determine ourselves and not to be determined by our instincts.  In modeling the human mind, Korsgaard posits a space of “reflective distance” between our incentives and responses. Without this reflective distance and our sort of self-consciousness, human minds would be closed under determinism, leaving no room to contemplate, choose, and do otherwise.

	Self-consciousness is the locus of our free will and moral agency. The reflective distance, generated by self-consciousness, is the locus of the capacity to reason about how we will act. The principles within you, which if you so choose to, ‘replace your instinct’ providing an explanation of why you should accept one inclination rather than another. Self-consciousness of a certain degree and form, which humans possess, is a precondition to the reflective space which is, in turn, a precondition for reason. 

''6.1.8''

	So Korsgaard concludes that, “Reason, therefore, is not the same thing as intelligence.”<<ref "72">>  Arguably, reason is like intelligence in that it is concerned with contemplation, deduction, inference, etc. The difference between reason and intelligence lay in ‘where’ in the mind and ‘about what’ each capacity operates on. Intelligence can be found in many organisms (arguably even computers), largely dealing with the outward, teleologically perceived world.<<ref "73">>   Reason turns inward; and it is here that we can find the realm of normativity, in Korsgaard’s view.<<ref "74">>  In following Korsgaard’s story of the mind, intelligence is a precursor to reason, and both capacities are necessary for dealing with the normative realm and the world around us.

''6.2  The Parts of the Soul''

''6.2.1-6.2.2''

	Korsgaard covers a Kantian story of Eve, the first human to make a “free rational choice.”<<ref "75">>  In becoming self-conscious, Eve is aware of the incentives operating in her.<<ref "76">>  Both “new objects of desire” and “new kinds of objects of desire” are made available to Eve because of reason which is born in her self-consciousness.<<ref "77">> 

	Here we understand the title of the chapter - as Eve pioneers the journey of ‘being a human’, we find our species banished “from a world that is teleologically ordered by our instincts and presented as such by our incentives, a world in which we nearly always already know what to do.”<<ref "78">>  This expulsion from the garden is a shattering of our previous, albeit primitive, psychic unity that non-rational animals (which we once were, according to the story) possess. 

	Self-consciousness and reason were the catalysts of our psychic disunity; and yet, they are also the capacities which make us special; they are the capacities and arenas in which we can gain back our psychic unity, a new, human, moral, psychic unity. 

	As Korsgaard sees it, with the vast majority of our teleologically-loaded worldviews ruined, our fragmented identities, and our newly available wide-array of potential ends and actions, it is through a combination of intelligence and reason that we can “reconstruct a usable conception of the world” and construct “ethics to determine how to live our lives.” <<ref "79">>  Clearly, there is a potent method to the madness of her constructivist view of morality.

''6.2.3-6.2.5''

	We are introduced to an argument for the “parts of the soul” following Plato (and we’ll see this fleshed out in the next chapter). Non-rational animals, in some sense, don’t have “parts of a soul” because their “whole psychic system is closed and tightly knit.”<<ref "80">>  They are determined and unified, and in this way they aren’t broken into parts. Humans, however, can be said to have “parts of the soul” in this respect directly because of the psychic disunity originating from our self-consciousness and reason.<<ref "81">> Korsgaard explains the relationship of incentive to self-consciousness and reason in a compact form:

<<<
Self-consciousness is the source of reason. When we become conscious of the workings of an incentive within us, the incentive is experienced not as a force or a necessity but as a proposal, something we need to make a decision about. Cut loose from the control of instinct, we must formulate principles that will tell us how to deal with the incentives we experience. And the experience of decision or choice, the work of these principles, is a separate experience from that of the workings of the incentive itself.<<ref "82">>
<<<

	Within these experiences, we see there is a sort of work to be done: a work of making these experiences and parts work together and a work of unifying ourselves.

	Korsgaard goes on to point out a difference between mere reaction and action. Knee-jerk reactions don’t involve self-consciousness and reason. The sorts of reactions which we can contemplate and control count towards action.<<ref "83">>

	Self-consciousness not only necessitates principles of reason, but it also “transforms incentives into what Kant calls inclinations.”<<ref "84">> There is link between the deterministic, instinctual aspects of our mind, which are outside self-consciousness, and our reason, our principles, and our free will, which are inside self-consciousness.

	In transforming incentives, self-consciousness produces inclinations.<<ref "85">> Korsgaard explains that self-consciousness makes “our inclinations into mental items.” Awareness of incentives enables us to reify them into inclinations. This product, this inclination, is an object with which reason and the will can work.<<ref "86">> So, we can see that “self-consciousness is the source of inclinations as well as of reason. Self-consciousness produces the parts of the soul.”<<ref "87">>

''6.3  Inside or Outside?''

	In response to a moral realist account of value and the properties of objects, Korsgaard explains:

<<<
At the basis of every desire or inclination, no matter how articulately we can defend it, is a basic suitableness-to-us that is a matter of nature and not of reason. Value is relational and what it is related to is our nature.<<ref "88">>
<<<

The realist says that your incentive is based upon the objective properties of an object; in some sense, value is one of the properties of the object. Anti-realism disagrees with this claim. Korsgaard thinks neither the realist nor the anti-realist have the right picture. She thinks that properties of objects are not irrelevant, but rather only relevant as related to the human condition. Again, it seems that a modest teleology is vital to her constructivist views. She continues:

<<<
It is our own choices that ultimately confer value on objects, even though our choices are responsive to certain features of those objects. In choosing objects, in conferring value on things that answer to our nature in welcome ways, an agent is affirming her own value.<<ref "89">>
<<<

So, this ‘suitableness-to-us’ is connected to what is 'up to us'. Self-consciousness and reason are necessary capacities for making the sorts of choices which confer value on objects. Our self-consciousness provides the necessary distance from incentives for it to be “normatively undecided” as a mere inclination, giving us space to reason and choose what is normatively valuable.<<ref "90">> Without these capacities, values of objects and even the affirmation of one’s value (an important notion to Korsgaard) would not be possible. 

Deliberation and action are complicated notions given this mental framework. Part of what accounts for action of humans is internal to self-consciousness and reason. This section concludes that “there is never any gap between decision and action. The conclusion of a practical syllogism is an action.”<<ref "91">> This nicely explains the close-knit relationship between action and agency.

''Pull Yourself Together''

	Here, Korsgaard combines the work she’s been doing for the past sections; this section is the conclusion of the chapter. She begins it by saying:

<<<
Self-consciousness opens up a space between the experience of the incentive and what previously had been the instinctive response, and that space transforms incentives into inclinations and governing instincts into free reason. Self-consciousness is therefore the source of a psychic complexity not experienced by the other animals, and it transforms psychic unity from a natural state into something that has to be achieved, into a task and an activity. Once we are self-conscious the soul has parts, and then before we can act it must be unified. At the very same time, and for the same reason, practical deliberation becomes necessary, for free reason need not follow inclination. We must now decide what to do.<<ref "92">>
<<<

This nicely demonstrates how self-consciousness and reason are the pillars of the argument presented in this chapter. Moreover, we can see how vital this picture of mental capacities is for Korsgaard’s theory at large. Deliberation about how you will act and who you are is for the sake of unity; and this is the resulting task assigned to those who have achieved and are plagued by (as in the way it generates our plight) self-consciousness and reason.<<ref "93">> Action and identity are combined in this way, and self-consciousness and reason are the mechanisms by which incentives/inclinations are generated, judged, acted upon and part of constituting an identity.<<ref "94">> And so, given our expulsion from the non-rational kingdom and our entrance into the rational kingdom:

<<<
The work of practical deliberation is reunification, reconstitution: and the function of the principles that govern deliberation—the principles of practical reason—is the unification of the self. So we arrive again at the conclusion of Chapter 4—the function of practical reason is to unify us into agents who can be the authors of our actions.<<ref "95">>
<<<

<<<
For nature sets each human being a task: self-consciousness divides his soul into parts, and he must reconstitute his agency, pull himself back together, in order to act. And that need to reconstitute yourself introduces the necessity of exercising your freedom, and the opportunity of doing so creatively. In other words, every person must make himself into a particular person. So someone who says, ‘‘I want to make something of myself’’ is just describing the human condition. And it is because he makes himself into the particular person who he is that we hold him responsible for being who he is (1.4.3).<<ref "96">>
<<<

This work of practical deliberation, of reunification and reconstitution, of pulling one’s parts of the soul together, of choosing one’s (Aristotelian) form, all rest upon the pillars of our self-consciousness and reason. Without these things, we would be unified non-rational animals, still living in the garden, bound by our instinct, lacking free will, lacking depth and moral agency. Our plight to act, our particular sort of agency which is infused with commitments and endorsements, and our task of self-constitution are only coherent with an account of self-consciousness and reason.

''[b]''

With this organic story of our rational heritage, we can see the nature of unity and good action when Korsgaard lets us take a ‘look under the hood’ of human moral psychology. We see her picture of how incentives, inclinations, and our principles relate to our identity, self-consciousness, rationality, and our action. This is part of her providing a satisfactory account of good action. Unfortunately, I don’t see how she will be able to give a satisfactory account of evil action. That problem really clicks in this chapter.

How does someone perform evil action in this schema? What prevents a human from choosing evil principles? Why can’t an evil person be unified in their evil? It seems that my incentives and inclinations might themselves be injected with desires and inclinations to what most people call evil acts. It seems like the psychological story which Korsgaard tells about unifying our identities in good action and deliberation is the exact same psychological story which we would tell about unifying our identities in evil action and deliberation. 

Herein lies the problem - if there is evil unification, then exactly how does it count as being evil at all? According to Korsgaard’s theory, if a person is fully unified, then they, by definition, aren’t evil, but rather good. Evil seems good in this light. If there isn’t evil unification, and agency is defined in terms of unification, then who is the agent responsible for the evil? There doesn’t seem to be an agent on whom we can pin the evil action. 

On one hand, I’m willing to accept there is evil unification and that there are evil principles we can choose. Perhaps not everyone can be a murderer and be ‘unified’, but it seems there are humans who truly aren’t disunified in being a murderer. Their whole organism might really be unified while containing that murdering identity. If this is the case, following Korsgaard’s theory, it seems as though, for those humans, it is perfectly acceptable, it is morally good that they murder. 

On the other hand, if being unified is ‘by definition’ good, and we grant Korsgaard an unspoken assumption that acts like rape and murder can never be committed by a unified agent (and it isn’t clear why we must assume that at all), and true agents are only those organisms which are unified, then I don’t see how a rapist or murderer is an agent at all. According to this line of reasoning, why then do we even hold evil-doers accountable? Even if we apply the notion of degrees of agency, at best, it still seems like the rapist is only very minimally responsible. Psychic disunity seems to extend an umbrella-like plea of insanity to these evil-doing organisms in all cases of evil, even to those whom we want to say committed ‘cold-blooded, pre-meditated murder’.

The story of Eve is ironic for this discussion. Traditionally, as the story goes, Eve’s action is an evil action – the first evil human action! It initially would have made sense if Korsgaard had said that Eve achieved self-consciousness and reason, was disunified, but then went on to re-interpret the traditional story to demonstrate that Eve actually didn’t commit the first action because she was disunified and was doing evil. It was no action; Eve was disunified. In fact, a case could easily be made for the notion that Eve was at the height of disunity, having just transformed into a new being, completely new to the world of the self-conscious and rational. Korsgaard’s psychology can show how Eve was evil, but Korsgaard can’t then say that Eve was a full-blown agent that performed true action. But, of course, then it seems like we can’t hold Eve accountable as an agent.

The account Korsgaard gives us doesn’t seem evil at all. The story of Eve exemplifies an organism’s transition from non-rational to rational, it demonstrates the first disunity of humanity, but at the same time, Korsgaard claims this exemplifies the first free action. But, only good actions can be performed by agents. It seems then that Eve’s traditional evil action is actually a good one.
Either Eve was evil and disunified but didn’t perform action, or Eve wasn’t evil and rather she was unified, but didn’t perform evil action. Obviously, if Korsgaard re-interprets the story entirely, removing this traditional element evil of the first evil human action, her account can make more sense of this particular interpretation of the story. The point, however, is that Korsgaard can’t (at least so far) give an account of evil action, and the traditional story of Eve is a perfect example of why she cannot.

Part of the problem is that I’m unwilling to grant degrees of agency. Agency is modular – it is binary; you either are or you aren’t a moral agent in a given circumstance. At best, I will grant degrees of responsibility given an agent’s incentives and inclinations. It seems like a biologically compulsive liar is in some sense less responsible for lying than a regular agent. But, both are 100% agents, and if they switched circumstances, then they’d be switching degrees of responsibility of lying in this case. But, all else being equal, both agents remain equally responsible in all other circumstances. 

---------------------------
<<footnotes "1" " Christine Korsgaard, //Self-Constitution: Agency, Identity, and Integrity //(Oxford: Oxford University Press, 2009), 49">>
<<footnotes "2" "Ibid., 51-52">>
<<footnotes "3" "Ibid., 49">>
<<footnotes "4" "Ibid.">>
<<footnotes "5" "Ibid., 50">>
<<footnotes "6" "Ibid.">>
<<footnotes "7" "Ibid.">>
<<footnotes "8" "Ibid., 51">>
<<footnotes "9" "Ibid.">>
<<footnotes "10" "Ibid.">>
<<footnotes "11" "Ibid.">>
<<footnotes "12" "Ibid., 45">>
<<footnotes "13" "Ibid.">>
<<footnotes "14" "Ibid.">>
<<footnotes "15" "Ibid., 52">>
<<footnotes "16" "Ibid., 50">>
<<footnotes "17" "Ibid.">>
<<footnotes "18" "Ibid.">>
<<footnotes "19" "Ibid., 51">>
<<footnotes "20" "Ibid., 50">>
<<footnotes "21" "Ibid.">>
<<footnotes "22" "Bernard Williams, //Ethics and the Limits of Philosophy.// (Hammersmith, London: Fontana Press, 1985), 6">>
<<footnotes "23" "Christine Korsgaard, //Self-Constitution: Agency, Identity, and Integrity //(Oxford: Oxford University Press, 2009), 50">>
<<footnotes "24" "Ibid., 68">>
<<footnotes "25" "Ibid.">>
<<footnotes "26" "Ibid.">>
<<footnotes "27" "Ibid.">>
<<footnotes "28" "Ibid.">>
<<footnotes "29" "Ibid., 69">>
<<footnotes "30" "Ibid.">>
<<footnotes "31" "Ibid.">>
<<footnotes "32" "Ibid.">>
<<footnotes "33" "Ibid., 70">>
<<footnotes "34" "Ibid.">>
<<footnotes "35" "Ibid., 70-71">>
<<footnotes "36" "Ibid., 71">>
<<footnotes "37" "Ibid.">>
<<footnotes "38" "Ibid.">>
<<footnotes "39" "Ibid., 72">>
<<footnotes "40" "Ibid.">>
<<footnotes "41" "Christine Korsgaard. “The Normativity of Instrumental Reason” in //The Constitution of Agency: Essays on Practical Reason and Moral Psychology// (Oxford: Oxford University Press, 2008)">>
<<footnotes "42" "Christine Korsgaard, //Self-Constitution: Agency, Identity, and Integrity// (Oxford: Oxford University Press, 2009), 69">>
<<footnotes "43" "Ibid., 75">>
<<footnotes "44" "Ibid.">>
<<footnotes "45" "Ibid.">>
<<footnotes "46" "Ibid.">>
<<footnotes "47" "Ibid., 68">>
<<footnotes "48" "Ibid., 110">>
<<footnotes "49" "Ibid.">>
<<footnotes "50" "Ibid., 110">>
<<footnotes "51" "Ibid., 110-111">>
<<footnotes "52" "Ibid., 111">>
<<footnotes "53" "Ibid.">>
<<footnotes "54" "Ibid., 112">>
<<footnotes "55" "Ibid.">>
<<footnotes "56" "Ibid.">>
<<footnotes "57" "Ibid.">>
<<footnotes "58" "Ibid., 113">>
<<footnotes "59" "Ibid.">>
<<footnotes "60" "Ibid.">>
<<footnotes "61" "Ibid., 114">>
<<footnotes "62" "Ibid.">>
<<footnotes "63" "Ibid.">>
<<footnotes "64" "Ibid., 115">>
<<footnotes "65" "Ibid.">>
<<footnotes "66" "Ibid.">>
<<footnotes "67" "Ibid.">>
<<footnotes "68" "Ibid.">>
<<footnotes "69" "Ibid., 116">>
<<footnotes "70" "Ibid.">>
<<footnotes "71" "Ibid.">>
<<footnotes "72" "Ibid.">>
<<footnotes "73" "Ibid.">>
<<footnotes "74" "Ibid.">>
<<footnotes "75" "Ibid., 117">>
<<footnotes "76" "Ibid.">>
<<footnotes "77" "Ibid., 118">>
<<footnotes "78" "Ibid.">>
<<footnotes "79" "Ibid., 119">>
<<footnotes "80" "Ibid.">>
<<footnotes "81" "Ibid.">>
<<footnotes "82" "Ibid.">>
<<footnotes "83" "Ibid., 120">>
<<footnotes "84" "Ibid.">>
<<footnotes "85" "Ibid., 120-121">>
<<footnotes "86" "Ibid., 121">>
<<footnotes "87" "Ibid.">>
<<footnotes "88" "Ibid., 122">>
<<footnotes "89" "Ibid., 123">>
<<footnotes "90" "Ibid.">>
<<footnotes "91" "Ibid., 125">>
<<footnotes "92" "Ibid.">>
<<footnotes "93" "Ibid., 125-126">>
<<footnotes "94" "Ibid., 126">>
<<footnotes "95" "Ibid.">>
<<footnotes "96" "Ibid., 130">>
John Rawls, in //A Theory of Justice//, offers a powerful social contractarian heuristic device for determining the principles of justice. In this paper, I attempt to defend the Rawlsian view of distributive justice by offering a stronger conceptual link between utility-maximizing agents in this device and the ‘difference principle’ it yields. The difference principle is supposedly chosen because of our innate risk aversion, but the literature on this topic remains unclear on how or why utility-maximizing agents would be interested in the distribution of primary social goods yielded by the difference principle. I will offer a justification for this risk aversion, filling in an untold gap in this story, whereby we can connect utility-maximization to the difference principle by examining the relationship between primary social goods and the economic principle of diminishing marginal utility.

The “basic structure” of society, as described by Rawls, is constituted by formal, legal, political and economic institutions. How best to configure the basic structure is a central to justice, in Rawls’ view, because it fixes the distribution of goods, services, opportunities, authorities, and rights. The basic structure is the initial subject of justice. It is here (either for the creation of a basic structure or as an assessment of one) that one can begin to question and formulate the principles of justice which normatively define the various possible configurations of the basic structure. Principles of justice design, specify, assess and justify the blueprints, arrangement and practices of these institutions and the overall basic structure. Rawls is famous for this device which formulates the principles of justice, a device he calls the “original position.” 

The original position is a type of thought experiment, an abstraction, a hypothetical instance of drawing up a social contract among members of society, and a method of thinking about justice. The parties within the original position are meant to agree upon whatever counts as the fair and correct principles of justice used to generate the basic structure to which they would find themselves subject outside of the original position. The original position structures intuitions we have about justice and how we formulate them – the original position is designed to provide an impartial justice, and render a stable society. Notably, the concern for impartiality and fairness is what leads us to the most profound and potent fixture in the original position, what Rawls calls the “veil of ignorance.”

Agents in the original position find themselves ‘behind’ a veil of ignorance. While behind this veil, “no one knows his place in society, his class position or social status, nor does anyone know his fortune in the distribution of natural assets and abilities, his intelligence, strength and the like. I shall even assume that the parties do not know their conceptions of the good or their special psychological propensities.”<<ref "1">> Agents are deprived of the knowledge of their personal particularities, what societies they come from, and their histories. Some of the attributes which count as morally arbitrary in Rawls’ eyes might be considered controversial (e.g. your religious beliefs), but let us pass this by. The essential point, to which I think we can all intuitively agree, is that differences which are arbitrary from the moral point of view don’t count with regards as to how the principles of justice treat you. 

Agents behind the veil must be detached from their actual, particular circumstances when formulating the principles of justice. Proper justice requires we answer a hypothetical question: If you couldn't know who you were, what would you choose? This makes a lot of sense - it removes bias. Thus, the principles of justice which are produced from within the original position and behind the veil of ignorance are in some sense impartial and unbiased. 

What then constitutes these agents, these amorphous creatures which have shed morally arbitrary features? Rawls believes these agents have a sense of justice, being willing to comply with what is required by justice. They are also free and equal agents. Vitally, agents behind the veil are rational, mutually disinterested utility-maximizers.<<ref "2">> These characteristics provide the motivation and mindset of agents formulating the principles of justice. They have the necessary tools and knowledge to formulate the correct principles of justice, to know what is normatively just and fair about different configurations of basic structures given their rational, mutually disinterested, utility-maximizing characters. While ignorant of particularities, agents are extremely knowledgeable about generalities. They have a commanding knowledge of general facts about human nature, psychology, sociology, political science, biology, and economics. Thus, with this knowledge, from behind the veil of ignorance, agents are able to rationally construct and agree to the principles of justice, even agreeing with principles which might not benefit them as the individuals they are outside of the original position.

Rawls is very thorough, and despite the hypothetical nature of the original position, he is also practical. He invents an apt regression test procedure used to make sure we actually agreed to the correct principles of justice. He calls this the “reflective equilibrium.” Employing the reflective equilibrium allows agents to go back and forth between the original position and reality. This method allows us to continually justify and revise (if necessary) the principles of justice. 

Interestingly, it just so happens that Rawls thinks he knows exactly which principles of justice would be chosen from within the original position. They essentially are:

# The Principle of Greatest Equal Liberty -- People are to be as free as possible.

# The Difference Principle -- Social and economic advantages should be distributed in order to maximize the shares of the most disadvantaged, those on the bottom line. Maximize the minimum.<<ref "3">>

First off, these principles are lexically ordered in priority. The first principle is the most important one, and the second merits consideration after maximally satisfying the first. Intuitively, it seems that there might be many possible basic structures which equally maximize the first principle, and the second principle does the work of assigning further normative value, effectively acting as a tie-breaker to the subset of initially acceptable basic structures generated by the first.

The first principle of justice is concerned with maximizing basic rights and liberties for all citizens, including political liberties, freedom of speech, freedom of association, religious liberty, etc. The second principle is about maximizing the wealth, material goods, and services for the lowest margins of society. For many liberal intuitions, the first principle is the least controversial. The principle of greatest equal liberty seems a very plausible product of rational utility-maximizers in the original position, particularly given classic utilitarian views on liberty. There seems to be an acceptable and ostensible story which we can tell, about how rational, mutually disinterested utility-maximizing agents in the original position, as defined by Rawls, would create and agree upon the first principle. The second principle is a particular brand of distributive justice theory, including why we should believe (as Rawls believes) that utility-maximizing agents in the original position would choose this particular principle of distributive justice. This, perhaps, is more controversial. Rational utility-maximization isn’t so clearly linked to the difference principle. Part of this story seems to be missing. In order to see why, let’s dig a bit deeper into the ramifications of the difference principle, going through an example of it as a decision procedure. 

What follows is an oversimplified example, but it will nicely demonstrate how the difference principle is generated and applied. 
Consider the following monetary table and the explanation of it which follows:

Figure 1

The table represents a hypothetical choice. Agents in the original position need to make an algorithmic, procedurally-based choice between the three possible, yet different distributions of wealth. Let us assume that each option equally satisfies the principle of greatest equal liberty; it is then up to the difference principle to decide which type of distributive structure is normatively best. A more complex table could certainly make sense of other types of units which belong to distributive justice, but let’s assume we’ve converted all such objects into monetary value. There is only one type of unit to be distributed, in this case money; let’s arbitrarily say thousands of Euros annually per person. Quartiles represent a fourth of the population, and people in each quartile make the specific annual salary determined by the respective distributive economy. Note that the totals are different, which is to be expected, as different economic structures have different sum total outcomes.

What would the agents in the original position choose? Everyone is behind the veil of ignorance; they don’t know which option will bring greatest benefit to them individually, outside of the veil. Agents behind the veil are in a game of limited information. They need a strategic formula to determine which distribution is best, particularly because they lack the knowledge of which particular quartile they will find themselves in, when outside the original position.

According to Rawls, the difference principle is the formula they would choose to apply, as it alone offers us the correct decision procedure and just distributive outcome. What does it actually do in this case? Well, maximizing the minimum requires we examine the 1st Quartile to the exclusion of everything else on the table. According to the difference principle, in this hypothetical choice, whichever distribution has the highest annual salary in the 1st Quartile determines what counts as the most just basic structure. In this case, the socialized market is what the difference principle requires us to select.

It isn’t clear, however, why we should believe Rawls’ assumption that agents behind the veil of ignorance would choose the difference principle; and furthermore, it isn’t clear why they prefer the distribution of the Socialized Market in the choice represented in Figure 1. Why should we think that a rational, mutually disinterested utility-maximizing agent with generalized knowledge would make these conclusions? There is an untold gap in the story, and it becomes clear with examples. One would like to think that Rawls isn’t begging the question; surely there are good and plausible bridges over this gap. Consider an exaggerated modification of the table:

Figure 2

	By the difference principle, the socialized market is still chosen in the question presented in Figure 2. But, now, the difference principle as a strategy seems much weaker. The economist/gambler in all of us sees the opportunity cost in selecting the socialized market, and here the difference principle doesn’t seem so reasonable. The odds are really good that you’ll be very, very rich in the feudal economy in Figure 2. Obviously, this is very hypothetical; proponents of the difference principle might argue that the feudal economy is Figure 2 isn’t a real possibility at all (a fair argument, in my view). Yet it also seems very possible to scale down the exaggeration and have plausible counterexamples, which might lead rational utility-maximizers away from the difference principle. 

Figure 2 forces us to entertain the possibility that agents in the original position wouldn't choose the difference principle. From behind the veil, not knowing to which quartile one actually belongs, it is reasonable to think that agents might employ the primitive game theory strategy of selecting the structure which provides the highest mean average salary (or look at the structure which brings about the highest sum total of salaries). Clearly, this strategy would promote the feudal economy rather than the socialized market in Figure 2. 

“But wait!” exclaims the proponent of the difference principle. Surely, we can see that you have a 25% chance to be completely impoverished in the feudal economy. The fear of ending up on the bottom carries a great deal weight, especially if the bottom quartile ends up with practically nothing, as in the case of the above feudal economy. Some proponents of Rawls' difference principle contend the bridge is based upon risk aversion, which is what enables us to rationally deny the feudal economy, greatly increasing the merits of both the socialized economy and the difference principle which selects it. 

According to this risk aversion theory, some degree of risk aversion is a characteristic derived from being a rational utility-maximizer, and thus a fundamental reason underlying the difference principle is risk aversion. It does seem that the larger the stakes, the more risk averse we become, and this choice is for all the distributive marbles, so I can strongly sympathize with the risk aversion theory. What might be the proper account of this risk aversion theory isn't clear. Is it only being risk averse to complete catastrophe, as we saw in Figure 2? And, if so, does this really support the difference principle? Imagine a modification of Figure 2:

Figure 3

Complete catastrophe is certainly avoided in both. Notice, the margin of difference between the lowest quartiles is relatively small, 500 Euros a year, but the rest of the economy is strikingly different. It seems that we can go back to the gambler strategy, which is certainly a strategy about weighing risks! If you were at the bottom quartile in the socialized market wouldn’t you spend 500 Euros per year for a 75% chance to make between 200 thousand to 1 million Euros each year instead? This is the sort of hypothetical question which suggests that the risk aversion theory might need more work if it is eventually going to point towards the difference principle. Even if this hypothetical is too exaggerated, surely we can conceive of less extreme examples which have similar worries attached. 

	What sort of risk aversion theory plausibly supports the difference principle? Part of the problem is that our discussion isn’t in the right language. For any proper theory acting as a bridge between rational utility-maximizers and whatever end principle of distributive justice is chosen, the story must be told in language of utility. Nothing we’ve seen so far really does that explicitly. As we zoom in on this utility story, we’ll see that a risk aversion theory, explained in the language of utility, very plausibly supports the difference principle.

	One does not weigh the objects of distributive justice outright; one must weigh units of utility. There is a conversion process which must occur in order for utility-maximizers to begin to normatively evaluate objects of distributive justice. Objects of distributive justice are converted into units of utility. But, since risk aversion deals with the objects of distributive justice, and it can’t weigh units of utility, clearly what counts as risk aversion must be broken down into utility values. The risk aversion theorist is claiming that the utilitarian conversion algorithm has built into it the principle of risk aversion as one of its sub-formulas. And, if this is true, then essentially utility values already have built into them the merits of risk of aversion. 

Weighing the average of some unit (however complex the formula to generate these units) has to be the only rational measurement. In this sense, the primitive strategy from the discussion of figure 2 was approaching something really important. Rational decision procedures in game theory are dominated by the notion that one must choose whichever option has the highest average utility. The primitive strategy, however, wasn’t selecting the highest average utility; it was selecting the highest average salary, its selection was based on monetary units, not utility units. These are very, very different, and that is why the risk aversion theorist may claim that the primitive strategy might fail. It is then up to the risk aversion theorist to provide an argument about utility which supports his or her own claim. 

One of the more famous economic theories, namely, the theory of diminishing marginal utility, does just this work for the risk aversion theorist.<<ref "4">> There are diminishing utility returns for each subsequent unit of any object of distributive justice, including money. The first 10k Euros will yield more utility than then next 10k Euros. This makes practical sense as well. Surely, on average, the resources necessary to survive will produce more utility for an agent than the same amount of resources added to the salary of someone who already has enough to survive. While the theory of diminishing marginal utility is not water-tight, perfectly proven, it is at least widely recognized as a plausible economic theory, something which agents in the original position very likely might hold. 

Consider the following table:

Figure 4

This example income-to-utility conversion table demonstrates marginal utility. Levels of income are converted to their respective levels of utility. While there is a massive store of literature arguing about these values and determining which empirical study is correct is beyond both the scope of this paper and my expertise, there isn’t a consensus about the exact formula which maps financial income to utility. I’ve given a very simple example just to demonstrate what diminishing marginal utility looks like. I’m providing a theoretical point - I’m not sure what the end-game empirical tables really look like (and, honestly, I doubt anyone actually has yet). I believe the above table is not representative of reality; I think the values for diminishing marginal utility are likely far more extreme and radical. The difference between surviving and not surviving (the first couple thousand Euros) seems to have a much higher utility value than the small difference in utility gained from more luxuries. If this is true, then the table should be skewed to benefit to lowest levels of income more radically than is presented.

Essentially, this notion of diminishing marginal utility is the major portion of the bridge we’ve needed – such tables are absolutely necessary in order to connect rational utility-maximizing as a method of thinking to both the end distributive principle of justice and the basic structures selected. The weight of risk aversion in our decision procedure, at least in part, is captured by diminishing marginal utility. Worries aren’t just about catastrophic outcomes; we’re actually worried about the bottom line because it has the highest marginal utility gain. In light of Figure 4, here is what happens when we convert monetary values in Figure 1 into their corresponding utility values:

Figure 5

	In weighing the averages or totals of the corresponding utility values, values which are transformatively curved by diminishing marginal utility, it is easy to see why rational utility-maximizing agents in the original position prefer the socialized market from Figure 1. Moreover, it seems that the risk aversion theorist has a very potent argument to defend the difference principle (which is what was needed in the first place). The primitive argument from Figure 2 is correct about rational decisions being determined by averages, but the argument is wrong to assume a one-to-one correspondence of monetary to utility values. Here we see that diminishing marginal utility, which is a form of risk aversion at the low end of the utility spectrum, bridges the gap between the agents as utility-maximizers and the difference principle as a substantive distributive justice schema. 

	But, isn’t this what we set out to do? This is the story we need to hear which defends the difference principle. In recognizing that objects of distributive justice must be converted into utility values for these agents to rationally make utility-maximizing choices, in conjunction with a diminishing margin utility, the notion of risk aversion emerges to support the difference principle.


--------------------------------

<<footnotes "1" "Rawls, John. //A Theory of Justice//. (Cambridge, Mass: Belknap Press of Harvard University Press, 1999.), 11">>
<<footnotes "2" "Ibid., 12">>
<<footnotes "3" "Song, Edward. “Global Justice.” Class lectures, Louisiana State University, Spring 2011.">>
<<footnotes "4" "Marginal Utility theory is found in many political and economic sources, including Aristotle’s Politics (Book 7, Ch. 1). It isn’t even a modern notion. So, I’m unsure who merits attribution of the overall, generic theory (of which there are many fine-tuned versions). ">>
''[1]''
In the Constitutional Model, from Plato, we get the analogy between the city and the soul. The claim of the analogy is that both are structured in a similar manner, particularly with respect to what it means to be a just or a good city and to be a good or well-formed person. In the city, going from the top to the bottom of the hierarchy, there is a guardian (philosopher king), next, are the auxiliaries who enforce the rule of the philosopher king, and finally, the craftsmen and workers. The guardians identify themselves with the city as a whole. They unify the city. The guardians identify their good with the good of the city as a whole. These tiered, functional classes of the city are supposed to correspond to functions and parts of the soul. Corresponding to the workers are the appetites, auxiliaries to the 'high spirited' part of the soul, and guardians to reason. 

The Constitutional Model is a powerful device in Korsgaard’s theory because if there was no constitution of the city, then it would be a mere heap. For the heap of people living in close proximity to be a city at all, they would have to be constituted or organized as a whole. Likewise, Korsgaard wants to make the same case for the soul. A similar hierarchy of psychological functions is said to take place.

The appetites make a proposal, and then reason must intervene to know what is and isn't acceptable. Once reason makes its decisions, then the spirit, which is always allied with reason (and never with appetites), executes and carries out what reason has decided. When you act, your action then is not just from the appetites or high spirit or reason, not from any of them alone, but rather from 'the whole person', from all three of these things working in concert. Thus, Korsgaard believes that the Constitutional Model analogously fits both the city and the soul.

Reason, for Korsgaard, isn’t just any type of rational capacity; it is explicitly the categorical imperative. We all seem to have innately the categorical imperative within us. Reason is not only within us, but it is also the principle by which we constitute ourselves. Odd questions arise from this initial view:

How can self-consciousness count as the "whole"? The whole doesn't seem capable of being self-conscious. What is the identity of the agent which is over and above the parts? What is the essence of the agent that allows her to say that agents can identify themselves with constitution? I don’t know how she can viably answer these questions, but they need explanations. Korsgaard believes she has synthesized (or even more boldly claiming she’s discovered a pre-existing analogy between) Kantian and Platonic views with her conception of the Constitutional Model. She says:

<<<
So if Kant does use the Constitutional Model for the soul, and the analogy holds, he is committed to rejecting the despotism of reason.<<ref "2">> 
<<<

	Does the analogy between the constitution of the state and Korsgaard’s conception of the constitution of the soul hold? If it doesn’t, then Korsgaard’s theory is obviously in trouble. I think there is a serious flaw in the analogy of the city and the soul. 

Notions of responsibility differ between the Constitutional Models of the soul and of the city. Who does the work of unifying a city? Clearly, all the agents of that will be a part of the city. Corporate responsibility exists in virtue of the individual responsibility which underlies it. Corporate agency (if exists at all) requires individual agents to constitute it. The city is unified and constituted by its many agents. But, this is a fundamental difference in the analogy of the Constitutional Model of the city with Korsgaard’s conception of the human constitution. The parts which are combined and unified in human constitution aren’t individual agents – those parts don’t choose anything. When I point to the city and say, “who is doing the work of unifying?” I can easily say that all the agents in the city are working together, that they have chosen to constitute the city. Obviously, there wasn’t a city to constitute itself before there was a city. I know who is responsible for these actions in the Constitutional Model of the city. But, this analogy doesn’t hold for the individual constitution. The various desires and ‘parts’ of the person aren’t agents, and they can’t choose to constitute themselves as a whole into a larger organism. Unification of the city is vastly different from unification of a person then. ‘Action’ of a corporate agent like a city is not really analogous to the ‘action’ of an individual person/agent either. To whom can I point and say “you are responsible” for unifying yourself? To a mass of people who aren’t yet constituted as a city, I can say, “each of you as individuals are responsible.” But, I can’t say that for the ‘parts’ of a person. Korsgaard must offer an account of agency and responsibility which pre-exists this unification and constitution.  

Does Kant actually use the Constitutional Model for the soul, and must he really be against the second version of the Combat Model?<<ref "2">>  It isn’t clear why we should think that Kant would disagree with the notion that ‘if an agent selects reason, then they can never select passion’ (roughly the second Combat Model). Korsgaard’s argument on behalf of Kant against the second Combat Model boils down to a rejection of the presupposition “that the person already identifies with reason.”<<ref "3">>  But, problematically, it seems that the same can be said against the Constitutional Model. It seems that you can't select anything or be effectively constituted by anything but reason. In Korsgaard’s Constitutional Model, the definition of person seems to presuppose identification with reason.  

But, now I’m not even really sure what she means by the ‘despotism of reason’ that wouldn’t also apply to her model. Even if (however it might work) both Kant uses the Constitutional Model and the analogy holds, is he really committed to rejecting the despotism of reason? Is this despotism of reason as bad as Korsgaard seems to think? She wants to deny that some ‘part’, inside or outside the agent, is the locus of causation, causing the agent to act and will. If this were the case, in her view, then it wouldn’t be the agent ‘as a whole’ acting and willing. But, I think there might be a bit of ‘eat your cake and have it, too’ syndrome going on here. I just don’t see a plausible account of her dual conception of “I.” I don’t see a plausible account of reason being anything other than despotic in the proper agent. If reason, inclinations and desires are equal, then why should I disagree and disregard my inclinations and desires when I need to do moral action? I can't believe that reason isn't in the ruling sphere, that inclinations don’t have to be under the jurisdiction of reason if one is going to be a moral agent. Kant doesn’t seem to be against the despotism of reason. He thinks there are no inclinations or desires in the intelligible realm because they are governed by nature.<<ref "4">>  In the Kantian picture, it isn’t clear how an agent is a proper self if he isn't identified with his reason. The example of the sad philanthropist makes so much more sense if we can accept the disunity between his desires, inclinations, and reason. Only actions performed from duty generated by reason alone rather than from any degree of inclination have moral worth.

Korsgaard continues:

<<<
True unity requires a constitution, which makes it possible for a whole to rule itself, and the merely apparent or empirical unity that is achieved when one part rules another is just a poor earthly substitute for that. That applies to the person as much as to the state.<<ref "5">> 
<<<

What is the difference between false unity and true unity? Likely, what is meant by “merely apparent or empirical unity” is what counts as false unity. I worry that false unity is outright not unity at all, in any degree. I doubt Korsgaard really wants to agree to lesser degrees of unity as possessing any true unity. But, a binary view, of true and false, does not lend itself to any meaningful degrees of unity, which is so vital to her theory.

 A charitable reading might lead us to say that at one end of a spectrum there is the one true, 100%, perfectly formed unity, and the rest of the spectrum demonstrates varying degrees of disunity, which counts as false unity or “merely apparent and empirical unity.” At the other end of the spectrum, there is 0% unity; there is a mere heap, pure anarchy. I’m not sure if it is correct to say that the mere heap is even false unity, because, in some sense, it isn’t even trying to be unified at all. 

This passage seems to imply (perhaps contrarily to the rest of the argument) that one can be falsely unified without a constitution. Can a degree of unity be achieved without a constitution? From the rest of the book, I would think that any degree of unity requires a constitution. Are there constitutions for the mere heap? I think not – mere heaps definitionally have no organization. 

Don’t we require a certain sort of constitution rather than merely ‘a constitution’? False unity, for Korsgaard, is based upon constituting oneself with the wrong principle (not the CI). Assuming there are different ways to constitute ourselves (using different principles), what makes one sort of constitution better than another? In particular, what is it about the sort of constitution using the Categorical Imperative that enables ‘true unity’ where other sorts of constitutions using other principles do not? And, if the previous question rests upon the false premise that only a constitution based on the Categorical Imperative can enable true unity, and there are many sorts of constitutions which can bring about true unity, then why should we think the constitution based on the Categorical Imperative is any better than a constitution based upon another principle? 

What about the constitution makes it possible for a whole to rule itself? Korsgaard believes that only the CI-based constitution is sufficient for true unity, and I think by implication, she would agree to the notion that only the CI-based constitution is sufficient for ‘a whole to rule itself’. But, this only brings up questions of responsibility, again. If a ‘whole isn’t ruling itself’, then why should we think that a unified, poorly constituted person (whatever ‘that thing’ is - I’m not even sure if we can seriously point to an ‘it’ in her theory) is really ruling itself in any culpable manner? At best, there are degrees of responsibility. But, then, it seems that the as we across the spectrum of good action to bad action, the less we can pin an action on a ‘so-called’ agent. That does not seem acceptable. I think cold-blooded murderers (let’s assume they are deeply disunified) are fully responsible for the act of murdering, just as I am fully responsible for the omission of murder (a good thing)!

In the end, I think Korsgaard fails to show us why there is any normative requirement for unity. I can understand reason overriding my biological desires, inclinations or passions, and in this sense I have ‘control’ over them. But this type of control is really not the same thing as the capacity to unify myself which Korsgaard is talking about. I think reason often requires us to be disunified. I don’t think we are really responsible to unify any objects which nature controls; we aren’t responsible for unifying them because we don’t possess the capacity to do it. We do have the ability to suppress them; to bypass them; to choose and act upon what reason requires of us; even when it is at odds with what we feel, and what our bodies desire.

Lastly, she says:

<<<
So for Kant, just as for Plato, reason must rule for the good of the whole, and if we identify with the voice of reason, it is only because we identify with our constitution, and it says reason should rule.<<ref "6">> 
<<<

What counts as the good of the whole person? This points to a substantive conception of the good which Korsgaard should have fleshed out (although, admittedly, she so heavily favors a formal conception that I don’t know how she could provide a substantive one). Furthermore, I’m worried that right action doesn’t necessarily lead to the good of a whole person. It might, for example, require the sacrifice of that person. Would Kant really agree to the notion that reason inside a person is ruling for the good of the whole person? Perhaps the legitimacy of reason is not that it rules for the good of the whole person, but rather that it is independently and objectively legitimate, even if it isn’t for the good of the whole person. 

I continue to worry about this analogy. Justice for a city, at least in Platonic eyes, really might not be concerned with the good of other cities. But, this is very different from a kingdom of ends perspective, whereby agents must be concerned, in some sense, with the good of other agents. 

Who is doing the ‘identifying with’ - the whole, a part, the sum of the parts? It isn’t even clear what it means to identify with our constitution. Korsgaard claims that identifying with our constitution is both sufficient and necessary for identifying with the voice of reason. But, what if you identify with a constitution which isn’t a CI-based constitution? We aren’t given a clear explanation of the manner in which a person’s constitution says reason should rule a person as a whole. It seems very possible in her theory that there can be a different (non-CI-based) constitution which says something else, something other reason, should rule a person as a whole. The only reason we believe reason should rule is because we’ve begged the question. 

''[2]''

	Good action is a well-defined and plausible concept in Korsgaard’s book //Self-Constitution//, particularly given how good action fits in with the rest of her theory. In contrast, bad action or ‘defective action’ is not a well-defined concept which fits nicely into her theory. The notion of defective action either fails to meet the expectations of our moral intuitions or it contradicts her theory at large.

	[Objection #1] Evil unification seems possible in her theory. If there is evil unification, then it doesn’t seem like it is really evil at all, as we typically understand the word. And, if evil agents can be unified, then their actions aren’t evil either because their actions are unifying them. If I’m right, then there isn’t a strong enough distinction between evil action and good action in her theory. Good and evil don’t seem to have any real meaning. Good and evil are just perceptions; they are subjective notions. Good and evil are constructions, not truths, in her theory. If they are truths, they are empirical ones about unification, but then she lacks any substantial evidence that her principle is the empirically the best one.

	She argues for degrees of unity. And if unity is the normative metric in her overall theory, then why should we care what principles of constitution get us there? If principle A unifies just as well as principle B, then they are normatively equal in this theory. And, even if principle A is not as good at unifying as principle B, as long as principle A still generates some degree of unity, then isn’t principle A good to some extent, just not as good as B? These are consequences of her theory, but not consequences to which she wants to admit. The CI might unify a person 100%, and principle A might do it 90%. It seems that principle A is almost as good as CI – it is ‘mostly’ good, right? She doesn’t want to admit that. It looks like wishful thinking to me. It seems that other principles really do have a chance at unifying us as well as the CI, and the actions which come from those other principles should be just as good because they are just as good at unifying us.

	Furthermore, the claim that the Categorical Imperative unifies us is a gigantic empirical assumption. I’m far from convinced we are unified by the Categorical Imperative. The sorts of actions which the CI compels us to do often might not be the sort which unifies us. Since unity is the normative metric of her theory, I think her choice of the Categorical Imperative as the correct principle and the definitions of good and defective action in her theory are wishful thinking, unsupported by some desperately needed evidence about how these really unify us.

	She might argue that good unity, good constitution, good agency, and good action are good ‘by definition’ and likewise evil unity, evil constitution, evil agency, and evil action are evil ‘by definition’. But this option isn’t open to her – it requires her to talk about moral truths which are independent of us. She closed herself off from that when she criticized the dogmatic rationalist. To go this route would make her subject to the very criticisms she made against the dogmatic rationalist – namely, having objective moral truths. If it is open, it is only empirically open – we don’t know what principle actually unifies us best, and whatever that principle turns out to be, we might ‘definitionally’ call the Categorical Imperative, but it might call us to perform action which is nothing like the traditional conception of the Categorical Imperative. 

I think she knows her theory is in trouble if it can’t muster any objectivity, but I think she’s waving her hands trying to make it work. Good and evil are likely fleeting constructions. Serious moral realists will undergo vertigo when trying to make sense of what she’s doing here. 

	[Objection #2] People who perform evil action aren’t technically people. They aren’t responsible – they aren’t agents – they aren’t even performing action. There is no evil action.

	Again, it seems like being unified is ‘by definition’ good in her theory, and we assume that unified people, ‘by definition’ don’t perform certain acts which we generally as a human race call ‘evil’ (like murder). If ‘by definition’ unified agents never do what is wrong – they must be perfectly virtuous, and furthermore, if a ‘heap’ happens to do what we call ‘evil’, and thus that heap isn’t fully unified, then that heap isn’t an agent. Non-agents, mere heaps, aren’t responsible. There is nothing, no ‘whole being’, there to bear responsibility. 

	Disunified people aren’t responsible. Defective actions aren’t truly actions, and those who commit them aren’t truly agents. We can’t point to any bad action, or to any bad agent and say “they did it.” Or, to the extent that we can, and to the extent that a bad action is an action, and to the extent a bad agent is an agent, they aren’t truly bad. If you can point to it, if you can say “it is more than a mere heap, there is a semblance of a whole there,” then by the normative metric of unity, it definitionally isn’t bad. 

	[Objection #3] I’m objecting to part of her defense against some of the objections I’ve already raised. Consider the following passage:

<<<
As far as tyrants are concerned, I’m not sure what to say—but then no one knows for sure what to say about the responsibility of some of the characters I’ve classified as tyrants—serial killers and addicts, for instance. But to the question whether the others become less responsible as they approach the tyrannical condition, the answer is no. There is no general principle saying that you are responsible to the extent to which you acted.<<ref "7">> 
<<<

Replace “you acted” with “you are an agent” and it becomes clearly incorrect. Agency is entirely about efficacy and responsibility. But, since the degree of action is literally a measurement of the degree to which you are an agent, then the general rule is true, at least if she is correct about the relationship between action and agency (I think it would wiser to separate these notions). She continues:

<<<
What we are going to blame you for is not that other force that was working in you or on you, but for the fact that you let it do that, that you failed to pick up the reins and take control of your own movements. And the reason we are going to do that is that making yourself into an agent, giving yourself an identity, becoming a person, is your job (1.4.9).8
<<<

If you are responsible for not being an agent, or for not being a unified agent, then who is this ‘you’? And isn’t this overarching ‘you’ that is responsible for whether or not you are an agent (in her theory) also an agent? Isn’t what we mean by agency – a type of irrevocable responsibility to act and to be in a certain way? This brings us back to the of paradox agency which she failed to solve. In the event, becoming a ‘unified agent’ is a responsibility that must necessarily lie with some agent – and that agent must, in her theory, be a unified agent in order to perform that action, making the entire thing circular; ascribing responsibility or blame for omission of an action or performance of a bad action, therefore, becomes impossible – either the agent was originally unified in a way impermissible to her theory or was disunified and, therefore, not a responsible agent. 

''[3]''

Korsgaard is worried about the ‘big mistake’ of approaching a disunified city or person as ‘one city’ or ‘one person’. She considers a problem posed by Derek Parfit.9 Parfit’s story is about a young Russian nobleman who in the future will come into his inheritance, and he wants to make sure that his future, older self will do the right thing by giving a large portion of his inheritance to the poor. The young nobleman is worried that his older self will be a different person, with different values, and in Korsgaardian terminology, he has a different set of contingent practical identities; the younger nobleman believes he will become an uptight and selfish, yet (supposedly) ‘rational’ and ‘self-controlled’ person who won’t give to the poor. The younger nobleman sets out against the older nobleman (his future self that somehow isn’t really, essentially him), trying to strategically force the older nobleman to give his inheritance to the poor. Korsgaard describes the strategy:


<<<
So he makes a contract now, to distribute the land when he gets it, which can only be revoked with the consent of his wife, and he asks his wife to promise not to revoke it then, even if he tells her then that he has changed his mind, and that she is released from the promise…Parfit portrays him as telling his wife that his younger self is his real self, that his ideals are essential to him, and that if he loses those ideals she should regard him as effectively dead. Being dead, he cannot release her from her promise, and if his middle-aged avatar claims to release her, in an effort to keep hold of the estates, she should regard him as someone else, who therefore cannot release her –almost…as a kind of impostor, posing as the continuation of his younger self.<<ref "10">> 
<<<

If the younger nobleman’s prediction about ‘who he will become’ is wrong, then she won’t need to force him to do anything. However, if his prediction is correct, then this strategy, if it works as he intends, will force the older nobleman to give to the poor, which is against the values and normal (so-called) rational choice that the older nobleman would have otherwise made, namely to keep the inheritance.

Several problems immediately arise from Parfit’s story. Is the older nobleman really being rational? Does the younger nobleman have the right to obligate his future self, and if he doesn’t, then what does that say about obligations in general? Is the younger nobleman really a different agent than the older nobleman – does his agency lack continuity through time? Is it really a bad thing for the younger nobleman to lock himself, or the older nobleman (if w-=]e read him as a different agent) into doing what is objectively the right thing?

The wife has another set of related problems. Can she really make this promise to the younger nobleman? Is she doing wrong against the younger nobleman when she ‘breaks her promise’ to him by not forcing the older nobleman to give to charity? Is she she doing wrong to the older nobleman when she fulfills her promise to the younger nobleman, but perhaps forces the older nobleman to give to charity? 

I want to make it clear that I think there is a lot at stake in this story and in answering it – a proper response comes with a lot of meta-ethical baggage. Definitions of agency, action, choice, obligation, rights, and value are exemplary issues at stake which this story brings up. There are also some powerful metaphysical and ontological questions at stake in this ethics story, including the metaphysical nature of property and social contracts, and multiple concerns about object identity and agent identity. The consequences to answering these questions incorrectly have a profound reach and impact. In some sense, I can’t hope to offer the proper (read: effective) response, which includes a comprehensive countertheory, to what Korsgaard and Parfit are doing here. I can “give you the skinny” on some of things they’ve done wrong though, which is only a glimpse of what should be said about this problem.<<ref "11">>

Parfit’s problem, a problem based on the assumption that the younger and older noblemen are two different agents, requires us to make sense of their capacities as agents to bear rights and duties, in part by trying to make sense of the wife’s (possibly differing) obligations to these two agents. Korsgaard tries to re-tell this story of ‘successive selves’,  with her own meta-ethical baggage, in terms of division of a self, an internal conflict, and ultimately, in terms of disunity and a lack of integrity on the part of the nobleman/noblemen.

In setting out to answer Parfit’s problem, Korsgaard introduces a Kantian (and traditional Judeo-Christian) conception of marriage, a joint-ownership contract whereby two spouses maintain a complete “reciprocity of possession” of each other and each other’s belongings.<<ref "12">> She emphasizes this transaction as a “unity of will” in which:

<<<
Two people who get married pledge to share one another’s lives and possessions; there is therefore a range of decisions that they pledge to make together—decisions about where they will live, decisions about the house, the car, the children, and the money—including the disposition of those inherited estates.<<ref "13">>
<<<

From this ‘unity of will’, Korsgaard claims that “the Russian nobleman’s wife cannot operate as an independent person free to choose now between two loyalties,” the loyalties of the younger and the older noblemen.<<ref "14">> These two spouses are supposed to have a unity of will. But, as Korsgaard points out, it doesn’t seem like they really have a unity of will. As this one man is actually two men, is there a unity of will between three people? That doesn’t seem to be the spirit of a marriage at all. Is she married to the younger nobleman, but not the older? Or, is she even married to either of them at all? I think it might be reasonable to say there is a difference between the Kantian marriage and a legal marriage. 

Korsgaard says “he cannot make the decision together with himself…”<<ref "15">> This decision is about what should be done with the future inheritance. If he cannot decide, then husband and wife certainly can’t decide together either. Note that it is not immediately clear who this ‘he’ might be. It could be the younger nobleman with himself, the older nobleman with himself, and/or with the younger nobleman with older nobleman. Interestingly, Korsgaard says:

<<<
The young nobleman asks his wife to commit herself, to make a promise, and to keep her promise in the future. She is to hold him, by holding herself, to giving up the estates. But if she can do this, why can’t he?<<ref "16">>
<<<

The assumption is that the wife will maintain her identity and commitments through time, even though he won’t. And, further, from Korsgaard’s theory, maintaining one’s identity is maintaining one’s contingent practical identities, one’s agency, one’s reasons for acting, one’s normative obligations and rights. In this case, it is an identity for keeping of a promise (to her husband no less) and a commitment to give to the poor which the wife is capable of maintaining, and for the husband, it is simply the will to give to the poor, which he somehow isn’t capable of maintaining. Because he lacks a capacity to maintain a commitment with himself to give to the poor, Korsgaard implies we should question his ability to make commitments or promises in general. Even the couples’ marriage vows appear in jeopardy. I think this might be too large a leap. 

By unity of will, do we mean they never disagree and that they don’t have any conflicts concerning property distribution? I don’t see any marriages that can always qualify without fail as that. If unity of will is only the singular moment where both completely agree, completely give themselves to their spouse, then it seems that this unity is fleeting. Unity of will might really be a commitment to ‘making it work’, to putting forth maximal effort to resolve disagreements in the most loving fashion possible. When both spouses are in agreement on that point, well then, I think we are really talking about marriage here. Not being capable of knowing what exactly to do with property, having a conflict with either yourself or your spouse, doesn’t seem to revoke marriage in any degree. 

Vitally, Korsgaard say about that wife: “if she approaches her husband as one person, she’ll be making a big mistake.”<<ref "17">> This can be taken in two ways. Either the nobleman is really two different noblemen (younger and older persons), and thus not one person, or the younger nobleman is simply divided and in conflict with himself, and thus the younger nobleman is really not one person. In the first way there is not ‘one person’ because there are two persons in one body over time, and in the second way, there is not ‘one person’ because there isn’t a person (let alone two). Parfit agrees to the first, and it seems that Korsgaard is tempted to head in the other direction. It makes a lot of sense in her theory if there is an immediate conflict and disunity in this younger nobleman. But, if this is the interpretation, I think she’s re-written who this ‘younger nobleman’ really is – he seems much less rational and put together in Korsgaard’s re-telling than in Parfit’s. However, there is also decent reason for her to interpret it like Parfit, and to say that the younger nobleman has one identity, and the older nobleman a different identity. But, then she is committing the same egregious mistake about lacking persistent agency that Parfit does – in some ways, this is already present in her theory, as we can shed and take on contingent practical identities, including (supposedly) our agency, and thus our moral obligations, at whim. 

Korsgaard claims that a married couple deliberates together and arrives at a shared decision.<<ref "18">> She explains: 

<<<
The aim of the shared deliberation…is to find (or construct) a shared good, the object of our unified will, which we then pursue by a shared action. And it follows from the fact that the action is shared that if either of us fails [to perform our proposed shared action]… we will both have failed to do what we set out to do. Our autonomy and our efficacy stand or fall together.<<ref "19">>
<<<

If this is true, then it doesn’t seem that the younger nobleman and his wife really have joint autonomy or efficacy. They lack unity of will and they lack shared deliberation. They aren’t married, at least not with respect to this issue (perhaps Korsgaard would argue for degrees of marriage), on this view. She sidetracks the discussion briefly by saying:

<<<
If I treat your reasons as reasons, they may change my mind about what counts as the best outcome… But if I treat your reasons as tools and obstacles, they will come into my deliberation in a different way—I will see whether I might use them as tools in the pursuit of my own ends, or if not, if they are obstacles, then I will try to determine whether I can remove them from my path.<<ref "20">>
<<<

This is a very potent statement. A whole discussion is centered around what it means to treat others as persons/agents (ends) with their reasons as your reasons vs. treating them and their reasons as tools and obstacles (means). The nature and normativity of interaction is at stake. Korsgaard relates this talk about warcraft to the story of the Russian nobleman. She says: 

<<<
And this of course is how the Russian nobleman is related to himself. He doesn’t think of his future reasons as reasons—he thinks of them as facts to contend with, as tools and obstacles, and in his case mainly obstacles—and he is therefore in a condition of war with himself. His efforts as a young man are dedicated to ensuring that his younger self wins, and his older self loses. His soul is therefore characterized by civil war, and that is why he fails as an agent, and his younger self cannot be efficacious without the help of his wife. But for the same reason he, his whole self now, is unable to interact with his wife.<<ref "21">>
<<<

It seems that one can interact with one’s present self, one can interact with one’s future self, and one can interact with other persons. In this passage, in seems that the younger nobleman is interacting (or rather, he is failing to interact as he should) with himself as an older nobleman. In one sense, Korsgaard is arguing for a persistent identity – she wants the younger and the older to be one person over time. But her argument ‘for a persistent identity’ isn’t that it is necessarily the case that they are one person (which is what I think is the only sensible thing to argue), but rather that they merely should try to be one person. She continues: 

<<<
As an embodied being [he as an agent] must take into account all of the incentives, present and future, to which [he] will be subject in the natural course of [his] embodied life: that is part of what Plato means when he talks about willing for the good of the whole.<<ref "22">>
<<<

How can you know what your future holds? How can you know (which is a precondition to taking into account) your future incentives? Interaction makes sense when it is simultaneous, but it doesn’t make sense through time. You can’t interact in any meaningful sense with your future self. I’m convinced that she is in some sense agreeing to unification through time (although, later we’ll see she doesn’t want that). Korsgaard doesn’t have the same problem I have with Parfit’s story – she agrees that his agency is in jeopardy. She continues:

<<<
The Russian nobleman fails as an agent because… he doesn’t will a law that he thinks he can commit himself to acting again later on, come what may.<<ref "23">>
<<<

<<<
His future self is just himself. He can decide to disagree with his own future attitude. But unless he is then also prepared to regard his own future attitude as one of weakness or irrationality, he is not according the reason he himself proposes to act on right now as having normative standing. For he is not making a law for himself unless he thinks of his future attitude as a violation of that law, and if he does not think he can make laws for himself then he lacks self-respect.<<ref "25">>
<<<
<<<
So his problem is not his disunity with his future self, but his disunity with himself here and now. And his problem is not disrespect for his future self, but disrespect for himself here and now.<<ref "26">>
<<<

So, the reason he is disunified in the present is he doesn’t find his future self to be irrational. I don’t think that really answers the story. A prediction that my views or values will change is not that same thing as my advocacy of their rationality or irrationality. We can fine tune the story. Perhaps he has his mind 100% made up (and unified) at time-t0 to A, and just so happens in the future to have his mind 100% made up at time-t1 to ~A.  His younger t0 self thinks that his older t1 self is wrong, irrational, and immoral. But, this doesn't sound like necessitation. That just sounds like he shed and gained a new contingent practical identity, he changed his mind. He’s not really in conflict with himself. 

[Objection #1] If Korsgaard argues for unification through time, she’s expecting the younger nobleman to know himself in the future, and unify himself through time, then she is expecting something which is impossible, something which is out of his present reach. If she argues that there isn’t unification through time, but really, he’s disunified in the present, and the older nobleman isn’t the same agent, then she’s demolished persistent agency. I can’t accept either one.<<ref "26">>

Unification through time is interesting because it maintains some semblance of a persistent identity (which I think is cardinal to the work we are doing here). But, unification through time as an action doesn’t make sense. I really don’t think Korsgaard agrees to this notion, even if she toys with it – she, herself, knows it has controversial (probably insurmountable) problems. It would also contradict aspects of her own theory at large. Unification through time basically prevents the shedding and taking on of contingent practical identities. 

If agency doesn’t persist in the case of the nobleman, then the nobleman’s life is split into (at least) 2 lifetimes, two agencies, two sets of responsibilities – he is broken into two people. But aren’t we all subject to this? We are schizophrenic, and useless through time. When we change our minds enough (where that point may be, I’m still unclear), when we shed enough contingent practical identities, we are no longer ourselves. No practical system of ethics can be made from this stance on agency. Agency must be persistent, or obligations through time are arbitrary, superfluous, and ridiculous.

Obligations through time become incoherent if we lack a consistent, stable identity/self/agency through time. Duties or rights of the person do not pass through time to whomever they 'evolve' into; whatever contingent practical identity they eventually take on, sheds all obligations. Isn’t agency the very type of thing that remains stable? It is that which enables obligations to pass through time, from one contingent practical identity to another. Agency isn't a choice, it lasts a lifetime. To say that 'killing yourself' is a way to shed your agency is tongue-in-cheek; but it isn't obvious how one might actually 'choose' to shed their agency otherwise. Agency is not a choice; it is not something which you constitute yourself as. You are innately an agent or you aren’t, it isn’t up to you. Agency is the very thing that enables you to have anything else to be ‘up to you’ – but agency as a capacity isn’t something that is up to you. Your plight is not your choice. 

How are we to treat the disunified? [Objection #2] The constitutional model she presents in this book dehumanizes and strips personhood and the rights which follow from it away from the disunified. In the case of the Russian nobleman, he is less of a person, less of an agent, not as good as a human, and less worthy of our interaction. He doesn’t deserve to be treated as well as a full-blown unified agent; he can’t actually be treated (according to her theory) that way by definition, since he lacks the capacity to be a person. In some sense, he is like the mere heap – he is rubbish, so, go ahead, dispose of him! 

By her theory, people who don’t respect themselves as people aren’t really people, and so we don’t have to (because “we can’t”) respect them either. Now, you might say I’m exaggerating the point – she does after all have a theory which comes in ‘degrees’. But, my criticism is applicable, even in degrees. The degree to which a being isn’t an agent, the degree to which he is a mere heap, is the degree to which we can’t interact with him and treat him as an end. Mere heaps, in any degree, are tools and obstacles, not ends.

So, the nobleman is, at least to some degree, disunified and, to that degree, cannot be treated as a person, as an agent. The wife, then, cannot be obligated to some degree (and perhaps to no degree) to him. Regardless of whether he is disunified through time, or disunified in the present as a younger nobleman, he’s still not worthy. I just don’t see how he is an illegitimate person to any degree. Korsgaard’s interpretation alongside her theory requires it.

----------------------------------------------

<<footnotes "1" "Christine Korsgaard, //Self-Constitution: Agency, Identity, and Integrity// (Oxford: Oxford University Press, 2009), 157">>
<<footnotes "2" "Ibid., 134">>
<<footnotes "3" "Ibid.">>
<<footnotes "4" "Immanuel Kant, //Groundwork of the Metaphysics of Morals//, Ed. Mary Gregor (Cambridge: Cambridge University Press: 1997), 61">>
<<footnotes "5" "Christine Korsgaard, //Self-Constitution: Agency, Identity, and Integrity //(Oxford: Oxford University Press, 2009), 157">>
<<footnotes "6" "Ibid., 157">>
<<footnotes "7" "Ibid., 174">>
<<footnotes "8" "Ibid., 175">>
<<footnotes "9" "Ibid., 185">>
<<footnotes "10" "Ibid.">>
<<footnotes "11" "I would like to offer a better account, but that will have to be at a later time.">>
<<footnotes "12" "Ibid., 186">>
<<footnotes "13" "Ibid., 187">>
<<footnotes "14" "Ibid.">>
<<footnotes "15" "Ibid.">>
<<footnotes "16" "Ibid.">>
<<footnotes "17" "Ibid., 188">>
<<footnotes "18" "Ibid., 190">>
<<footnotes "19" "Ibid., 192">>
<<footnotes "20" "Ibid., 193-194">>
<<footnotes "21" "Ibid., 195">>
<<footnotes "22" "Ibid., 198">>
<<footnotes "23" "Ibid., 203">>
<<footnotes "24" "Ibid.">>
<<footnotes "25" "Ibid., 203-204">>
<<footnotes "26" "It is possible she is arguing for both. Her argument should have been much clearer in this respect.">>
In this paper, I explore the history and evolution of the concepts of apodicticity and objectivity in Husserl’s phenomenology. I consider: what Husserl means by and why he is interested in these concepts, and whether or not phenomenology yields apodictic and objective results. In addition, I evaluate the nature and status of logic, particularly with respect to apodicticity and objectivity. 

Husserl’s philosophical views of the world evolved over time (a good thing, presumably, as this is probably true for any intelligent person). His early work was a stepping stone to his later work, and while we can trace his line of thought, we need not assume that his early work is entirely compatible with his later work. It seems as though objectivity is a concept which evolved over the course of Husserl’s work, and his early concept may conflict with his later concept. The type of objectivity derived from Husserl’s Platonism in Logische Untersuchungen seems different from the objectivity derived from his notion of intersubjectivity in Ideen. Not only are these two conceptions of objectivity possibly in conflict, but Husserl’s later notion of intersubjectivity is unsatisfying as grounds for objectivity. 

Husserl’s notion of apodicticity may or may not have evolved over his life’s work. Probably, it did not – but the relationships between objectivity and apodicticity in Husserl’s early work and his later, arguably more phenomenological, work becomes difficult to comprehend. My essential worry is that Husserl’s late phenomenology fails to meet the criteria of apodicticity (in his initial and our generally agreed understanding of the word). I assume his phenomenology fails to be apodictic, as he originally intended, but it is likely that Husserl knew this himself. Perhaps he used the word apodicticity in his later work with a different meaning, a meaning which wasn’t going to short-circuit his systematic phenomenology.  Even if we cannot interpret him as doing this, I think a charitable reconstruction of his late work will show that Husserl’s phenomenology has very high epistemic standards, even if it is not apodictic.

Essentially, Husserl’s phenomenology is only functional if he lowers the methodological requirements below his original and supremely high epistemic standards of apodicticity and objectivity. It makes more sense to perform phenomenological research without having to meet Husserl’s original standards of apodicticity and objectivity. Instead, a healthy amount of doubt and a relatively strong (but not apodictically-based or completely objective) justificatory standard seem both prudent and fruitful in phenomenology. I conclude that charitable interpretations or reconstructions of Husserl’s phenomenology will relax these original Husserlian standards.

In //Logische Untersuchungen//, Husserl considers how knowledge is possible and what conditions must be met in order for one to have knowledge.<<ref "1">> He criticizes psychologism, which argues epistemology is naturalistically “concerned with the cognitive nature of perceiving, believing, judging, and knowing” and thus claims the status of logic requires empirical investigation and verification.<<ref "2">> This is a large error in Husserl’s view – he thinks logic and mathematics, for example, are not factual, real (in the tangible sense of the word), empirical objects; rather, they are ideal laws or structures. Consequently, our knowledge of them and the manner in which they are known is fundamentally different from how we know empirical, factual claims.  Husserl associates logic and mathematics with a sort of profound certainty, idealism, eternality, and objectivity which are epistemically superior to temporal facts and empirical investigations (which are far more subject to doubt and change). Logic and mathematics are exemplary knowledge of the highest order in Husserl’s eyes, and it remains separate from psychology and other empirical investigations. It makes sense that Husserl has used logic and mathematics as a subject to tease out foundational claims of epistemology; after all, he was a mathematician. As Stefania Centrone puts it:

<<<
[I]t is well known that Husserl’s refutation of logical psychologism leads in the Prolegomena to the identification of ‘an internally closed, independent . . . field’ of a priori truths, which constitute the domain of pure logic. Pure logic acknowledges the objectivity of contents of thinking (concepts, propositions, inferences) and studies the properties of and the logical relationships among them. It is a formal, theoretical, a priori science, independent of other sciences, and, in particular, of psychology.<<ref "3">>
<<<

Psychologism fails, in Husserl’s view, because it attempts to reduce ideal things to real, factual things (like naturalistic objects). The object of knowledge – in this case, logic or mathematics, as an ideal object – is distinguished from the act of knowing, although the two are connected (they must be if we are to know any logical and mathematical truths).<<ref "4">> Husserl believes that, in order to understand ideality and this connection between the object of knowledge and the act of knowing, we must investigate consciousness; but not as a natural and empirical examination (as psychologism would have us do). This demonstrates his preference for apodicticity and the focus on consciousness within his method of phenomenology. His view on logic also provides us a window into his early views of objectivity. Husserl says:

<<<
No truth is a fact, i.e. something determined as to time. A truth can indeed have as its meaning that something is, that a state exists, that a change is going on etc. The truth itself is, however, raised above time: i.e. it makes no sense to attribute temporal being to it, nor to say that it arises or perishes (Hua 18/87 [109-110]).

The truth that 2 + 3 = 5 stands all by itself as a pure truth whether there is a world, and this world with these actual things, or not (Hua 9/23).<<ref "5">>
<<<

It seems as though Husserl is claiming that logic (of which mathematics is a subset) is objectively true, and that it is true independent of a world and perhaps independent of us as conscious beings, as well. He is proffering a sort of Platonism in the Logical Investigations, the epitome of a theory for objectivity, in his early work. This isn’t the sort of ancient Platonism with perfect forms where objects are poor imitations. Husserl’s Platonism is still a strong view of objectivity, as truths are mind-independent. Unfortunately, it seems as though he is so vehemently against metaphysics that he can’t really hold onto this kind of objectivity in his later work. We should be mightily tempted to interpret a kind of realism in this early work, and a kind of idealism in his later work. If there is a shift from realism to idealism in Husserl’s work (which he wishes to deny in his later works), then, without a doubt, it isn’t just Husserl’s conception of objectivity which has evolved.<<ref "6">>
 
	He starts with the objectivity of Platonism, but eventually fabricates a type of objectivity out of a collective subjectivity: intersubjectivity. What exactly is this intersubjectivity, particularly as it relates to objectivity?

<<<
[I]ntersubjectivity only exists and develops in the mutual interrelationship between subjects that are related to the world; and the world must be conceived as a common and public field of experience (cf. Hua 8/505, 15/373, 13/480, Ms. C 17 33a).<<ref "7">>
<<<
<<<
According to Husserl, my perceptions present me with intersubjectively accessible being, that is, being that does not exist for me alone, but for everybody (Hua 9/431, 14/289, 390, 17/243, 6/469). I experience objects, events, and actions as public, not as private (Hua 1/123, 15/5). Husserl consequently claims that an ontological analysis, insofar as it unveils the being-sense (Seinssinn) of the world as intersubjectively valid, leads to a disclosure of the transcendental relevance of foreign subjectivity and thus to an examination of transcendental intersubjectivity (Hua 15/110).<<ref "8">>
<<<
<<<
Concrete, full transcendental subjectivity is the totality of an open community of I’s—a totality that comes from within, that is unified purely transcendentally, and that is concrete only in this way. Transcendental intersubjectivity is the absolute and only self-sufficient ontological foundation [Seinsboden], out of which everything objective (the totality of objectively real entities, but also every objective ideal world) draws its sense and its validity (Hua 9/344, transl. modified).<<ref "9">>
<<<

Intersubjectivity is a confirmation, consensus, and a construction of a group of phenomenologists concerning a phenomenon. Objects present themselves intersubjectively. It is because the community of phenomenologists commonly agrees and forms a consensus regarding the nature of an object that the object and our claims about it attain the epistemic status of objectivity. Objectivity in the sense that the world is composed of subjects and objects, the ontological perspective with which Heidegger breaks from Husserl (giving primacy to instrumentality instead), is maintained throughout Husserl’s body of work. As far as I can see, objectivity in the sense that truth and objects are mind-independent, like the sort found in Husserl’s initial Platonism, arguably a discussion of realism and idealism, is not clearly maintained throughout Husserl’s body of work. Phenomenological objectivity may lose the strength of his Platonic objectivity we hope to associate with logic and mathematics, favoring an epistemically weaker intersubjectivity. 

Highly connected to the epistemic standard of objectivity, and probably more essential to Husserl’s starting place in Phenomenology, is the notion of apodicticity. As far as I can see, objectivity is a necessary pre-condition to apodicticity in his early work, and perhaps an argument which endangers Husserl’s objectivity will also be dangerous to his apodicticity. Objectivity and apodicticity are strongly connected notions in his early work, but in his later work they seem torn apart, and I am not sure how we can put them back together (or even if we ought to put them back together). 

To know a logical truth seems to be the epitome of having certainty in Husserlian philosophy. It is intuitively obvious and evident that, for example, P = P. The opposite (~P=P) is inconceivable. When we know a logical truth, at least one as foundational and simple as this one, we have no doubt about it. We are certain about it; it is apodictically given to us. This sets the standard, as an example, for what counts as ultimate knowledge in Husserl’s philosophy.  

The root of Husserl’s phenomenology is the pursuit of certainty – apodictic knowledge. Adequacy is not enough, he seeks absolute indubitability. An apodictic evidence is not only certain evidence of its objects but is also “the absolute unimaginableness (inconceivability) of their non-being (Hua I, p. 56; 1977, p. 16).”<<ref "10">> This is a very strong conception of knowledge as fully justified belief. Husserl’s initial conception of apodicticity does not seem to admit of degrees. You either have apodictic belief or you don’t. 

We may think of certainty, or apodicticity, as an extreme epistemic property of beliefs. Even if Husserl would agree to a distinction between knowledge and certainty, he would have to argue that certainty is either the singularly highest degree of knowledge or a higher kind of knowledge. 

Phenomenology, as the apodictic science, is, theoretically speaking, an infallible method for achieving certain belief, i.e. knowledge. When we actually go out and perform phenomenological research, we come to realize that our results somehow do not immediately live up to this infallible standard. The process as a practice, the implementation of the method, however, is filled with fallibility. According to Walter Hopp, agent-fallibility should be interpreted from Husserl’s work. George Heffernan explores even further and argues that we must consider evidence-fallibility.<<ref "11">> Do these endanger the infallibility of the method? I think a charitable interpretation will claim they do not endanger the infallibility of the phenomenological method. 

These concerns are highly analogous to the epistemic foundations of logic. Logic, as a method, is said to be truth-preserving. The theoretical steps and the method itself can only take you from one truth to another truth. Phenomenology, likewise, preserves apodictic belief. In logic, we use deduction; in phenomenology, we make claims from and analyze consciousness and what is intuitively given and presented to consciousness. Just as in practicing phenomenology, the problem in practicing logic is that an agent can fail to apply it – agents are fallible. 

Unfortunately, the analogy weakens when comparing methodological requirements and metatheoretic concerns of verification. Logical deductions use small steps, clearly defined – nothing is more precise and spelled-out than logic. The steps are obviously reliable and we are certain of them. Logic is also methodologically simple, in some sense. Logic is a method that is testable by a computer – it is that mindless (I use the word with the utmost respect for logic) of an activity. Verification, proofs, and replicability are very straightforward in logic. 

Phenomenology, however, is quite the opposite of being mindless, and it is not straightforward in these respects either. Agent-fallibility does not seem to endanger logic’s truth preservation, as correcting the errors of agents is a simple task. This sort of correction and verification is not as simple in Husserl’s phenomenology. It is thus a bit harder for us to see why phenomenology is a science which is as rigorous or as replicable as logic. Phenomenology, as Husserl lays it out, is supposed to lead us to apodictic belief, but the method seems mushy. Husserl distinguishes the analogy:

<<<
Phenomenology in acts of seeing, determining, and distinguishing sense. It compares, it distinguishes, it connects, it places in relation, it divides into parts, it separates off moments. But it does all this in the act of pure seeing. It does not engage in theory or mathematical construction; that is, it offers no explanations in the sense of deductive theories. (Hua II, p. 58; 1999, p. 43)<<ref "12">>
<<<

The analogy breaks in domains as well. Husserl’s phenomenology has a larger epistemic domain than logic, being concerned not only with truth, but also with belief. Apodicticity is much larger in scope and stronger in its epistemic claim than the truth-preservation of logic, and perhaps this should afford it more charity than we might initially think is merited. 

Phenomenology, as a method, in some sense cannot be separated from agents, the steps are not as clear as they are for logic, and the verification is based on intersubjectivity. The method seems flawed because it exists and functions in virtue of agents, which is not obviously the case for logic. It seems that agent-fallibility is more problematic for Husserl’s phenomenology than it is for logic. 

Apodicticity seems to be gained by the initial phenomenological reduction, but from within this perspective not all transcendental claims appear to be apodictic. While perhaps not apodictic, these claims still seem to have a powerful epistemic status as they are claimed from within the phenomenological reduction. I think it is akin to building a house on epistemically more stable and less doubtable ground. The house itself might not be apodictic, but the grounds are apodictic. A structure built on such a stable foundation seems far less vulnerable to epistemic criticisms than structures not built upon such ground. Assuming all else being equal (neither house lives up to the standard of apodicticity), we should prefer the house built upon apodictic grounds. 

In Husserl’s phenomenology, objectivity is supposed to come from intersubjectivity. This does not necessarily make the method fallible, but it makes it much harder to see why it is infallible. Why should we believe that intersubjectivity amounts to objectivity? I do not know. A group of phenomenologists may be less fallible than an individual phenomenologist, but I see no reason to think together they are inevitably infallible or objective. 

Insofar as the method can be separated from the agents, we do not need to be worried about method fallibility, but I do not really understand what it means to separate this method its practitioners. Perhaps in the most theoretical sense, phenomenology may be infallible, but in practice it does not appear infallible – it may never, practically speaking, lead us exclusively to apodictic beliefs. Husserl appears to have known this himself, and maybe it did not bother him. My worry is that apodicticity is disconnecting from objectivity and losing its primacy as an epistemic foundation, in some sense, after performing the phenomenological reduction, but perhaps this is just fine. 

Part of the difficulty in fleshing out the differences between the notions of objectivity and apodicticity found in the early and later work of Husserl rests upon the fact that the scope of the Logical Investigations is smaller and plainly different from Ideas. Within the domain of the Logical Investigations, apodicticity and objectivity seem to be one and the same, having realist notions. What develops in Husserl is the thought that something like this can extend outside of this domain. It is a seed to Ideas, but Husserl’s later development of phenomenology grows into something quite different and arguably idealist. 

It is possible that the Logical Investigations is conducted within the natural attitude. Husserl probably did not really have the phenomenological reduction at that point in time. Once you make the move to idealism, and objectivity is constituted differently, then what does apodicticity mean and to what does it now apply? Where is apodicticity preserved in Husserl? It is preserved in the phenomenological reduction, the immanent presentation is taken to be apodictic, but the objectivities determined out of that are not necessarily apodictic. Within Ideas, a distinction is drawn between the immanent presentations and so-called transcendent objects, which are always dubious. Apodicticity is allocated to certain aspects of Husserl’s phenomenology, but not everything must meet that standard. Note that the “could always be wrong” is built into the notion of a transcendent object – we could always be wrong about the next perspective. There might be some sort of objectivity constituted about these objects, but it is a dubitable objectivity. Objectivity and apodicticity seem to go hand-in-hand within the Logical Investigations, but they seem to break apart in Husserl’s later work. 

Upon reflection, we should see that Husserl’s phenomonology is easy to salvage or perhaps is misinterpreted. Husserl himself lowered his expectations concerning objectivity, and if we lower the standard for phenomenology below apodicticity (and we can still maintain a very, very high epistemic standard even without the absolute certainty of apodicticity), then his phenomenology appears to have better form and function. 

-----------------------------

<<footnotes "1" "Zahavi, Dan. //Husserl's Phenomenology//. Stanford, Calif: Stanford University Press, 2003: 8">>
<<footnotes "2" "Ibid., 8">>
<<footnotes "3" "Centrone, Stefania.// Logic and Philosophy of Mathematics in the Early Husserl//. Dordrecht: Springer, 2010: 101">>
<<footnotes "4" "Ibid., 13">>
<<footnotes "5" "Ibid., 9">>
<<footnotes "6" "Husserl, Edmund. //Ideas Pertaining to a Pure Phenomenology and to a Phenomenological Philosophy//. The Hague: M. Nijhoff, 1980: 418">>
<<footnotes "7" "Zahavi, Dan. //Husserl's Phenomenology//. Stanford, Calif: Stanford University Press, 2003: 74">>
<<footnotes "8" "Ibid., 110">>
<<footnotes "9" "Ibid., 110-111">>
<<footnotes "10" "Hopps, Walter. “Phenomenology and Fallibility.” //Husserl Studies //25, no. 1 (2009-04-01): 4">>
<<footnotes "11" "Heffernan, George. “On Husserl’s Remark That ‘‘[s]elbst Eine Sich Als Apodiktisch Ausgebende Evidenz Kann Sich Als Ta¨uSchung Enthu¨ Llen …’’ (xvii 164 Does the Phenomenological Method Yield Any Epistemic Infallibility?: 32–33).” //Husserl Studies// 25, no. 1 (2009-04-01): 22">>
<<footnotes "12" "Hopps, Walter. “Phenomenology and Fallibility.” //Husserl Studies// 25, no. 1 (2009-04-01): 2">>


-----------------------------

''Bibliography and Works Cited''

Bell, David Andrew. //Husserl//. London: Routledge, 1990.

Centrone, Stefania.// Logic and Philosophy of Mathematics in the Early Husserl//. Dordrecht: Springer, 2010

Heffernan, George. “On Husserl’s Remark That ‘‘[s]elbst Eine Sich Als Apodiktisch Ausgebende Evidenz Kann Sich Als Ta¨uSchung Enthu¨ Llen …’’ (xvii 164 Does the Phenomenological Method Yield Any Epistemic Infallibility?: 32–33).”// Husserl Studies// 25, no. 1 (2009-04-01): 15-43

Hopps, Walter. “Phenomenology and Fallibility.” //Husserl Studies// 25, no. 1 (2009-04-01): 1-14

Husserl, Edmund. //Ideas Pertaining to a Pure Phenomenology and to a Phenomenological Philosophy//. The Hague: M. Nijhoff, 1980

Smith, Barry, and David Woodruff Smith. //The Cambridge Companion to Husserl//. Cambridge: Cambridge University Press, 1995.

Tito, Johanna Maria. //Logic in the Husserlian Context//. Evanston, Ill: Northwestern University Press, 1990.

Zahavi, Dan. //Husserl's Phenomenology//. Stanford, Calif: Stanford University Press, 2003
''ABSTRACT''

In this paper, I examine two standard theories of intellectual property, voice criticisms of each theory from within their own perspectives, and offer an alternative approach to intellectual property. In the first chapter, I explicate Locke’s original property theory and provide a modern account of Lockean intellectual property as an extension of the original theory. I argue this extension is not compatible with Locke’s original thought on property rights. In the second chapter, I dissect the mainstream economic approach to intellectual property, an approach which employs utilitarianism to justify the intellectual property regime of first world, western nations. I argue that this mainstream utilitarian economic approach fails to satisfy the principle of utility. Lastly, I offer a sketch of an alternative theory or perspective on intellectual property based on the notion of human flourishing. I argue that our obligations to develop and use our minds are so extensive that exclusive claim-type intellectual property rights are not possible. 

''CHAPTER 1. - LOCKEAN INTELLECTUAL PROPERTY THEORY''

''1.1 - Introduction''

In this chapter, I will outline Locke’s property theory, explain and distinguish various components of Lockean intellectual property theory, and voice criticisms of Lockean intellectual property theory from a Lockean perspective. I hope to show that extensions of Locke’s account to make sense of intellectual property can’t actually be very Lockean, and show where and why these extensions lack justification and compatibility with Locke’s original approach to property rights.

Locke’s property theory was originally and primarily concerned with ownership of land, water, and natural resources, but over time his interpreters have extended it to include all physical and tangible objects. Intellectual property theories, a topic about which Locke never directly writes, are very commonly made on quasi-Lockean grounds. Lockean intellectual property theorists wish contend to extend Locke’s property theory from the material realm to the immaterial realm, as they find these realms somewhat parallel.<<ref "1">> As Tom Palmer explains it, “intellectual property rights can be justified as ‘piggy-back’ rights, logical extensions of the right to own and control tangible objects.”<<ref "2">>

What is intellectual property? There is the legal aspect and a more purely philosophical aspect. In law, intellectual property is a set of loosely connected legal policies or doctrines governing the ownership, use, and distribution of abstract and intangible objects and their corresponding physical manifestations.<<ref "3">> There are separate laws concerning copyrights, patents, trademarks, and trade secrets. These separate laws are grouped together and referred to as intellectual property law because they share in common the regulation of immaterial objects and their physical manifestations. In philosophy, we justify or criticize these laws by providing the unifying, universal ethical rules for intellectual property, at least a thin view of the metaphysics underlying these intangible objects, and the mechanics for the acquisition and transfer of these properties. It is on the philosophical side of intellectual property that Locke’s property theory, which was originally concerned with only the material world, has been extended to the immaterial. 

The initial objects of intellectual property, namely ideas, designs, concepts, and models, have special characteristics because they are intangible. Unlike physical objects, which are subject to physical laws like entropy and conservation of energy, intellectual objects cannot be depleted or degraded. This brings about some interesting characteristics. For example, intellectual objects are non-rivalrous, meaning one person can consume an intellectual object without diminishing any other person’s ability to consume that object.<<ref "4">> Further, because intellectual objects are non-rivalrous, the economic notion of scarcity does not apply to them.

There are, perhaps, other special characteristics of intellectual objects which are less clearly understood or not agreed upon, but are still vital for creating, interpreting, or critiquing an intellectual property theory. For instance, we must consider whether or not intellectual objects predate our work in coming to realize them. If they exist (however it is they might exist) before we can recognize their existence, then the sort of work which enables us to realize intellectual objects results in discovery.  If intellectual objects do not, however, predate our work in coming to realize them, then perhaps we might say they come into existence because we created them. This kind of metaphysical issue does not seem be as problematic for physical objects, where we may have stronger and more stable intuitions about the discovery and creation of physical objects. The difference between discovering and creating intellectual objects may have major implications for a Lockean intellectual property theory.<<ref "5">> 

Lastly, we must question whether or not one can modify or alter intellectual objects. It is obvious to us how physical objects are modifiable, but it is far less clear if and how intellectual objects can be altered. This difference may stifle or hinder our ability to parallel physical objects to intellectual objects, possibly preventing a viable extension of Lockean property theory to the immaterial. If modifiability (such as adding value) is a necessary condition to acquiring an object as property, then this special characteristic of intellectual objects will be a threat to the acquisition of intellectual property. 

We should keep these special characteristic in mind, as they are part of the crux of the debate between paralleling material objects and immaterial objects, the necessary link for extending Lockean property theory to include intellectual property rights.

''1.2 - Locke’s General Theory of Property''

The primary component of Locke’s original property theory is the claim that people own themselves. From this claim, Locke arrives at the conclusion that people are responsible for their labor, they own their labor, and they “have a natural right of entitlement to the fruits of their labor.”<<ref "6">> This is one of the less controversial components in Locke’s original theory, and arguably the grounds upon which other components of this original theory rest. Assuming we satisfy whatever preconditions are set out, Locke believes the acquisition of previously unowned property derives from the ownership of the fruits of our labor; the ownership of the fruits of our labor is derived from the ownership of our labor; and, the ownership of our labor is derived from our self-ownership. Locke’s chain of derivative ownership satisfies certain instincts we have about the nature of property and the results of our self-ownership.

Another component of Locke’s theory is the notion that a person acquires property rights to an unowned object by mixing his or her labor with it. Locke claims, “As much land as a man tills, plants, improves, cultivates, and can use the product of, so much is his property. He by his labour does, as it were, inclose it from the common.”<<ref "7">> The labor-mixing component is more controversial than the self-ownership component. Labor-mixing is a complex problem, and Locke did not develop a full account of it for us. The precise nature of labor-mixing (and its various problems) is beyond the scope of this paper, but it is an issue which must be considered in evaluating any intellectual property extensions developed with the labor-mixing component in mind.

Another component seems to arise out of the labor-mixing theory, namely the value-adding condition. From the quote above, words and phrases such “improve” and “cultivate” and “use the product of” hint at additional conditions for property acquisition. The value-adding component of the theory is contentious and fraught with problems. What does it even mean to add value to an object? Locke does not leave us with many clues to clarify the nature of value-adding nor does he provide us a clear explanation of the priority or necessity of the component to his property theory. If an intellectual property extension is founded upon a Lockean interpretation including this component, that extension must provide an account for how intellectual labor adds value to its corresponding objects.

There remains one other crucial piece to Locke’s property theory, what Robert Nozick has dubbed “the Lockean proviso,” which is the last condition for acquisition. Locke explains: 

<<<
Nor was this appropriation of any parcel of land, by improving it, any prejudice to any other man, since there was still enough, and as good left; and more than the yet unprovided could use.  So that, in effect, there was never the less left for others because of his inclosure for himself: for he that leaves as much as another can make use of, does as good as take nothing at all. No body could think himself injured by the drinking of another man, though he took a good draught, who had a whole river of the same water left him to quench his thirst: and the case of land and water, where there is enough of both, is perfectly the same.<<ref "8">>
<<<

This is a powerful, limiting condition for property acquisition. The public good is the core priority of the proviso. Potential acquisitions which would violate the public good (what exactly counts as the public good isn’t clear) are disqualified from acquisition by the proviso. The “still enough” clause is potent, as it precludes monopolies and mass-ownership of resources which may lead to undue injury. To own the entire river, and assuming this river was the only resource of fresh water, would prevent others from being able to quench their thirsts (as they lack the rights to the river). This kind of monopoly, or even an oligarchy by which a limited number of people together monopolize a resource, would injure others because they no longer have access to that which is necessary for life.

We might be tempted to think of Lockean property rights as operating in a kind of vacuum where we need not really consider how property acquisitions affect the people around us. As we can see, Lockean property theory is not separable from substantive considerations about the public good and human welfare, as well as the context in which a potential acquisition is to be made. 
The Lockean proviso can be very radical, and it serves as a serious wild-card factor for this property theory. The proviso is clearly against ‘company towns’ in which the few actually own everything, and workers are merely ‘loaned’ residence, land, etc. People have a right to own enough to subsist (maybe even more). If Lockean property theory were correctly applied today, ownership rights would shift dramatically. Clearly, very few people actually own the things which are required to live life independently. By the proviso, we would need to significantly redistribute properties so that each person owned what was required to live life independently. Parallels between material objects and immaterial objects are subject to the proviso. In order to successfully extend general Lockean property theory (which deals in physical objects) to an intellectual property theory, that extension must satisfy the proviso. 

Each of the components has their own set of associated problems and interpretations. Not every Lockean property theorist will buy into all the components I’ve listed, nor is there agreement upon how exactly each component is defined and structured. Consequently, Locke’s theory has ambiguities and can be developed in numerous ways.

We build extensions upon the foundation of these various components of the original Lockean property theory, namely self-ownership, labor-mixing theory, value-adding theory, and the proviso.

''1.3 - The Intellectual Property Extension of Locke’s General Theory''

One of the underpinning claims of Lockean intellectual property theory, a claim which appears to enable an extension of modern interpretations of Lockean physical property theory, is the notion that the fruits of thought, design, engineering, and other intellectual labors belong to the laborer. Lockean intellectual property theorists believe this notion of physical labor and physical property acquisition extends nicely into the realm of intellectual labor and intellectual property acquisition.<<ref "9">> In the general Lockean property theory, these justifications substantiate why one acquires an unowned physical object through mixing physical labor with the object. In the intellectual property extension of this general Lockean theory, the Lockean intellectual property theorists believe these justifications also substantiate why one acquires intellectual property rights through intellectual labor.<<ref "10">>

What exactly are the fruits of intellectual labors? At first glance, it would seem as though intellectual objects are the fruits of intellectual labor. These abstract ideas and intellectual objects are intangible, immaterial things which may actually be the fruits of intellectual labor, but the intellectual property theorist must demonstrate why this type of fruit is the sort which can be owned. It is not immediately obvious that one can own such objects.

A general claim that “one’s intellectual labor should entitle one to have a natural property right in the finished product of that work, such as a novel, a computer program, or a musical composition” is compelling to many people.<<ref "11">> The claim, however, is ambiguous. It is not clear that the intellectual commons is parallel to the commons of the physical aspects of reality. 

Are we enclosing intellectual objects or the tangible expressions (the physical manifestations or representations) of those objects ‘from the commons’?<<ref "12">> It looks as if the extension of Locke’s account of property could be developed in two different ways. The strong enclosing thesis is claim that we enclose the intellectual objects themselves from the commons (this is the primitive view). The weak enclosing thesis is claim that we enclose particular physical expressions of intellectual objects from the commons, and yet somehow we gain control over access to the corresponding intellectual objects, as well.

''1.4 - The Strong Enclosing Thesis''

If we hold the strong enclosing thesis and the discovery claim, then intellectual objects are directly owned by their discoverer, e.g. algorithms, mathematical truths, and scientific notions would belong to their discoverers. If we aren’t creating intellectual objects, but only discovering them, it does not appear as if Locke’s theory would support our owning them, as we did not really mix our labor in them or add value to them. Remember, Lockean labor-mixing requires that we have added value to the object. Intellectual objects are unmodifiable and invariable – they cannot be altered. One cannot add value to these intellectual objects as one can add value to physical objects. Since intellectual labor cannot add value to intellectual objects, intellectual labor does not qualify as Lockean labor-mixing, the only sort of labor-mixing which results in legitimate Lockean property acquisition.

Because of this, it seems as if the strong enclosing may stand on firmer ground if we understand the intellectual objects to have been created by their owners. If we think about intellectual property in terms of adding value, a reasonable component to consider in this case, at first glance it appears that such creation can add value to the universe on this view.  Unfortunately, the adding value condition in Lockean thought really seems to be found in a certain type of labor-mixing which is concerned with transformation of present objects into a new object. This type of intellectual object creation does not really parallel any kind of labor-mixing in the physical world. When dealing in physical properties, there is a story we can tell about how physical objects were transformed (with value added) into new physical objects. What is unclear is how a similar story could be told for intellectual objects. The mechanics in the general Lockean property theory, which are concerned with physical objects, do not seem parallelable to the realm of intellectual objects. This is a serious problem for the combination of a creation view and the strong enclosing thesis. 

Furthermore, the Lockean proviso likely pushes us even further away from the strong enclosing thesis. For example, the public good would be deeply harmed if we were to recognize the ownership of mathematical truths. It would be difficult (perhaps even impossible) to function in life without implicitly or explicitly using math. How can we live if the rightful owner of a fundamental and vital mathematical formula (e.g. 1+1=2) does not provide consent for the rest of us to use it? A Lockean property right, when granted, is profoundly strong, and it is for this reason that the proviso is there to make sure we can live with the rights that are actually granted. The problem identified within this math example would apply to many other intellectual objects as well. Perhaps not all intellectual objects activate the proviso’s protection of the public good, but it seems as though a significant portion of intellectual objects, particularly those most important to living a human life, are protected from hypothetical acquisition by the proviso.

The strong enclosing thesis has also been criticized by Kai Kimppa who explains:

<<<
The reason ownership is needed is that material resources are scarce, and thus everyone cannot necessarily own everything they would want to. This does not hold true for the immaterial. The immaterial is unlimited, and everyone can own as much as they want to at the same time. No one is deprived of ownership in what he or she has if someone else owns the same immaterial as well…Locke needed the material to be divided amongst people because it can not be owned by many at once…the immaterial need not be owned as it can be used by as many as have a need for it.<<ref "13">>
<<<

This criticism points out why we cannot parallel the material and immaterial realms. The non-rivalrous feature of intellectual objects is precisely why we don’t need a property theory for them. Locke’s theory does not favor the ownership of intellectual objects. Because intellectual objects are non-rivalrous, they do not meet the conditions for the sort of objects for which we require a property theory. While Locke would agree that you can own a CD, the physical instance or manifestation of an intellectual object(s), he would not agree that you could own the intangible, intellectual objects represented or manifested on the CD. Locke would not have favored the strong enclosing thesis, but he could, perhaps, agree to the weak enclosing thesis.

''1.5 - The Weak Enclosing Thesis''

Although the strong enclosing thesis may be the initial and primitive view, a temptation for Lockean intellectual property advocates, enough problems emerge from the various Lockean interpretations that the weak enclosing seems to be the more common view to hold. Instead of directly owning abstract intellectual objects, one might argue that ethical rights (and, subsequently, legal rights) regulate material expressions. The weak enclosing thesis takes this path. By regulating material expressions, granting creators or discoverers a set of rights to material expression, we somehow effectively bring about a kind of ownership to the intellectual objects which correspond to these material expressions.<<ref "14">>

A Lockean intellectual property theorist holding the weak enclosing thesis will agree that there is no direct intellectual property ownership, but instead will claim there is an indirect ownership of intellectual property. The pseudo-ownership claim performs the conceptual heavy-lifting in the weak enclosing thesis. This is the claim that we can get at the indirect pseudo-ownership of intangible, intellectual objects by directly controlling all of the various possible future physical manifestations or expressions of an intellectual object which happen to be similar enough and related to the original creation or invention.<<ref "15">> There is no direct ownership of an intellectual object on this view, but indirectly the regulation and direct physical property right to any possible physical manifestation of an intellectual object entails a sort of indirect pseudo-ownership over that intellectual object. 

While the initial objects of intellectual property are the intangible, intellectual objects, by the pseudo-ownership claim, it is actually the corresponding expressions which are at the heart of Lockean intellectual property theory. The thinking is that by extending the physical Lockean property theory far enough, indirectly regulating intellectual objects, we can produce a kind of Lockean intellectual property theory. Technically speaking, since the intellectual object is not owned on this view, if there was a way to get at intellectual objects without producing, using, or distributing corresponding physical expressions, we would not be violating any weak enclosing thesis property rights. In practice, however, it appears as though indirect ownership results in the same consequences as direct ownership of an intellectual object.

When the electronic music duo Daft Punk produces an instrumental song, they are essentially discovering or creating some abstract intellectual object. The physical expression or manifestation of this original intellectual object might be a series of 0’s and 1’s on a CD or hard drive, or it may be recorded on analog cassette tapes, or it may be written down on paper in traditional music notation. Daft Punk directly owns this physical object. But, by the pseudo-ownership claim, they acquire an indirect intellectual property right to this original intellectual object. They don’t directly own the intellectual object per se, but they have the exclusive rights to produce, use, or distribute expressions of that intellectual object. This right is not over the intellectual object, but rather a right over all current and future possible expressions of that object.

Vitally, Daft Punk’s intellectual property rights indirectly protect not just one very specific intellectual object (the original), but in fact a set of them, a set of ideas which are close enough in identity for us to call them roughly the same. In essence, we are claiming that by directly discovering or creating the original intellectual object, Daft Punk also indirectly discovers or creates a set of similar intellectual objects. Exactly how similar the members of the set must be in order to maintain membership is not an exact science worked out by intellectual property theorists, legislators, or judges (they really should provide an account or heuristic device in this day and age). Daft punk does not directly own this set of ideas per se, but they have the exclusive rights to produce, use, or distribute expressions of any member of this set of intellectual objects.

Excepting expressions of the original intellectual object, the manifestation or expressions of any member of this set of intellectual objects are derivative works. By producing the original physical manifestation, Daft Punk generates the indirect intellectual property right to a corresponding set of intellectual objects. Importantly, Daft Punk directly controls and owns the current and future expressions, essentially derivatives and duplicates of the original expression, of any member of this set of intellectual objects. If I were to produce, use, and/or distribute my own rendition of this Daft Punk song, which would certainly be an expression of one of the abstract objects in this arbitrarily large set which Daft Punk discovered or created, I would be violating their right of direct ownership of all possible expressions or manifestations of the set of these intellectual objects. 

''1.6 - Critique of the Weak Enclosing Thesis''

First, it is unclear how one comes to directly own future expressions – physical objects which do not yet exist. This does not parallel the general Lockean property theory at all. Why should we make the leap made in the pseudo-ownership claim of the weak enclosing thesis? A Lockean intellectual property theory which claims agents can own future objects isn’t in line with the original thinking we see in the general Lockean property theory.

Unfortunately, the weak enclosing thesis isn’t really an intellectual property theory at all. On the weak enclosing thesis, ownership is concerned with material objects, and despite this set of objects being related to intellectual objects, no headway has been made into establishing a proper intellectual property theory. Extending the general Lockean property theory with the weak enclosing thesis does not actually extend the type of objects which can be owned -  only tangible items, including the particular expressions of intellectual objects, can be owned. Nothing abstract or intangible is ever owned or protected. This doesn’t even sound like an intellectual property theory – it really functions as an unnecessary and incompatible extension of the extended physical property theory. The extended Lockean property theory can already make sense of the physical property rights, including rights to manifestations or expressions of intellectual objects. 

If it is true that one cannot own intellectual objects, but rather only the expression of those intellectual objects, then it seems possible to create new (even if identical to other) expressions of intellectual objects without violating the so-called intellectual property rights of other expression-holders. That is, there may be multiple expressions of one intellectual object, and my rights to expression-A do not negate your rights to expression-B. Moreover, we all have “enough of” and “as good as” left over for further expressions. If this instinct is correct, then Lockean intellectual property theories and laws which employ the weak enclosing thesis are untenable. 

To put it another way, you may take a tree, chop it down, shape it into lumber, build a chair, an you come to own this chair by mixing your labor with its ingredients. It would be easy to show that you’ve violated the exclusivity rights derived from the pseudo-ownership claim. Surely, someone had to think of and build the chair - there is a form and an idea of a chair – it is an invention. Yet, even Lockean intellectual property theorists are not willing to attribute ownership of all possible expressions of the idea of a chair to the inventor. They don’t wish to apply the pseudo-ownership claim in this case, and instead we apply regular Lockean property theory. The next day, your neighbor is fully within her rights to chop down a tree, and so on, and build her own chair. She has not violated your rights to your chair, nor have either of you violated the first chair-creator’s rights to his chair. 

Why should any other invention or creation which corresponds to an intellectual object be different? For example, you may write a piece a music in clay tablets, and by even traditional Lockean property rights, you already own that tablet, as you have mixed you labor with ingredients (some you already owned and some you perhaps didn’t before mixing). You’ve added value to the clay by forming it into a tablet and further by writing music notation upon it. Why can I not do the exact same? The rewards of my labor in building either a chair or a musical clay tablet are the expressions themselves. The reward of creation, at least on the Lockean view, is not one’s ability to monopolize and preclude others from building identical or similar expressions for themselves. My production of a thing, my mixing of my labor with ingredients, does not preclude others from doing the same, even identical action. 

Furthermore, the weak enclosing thesis may be contrary to the Lockean proviso. Even if we were to accept the validity of indirect ownership and monopolies over intellectual object, the proviso would be activated, preventing the acquisitions which would lead to the indirect ownership of the most important intellectual objects. It is difficult to know which intellectual objects are protected by the proviso. At the minimum, appropriate interpretations will try to isolate which intellectual objects are necessary for subsistence, well-being, and ‘good and plenty’ conditions for the public in implementing the proviso. The chair example is a useful marker for considering this minimum protected by the proviso. The chair is not obviously necessary for subsistence, and yet it is still, by and large, protected – probably by the proviso. The Lockean proviso likely provides protection from indirect ownership to an expansive set of intellectual objects. 

''1.7 - Conclusion''

In this chapter, we’ve delved into so-called Lockean intellectual property theory. The notion that the material realm is parallel to the immaterial realm appears false. It does not seem as if a direct ownership of intellectual objects (as in the strong enclosing thesis) is possible. Indirect ownership of intellectual objects (as in the weak enclosing thesis) does not appear to be an acceptable or consistent extension of Lockean property theory, either. There are gaps in the so-called Lockean intellectual property theory which have not been justified. 

It appears as though Locke’s argument does not motivate intellectual property at all. It is fine that a so-called Lockean intellectual property theory is not purely Lockean, but advocates must still explain and justify their theory. Since they have not justified their stance on purely Lockean grounds, they must provide some other basis or foundation before one can accept their theory. 
In the next chapter, we will tackle the primary argument which has become hybridized with Lockean mechanics: utilitarian economic intellectual property theory. 

''CHAPTER 2. – UTILITARIAN ECONOMIC THEORY OF INTELLECTUAL PROPERTY''

''2.1 - Introduction and Scope''

This chapter provides an examination of the mainstream utilitarian economic theory of intellectual property rights employed by most first world, western nations. This theory claims that governments should assign strong, artificial intellectual property rights to creators, inventors, and discoverers and intensely enforce these rights against violators. This practice of assigning and enforcing strong intellectual property rights is believed to maximize the incentive to create, innovate, and discover. It is assumed that by maximizing these incentives, we will maximize the quality and quantity of social goods generated. In turn, maximizing the quality and quantity of social goods is believed to be a necessary condition for satisfying the principle of utility.

This chapter will limit its scope to the economic views (of which there are many, but notably Chicago-style, free market economics) which use utilitarian arguments to justify either the status quo or even the expansion of current intellectual property rights of inventors, creators, and discoverers in predominantly American and European intellectual property policies. Essentially, I’m examining a monolithized version of the views and perspectives of various groups and individuals in power, and I think this constructed theory represents the dominant intellectual property theory we face today. 

The mainstream theory should not be confused with utilitarian economic theories advocating diminished, but not eliminated, intellectual property rights. Diminishing intellectual property rights theories are neither mainstream nor applied in the economic and legal policies of first world, western nations. This chapter is a response to the intellectual property theory that is actually being applied in our society. Excepting a few diminishing IP rights theorists and the Pirate Party (a tiny, nearly powerless political minority), the general battle cry of American and European legislative, judicial, and corporate bodies has been one of preserving the status quo of intellectual property rights, if not escalating these rights (which we’ve seen in recent years). The theory and thought of those who are in power, both maintaining or seeking to expand the status quo, are what is being questioned in this paper.

Assuming certain side-constraints can be satisfied (such as not violating primary human rights, etc.), it seems acceptable that governments should regulate property acquisitions and transfers so as to maximally satisfy the principle of utility. I hope to demonstrate how the currently employed utilitarian economic theory of intellectual property actually fails to satisfy the principle of utility. 

''2.2 - Focusing on Incentives''

Does the mainstream utilitarian economic theory of intellectual property rights “live up” to the general utilitarian standard? First, we must consider the basic structure of the argument for the more common utilitarian economic theories of intellectual property:

#Assuming side-constraints that human rights are satisfied, society should adopt legal regimes or institutions if they are expected to yield the optimization of aggregate social welfare. 
#Legal Regime X, which does not violate fundamental human rights, is expected to generate the most incentive for the production and creation of intellectual works.
#Maximally incentivizing the production and creation of intellectual works contributes to the optimization of aggregate social welfare. 
#Therefore, Legal Regime X should be adopted.<<ref "16">>

The mainstream view believes a legal regime that provides authors, creators, and inventors with extensive intellectual property rights and control over their productions will fill in for “Legal Regime X” in the above argument. Essentially, Legal Regime X, on this view, is either the status quo or an expansion of current intellectual property right. Currently, the duration of federally regulated intellectual properties in the United States is as follows: a patent lasts from 14-22 years (depending on certain factors), and a copyright for the life of the creator plus 50-75 years (with a few rare exceptions, such as copyrighted government documents).<<ref "17">> Qualitatively, patents are the strongest type of intellectual property right, enabling very strict exclusivity rights defined both by litigation and a patent granting institution. Copyright also has extensive exclusivity rights, but within a limited scope defined by the results of litigation.  The set of objects which can be copyrighted is narrower than patents and there are fair use exceptions.<<ref "18">> These are example qualities and durations of intellectual property rights found in the status quo. We must consider whether or not this regime really satisfies the conditions in the basic argument above.

Notice that one may provide an argument in favor of intellectual property rights similar to the mainstream view without requiring rights which last the same duration or which carry the same quality of rights. For example, diminishing intellectual property rights theories claim Legal Regime X is a legal regime that provides authors, creators, and inventors with more limited intellectual property rights and control over their productions. If they are correct, and utility is maximized via less extensive (yet still extant) intellectual property rights, then the mainstream view does not live up to its general utilitarian standard. 

One fallacious argument for extensive intellectual property rights commonly offered by primitive utilitarian economists is that without intellectual property rights content creation and innovation will virtually disappear.<<ref "19">>  This is derived from a common assumption in primitive utilitarian economics that altruism does not exist – they assume human nature rules out virtually all altruistic actions, including creating and innovating for reasons that are not directly in your self-interest. But this is clearly an implausible view. Whatever effects would accompany changes to the current intellectual property regime, innovation and content creation won’t simply disappear. If that were true, then there would have been no intellectual production prior to the adoption of the current regime. 

More sophisticated utilitarian economists accept that there are other motivations for content creation and innovation beyond the monopolization of profits. Consider the Free Software movement. Within this movement, numerous authors, creators, and inventors of scripts, programs and devices demonstrate that significant innovation and content are created without economic motivation. Many choose to copyright and/or patent via GNU, Creative Commons, or the Apache licensing systems; others totally forgo involvement in the copyright/patenting process. There are people who genuinely give content away for no other reason than because it is a good thing to do. People innovate and create, essentially promoting the greater social welfare, without seeking or needing financial gain or monopolized control over intellectual objects. Artificial incentivization is not necessarily required.

The real question is this: Would there be less content creation and innovation, or even more specifically, the incentive to do these things, without the mainstream utilitarian economic intellectual property rights? It depends. If we did not replace it with anything, then it looks as though there could be less content creation and innovation. But if we replaced the intellectual property rights system with an alternative reward system, we still have artificially generated incentive to create content and innovate.  Some economists, for example, argue that we can just as effectively generate these incentives “through private patronage by tax-exempt foundations, universities, and the like, or even by government support.”<<ref "20">> 

Further, a number of economists have explained the efficacy of alternative systems. For example, one study suggests intellectual property rights are strictly inferior to at least hybridized incentive systems (made from elements of both intellectual property and reward systems) and possibly inferior to well-made reward systems in producing maximum incentives and social advantages.<<ref "21">> 

Note that we already some successful forms of the reward system in place in the form of public research (including at many universities), and this reward system could be expanded to be the exclusive option. A rewards system may very well be the appropriate Legal Regime X. Incentivization can be handled without resorting to an intellectual property system. What remains is a choice between two general systems. In an intellectual property system, intellectual objects are monopolized, and the utility generated by these objects is bottlenecked by the consent (which must be bought) of monopoly and oligopoly holders. In a rewards system, access to intellectual objects is completely open, and utility generation is not bottlenecked; everyone who wants to benefit from and use intellectual objects is free to do so. Even if the incentivization of a rewards system was less effective than an intellectual property system (which isn’t even the case), the utility generated by the rewards system might be greater than the intellectual property system because of the difference in bottlenecks. 

Furthermore, without even trying to find Legal Regime X, we can consider whether or not the general argument is even correctly postulated. Premise 3 (the claim that maximally incentivizing the production and creation of intellectual works contributes to the optimization of aggregate social welfare) is not obviously true. Maximizing incentive to produce and create intellectual properties does not obviously lead to maximizing aggregate social welfare. It may be safe to assume that some form of artificial incentivization is necessary for satisfying the principle of utility, but it isn’t clear that the sort of system which maximizes incentives is really going to lead to maximizing utility. 

Unfortunately, incentivization issues have dominated the general utilitarian economics deliberations, and distributive concerns have taken a back seat in many utilitarian approaches (with some notable exceptions like Peter Singer). The costs of incentivizing, particularly in using an intellectual property system, may be much greater than is realized, and the end distribution of goods and the sum total utility in the world may be far lower than we’ve realized. It may be that the focus on incentivization sometimes blinds us to the larger issues at stake. 

''2.3 - Globalization and Utilitarian Distributions''

When we set aside incentivization, at least for the moment, and instead focus more upon the underlying utility rationale, it seems that the policies which have shaped the status quo are not living up the utilitarian standard of welfare maximization. Today’s policies have not distributed social goods evenly enough across the global population.<<ref "22">> Wealth, including intellectual properties and the industries built on these intellectual properties, is largely held by a tiny minority. This wealth inequality is in no small part a product of our current intellectual property rights. 

Given the principle of diminishing marginal utility, the intuition is that utilitarian distributions should be fairly even, or at the very least, these distributions should likely be concerned with those who have the least. There are diminishing utility returns for each subsequent unit of a social good. The first $10,000 of wealth will yield more utility than the next $10,000 of wealth. Surely, the resources necessary to survive will produce far more utility for an agent than the same amount of resources added to wealth of someone who already has more than enough to survive. By this principle of diminishing returns, you will likely get the most utility by maximizing the wealth of the poorest. These diminishing returns are the heart of calculating the sum utility of any distribution of goods, and it is one reason why utilitarian economic thought cannot justify the status quo.

Having a small minority living in abundance while most live far below that standard, many in abject poverty, is difficult to defend from a utilitarian point of view.<<ref "23">> Economic regimes which claim to be utilitarian have the work of explaining and promoting wealth inequality cut out for them. The distribution generated from the current intellectual property system is not utility maximizing. Wealth inequality, in no small part based on intellectual property distribution, is simply too great. 

Economists may argue that wealth inequalities aren’t necessarily bad because wealth at the top eventually ‘trickles down’ to the global poor – i.e. the poor have the best distribution of all economic policies when we implement the (Chicago-style) free market and extensive intellectual property rights.<<ref "24">> This claim, however, is extremely contentious. There are many schools of economic thought which outright reject this laissez-faire, libertarian approach. The idea that vast wealth inequality is not utility maximizing is not a new one. The global poor are not receiving as much as they could under our current economic system. I contend there are better distributions of goods, including a distribution of intellectual property goods which yield more utility, available to us.  Our mainstream, extensive intellectual property regime which is currently place is a barrier to maximizing global utility. 

Unfortunately, the globality of utility is often forgotten by economists who are seeking to improve their own nation’s utility, even at the cost of the sum total global utility. Somehow, many economists seek to perform utility calculations at a national level. Utility is global, not nationalistic. <<ref "25">> This changes the practical details of economics and the legal issues at stake in a big way. The sorts of laws, such as intellectual property laws, which maximize a nation’s utility are different from the sorts of laws necessary to maximize global utility. Rich nations and wealthy people are going to need to sacrifice, giving to the poor and building infrastructure for the deprived. We need laws, including those which govern intellectual objects, which force us to give to the poor, if we truly wish to see utility maximized.

Given the nationalistic approach to utility, it is easy to see how intellectual property rights are somehow acceptable and not obviously causing so much harm within first world nations. Most of the damage is dealt to third world nations. From a global perspective, it becomes far more obvious why mainstream utilitarian economic intellectual property rights, rights conjured by first world nations, are harmful and not maximizing (global) utility.

Pharmaceuticals are the classic example of this harm. In a first world nation, a significant portion of the population (particularly in first world nations other than the United States) can afford the prices of medicines set by those who control the intellectual property rights. This is not true in third world nations. If you are making $2 a day, you can’t buy medicine with prices artificially raised to $50 for a month’s dosage, a price set by the monopoly over the intellectual property rights to a medicine. An economist will argue the efficient market hypothesis is supposed to make sense of this, explaining that price models will take into account what third world nations can pay. Unfortunately, even with drastic price reductions, many medicines won’t provide profit margins in the poorest nations. 

Economists might argue that if it is so important that we help these people, then we shouldn’t punish intellectual property owners; rather, in order to maintain their incentives, we must instead use first world national public funds to buy products from these monopoly controllers and outright give the products to third world nations. We’d have to trust that monopolies would not price gouge, which would create a gigantic inefficiency in the market (that’s a serious flaw in granting intellectual property rights). Even if intellectual property holders didn’t price gouge, this middleman process likely forms another (although slighter) market inefficiency. Essentially, public funding of this sort is just an inefficient kind of the reward system. You would see higher market efficiency in a straight-forward reward system, which would then subsequently generate higher social utility; but to do this, would necessitate relinquishing the current intellectual property system.

Setting incentives aside, the fundamental problem with intellectual property rights is the formation of monopolies. Monopolies are innately inefficient for the market. Poor distributions result from monopolies. A rewards system does not form monopolies, it does not have the same degree of inefficiencies we see in the current intellectual property system, and we’d see better distributions through a rewards system. 

If prices are kept artificially high, then demand (people willing to pay that price) will be low; subsequently, the utility produced will be low. If you choose not to allow monopolies of intellectual property objects, prices will fall exponentially, demand and the fulfillment of that demand will rise dramatically, and utility will be increased. As for the overall economy, my money is going to be spent. It doesn’t have to be spent inefficiently on goods that are artificially priced. 

In our current economic scheme, I legally have to pay for objects protected by intellectual property laws. I have finite and very limited resources, which in turn means I can only buy a very limited number of these objects. Obviously, I receive some amount of utility from each object, and because I can only buy a limited number, my potential utility is also limited.  An efficient, rational shopping strategy is currently the only legal way to maximize the utility benefit of my limited resources. Yet I am not generating nearly as much utility as I could if I had unlimited access to these objects. 

Duplication and distribution costs are virtually zero for a significant portion of objects currently protected by intellectual property laws. Prices to these goods are artificially higher than they would be in a natural market – that’s what the intellectual property law does: it creates monopolies which enable rights-holders to raise prices astronomically beyond marginal costs. The monopolization of intellectual property objects prevents society from realizing the benefits of a new digital, networked infrastructure in which duplication and distribution costs of these objects have plummeted. Old business models do not belong to this new infrastructure, nor do the laws which protect those monopolistic models. Society is being price-gouged, and utility is not being maximized.

The financial cost of artificially incentivizing innovation and creation will always be there. Do we wish to pay this cost in terms of highly abusable monopolies via an outmoded intellectual property system belonging to a time and place where duplication and distribution costs were generally a higher portion of total production costs? Or, alternatively, should we use other modes of artificially generating incentive, such as reward systems, which can produce the same degree of incentive for the same financial cost without the baggage of monopolization? It seems like the latter option generates more utility.

Consider the difference between the utility of 50 million people having a logic book on their shelf or computer to the utility of 5 billion people having a logic book on their shelf or computer – the difference in utility would be enormous.<<ref "26">> The major economic reason only 50 million people (or whatever the exact number might be) have a logic book on their shelf or computer is that demand is restricted by having a price, an artificially high price set by those who have a monopoly over its production, a monopoly granted by intellectual property rights. Without those intellectual property rights, prices would drop – the digital version would be virtually free and available to everyone with an internet connection, demand would certainly surge, and ownership rates would also rise. Imagine the utility to be gained for if all intellectual properties were released into the public domain. It wouldn’t be just copyrighted works, but patented as well, a key to technological innovation and economic mobility. The first world can give the proverbial “keys to the kingdom” to the rest of the world.<<ref "27">> This is the opportunity cost we forego, an alternative with substantially higher utility, in accepting and implementing the mainstream utilitarian economic theory intellectual property.  

''2.4 - The Prisoner’s Dilemma''

An additional, complicated aspect of distributions from a utilitarian economics perspective is the matter of how we employ predictive thinking in our models. Economists may see the distribution of goods as a gigantic prisoner’s dilemma. In this prisoner’s dilemma, multiple parties have the choice of whether or not to cooperate. As long as they all cooperate, even if it requires personal sacrifice, the highest sum total utility is attained. The problem, according to rational choice theory and an assumption of egoism, is that parties are predicted to not cooperate, and thus a lower total utility is achieved. 

The mainstream view might admit that, theoretically, a distribution of goods which generates more utility than our current intellectual property system is available in this prisoner’s dilemma, but practically, it is not really available to us because of our so-called rational selfishness and egoism. Utopia (the derogatory term for this option in the prisoner’s dilemma) is theoretically there for us, but practically it is not – too many people do evil things and that cycle is predicted to continue. The claim is that because humans are selfish egoists, any property system like socialism is morally unacceptable to pursue, as it does not, by our predictions, result in maximum utility. On this view, our current property rights system, including intellectual property rights, are the way to go.

But, notice, this system is chosen in virtue of the assumption of egoism. Economists assume altruism is not the rational choice. Selecting the selfish and egoist option in the prisoner’s dilemma seems to be the practical thing to do, perhaps even the moral thing to do, and thus we should design and use an intellectual property system which harnesses these predictions. The mainstream intellectual property system is thought to harness our predicted selfishness. Sadly, this is no longer about what we ought to do, but more about what we predict others will do. It does not give humanity the chance to do what is right. It is a game, a game in which I predict you will do what is wrong, and I do not respect your autonomy or ability to do otherwise, and I pre-emptively wrong you and others.

I remain unconvinced from a purely theoretical perspective that the intellectual property system is the result of properly employing the utilitarian model. It still may be the case that we are morally obligated to do something, to choose an action which hinges upon the synergy of others doing what is right, even if we can practically predict that other people will not do what they are morally obligated to do. If this is true, then clearly our obligations and rights are not about predicting how others will act (as in the case of the prisoner’s dilemma), but rather expecting how others should act. Consequently, it may be correct upon this very theoretical utilitarian view to not employ an intellectual property system, and if one is in place, perhaps we not obligated to obey intellectual property laws; rather, we may be obligated to pursue a type of weak socialism (a topic to which many people have become allergic without necessarily having done prior, reasonable reflection).

On this theoretical view, utility clearly selects a system which is far more utopic. Even if Utopia, or whatever is nearest to it, doesn’t come about, perhaps we are still bound to aim for it from the utilitarian perspective. If this is not true, and if we should use predictions (to what extent I do not know) to inform our normative policies, there are other serious problems for the mainstream theory. If you are unconvinced by the prisoner’s dilemma issue, the practical matter of enforcement may be yet another critique. 

''2.5 - Unenforceability''

Intellectual property rights, at least as they are granted in the current implementation of utilitarian economic theory, are not fully, and practically enforceable. We can have intellectual property laws on the books, and we can stop some infringement, but in a digital and globalized world, intellectual property rights are increasingly unenforceable. As we shall see, the issue of enforceability of intellectual property claims introduces great complexities for a utilitarian justification of intellectual property rights. 

Protecting physical property is far easier than protecting intellectual property. Fences, cages, buildings, safes, locks, physical access, transportation, and physical forensics are stable and effective means to protecting and enforcing physical property rights. Further, involving authorities in physical property theft is easy to explain and prove – it is kind of theft which we can somewhat easily make sense of in lawmaking, law enforcement, and judging law. Physical property rights are enforced fairly well. That doesn’t mean there isn’t any theft of physical goods, but seems as if we have a decent track record of maintaining the lion’s share of physical property rights at acceptable costs of enforcement.

Intellectual property, in contrast to physical property, is far more difficult to protect. Enforcing intellectual property rights is too often not possible. For example, imagine a person invented a power loom in England. No other country has one which is nearly as successful. The inventor can stop people from stealing the physical power looms themselves, but can they protect the intellectual property of this invention? Along comes Francis Cabot Lowell who travels to England, memorizes the schematics of this power loom, travels back to the United States and rebuilds from memory (with the help of a master mechanic) an identical power loom. He and everyone else like him are infringing on the inventor’s intellectual property rights to the power loom. No one could stop him. 

One side note: would we even want to stop Lowell? He is one of the fathers of the American industrial revolution. Other nations have their own fathers, many disregarding intellectual property rights. Isn’t infringement often necessary for improving the world? This scenario has been played out over and over (and over) in the history of intellectual property. It will continue. It is unstoppable. 

Consider another example: perhaps a person has a book published and printed. Printshops and bookstores have feasible, practical, and consistent means to protect the physical property rights to these physical copies of his book. Contrast these paper copies to the digital copies he also sells on Amazon.com. He’s taken the proper precautions, using Digital Rights Management (DRM) tools to attempt to stop piracy. The fact remains that in minutes, anyone can strip that DRM off a digital copy and anonymously distribute DRM-free copies of his book – infringing on his copyright. Digital media is pirated behind nearly impenetrable proxies with encryption to thwart packet shaping. There are too many clever people who are well-protected, using decentralized networks to distribute these infringed goods – infringement, even from those who have taken precautions, can’t be stopped. Even if he went so far as to not release/sell a digital copy for concerns of piracy, it wouldn’t help. A pirate can borrow a physical copy and spend an hour generating high-resolution scans of the book with an AI that translates text images into searchable ASCII (essentially reproducing the PDF the author has sitting on his hard drive). Enforcing these intellectual property rights, unlike physical property rights, is often impossible. Even where it is possible, it often isn’t feasible. The cost to intellectual property rights enforcement may be too high.

Even if one attempted to lock down society (let’s assume one somehow found a way to do it without violating human rights), it is very possible that intellectual property infringement is to some degree economically the better thing to do. There are studies and models which show that the costs of complete intellectual property infringement deterrence are not economically preferred.<<ref "28">> Infringement without guaranteed repercussion should be preferred from the enforcement perspective. Unfortunately, the mainstream view sees punishment for infringement as always being worth pursuing. Copious amounts of economic and legal resources are directed toward enforcing the utilitarian economic intellectual property rights in vain. Intellectual property rights enforcement is generally a waste of resources. Those resources should be put to better use; higher utility would be gained from not attempting to enforce what is essentially unenforceable. The solution is lowering the expected quality and duration of intellectual property rights, spending time and money enforcing only what is practical to enforce.

''2.6 - Market Inefficiencies and Barriers to Innovations from Intellectual Property Wars''

When it comes to the technology sector, a sub-economy historically dominated by intellectual property, we see a world in which intellectual properties (such as patents) are not doing the incentivization work we expect; rather they have been turned into bargaining chips in litigation. These bargaining chips are used to maintain an oligarchy of technology giants which monopolize the various regions of technological innovation space, largely preventing independent innovators from entering the market. 
Generally, technology giants are constantly violating each other’s intellectual property rights, but because each giant has a war chest of intellectual properties to levy against other giants, they stand in a litigation deadlock. Time and money are spent litigating rather than researching and developing. Patent wars slow down the innovation and creation of tech giants. The digital world is moving and changing very quickly, and our legal system is a barrier rather than a boon to innovation, even for giants.
Further, these intellectual property war chests are used to litigate (often unjustly) potential independent and smaller innovators out of the market. This oligarchy prevents the rapid change that we should be seeing from experts and inventors not employed by giants.

Google’s buyout of Motorola is a prime example of tactical patent hoarding used as defensive resources against other tech giants and as offensive tools against smaller companies. Would-be innovators are litigated out of the market. What is left is a market inefficiency of bargaining patents and litigation.<<ref "29">> Both the useless fighting amongst giants and the oligarchic, anti-trust practices against smaller competitors form major market inefficiencies, and limit the actual innovation and creation which takes place. 

Essentially, the intellectual property system we have engenders intellectual property wars, forming an obstruction to the innovation and creation we were expecting in sectors like technology. In turn, the utility principle is not being satisfied.
The innovations we do see today often exist in virtue of people ignoring (outright infringing, at times) intellectual property rights. 

The road of successful technology giants is paved with intellectual property infringement. Microsoft and Apple have a long history of it, from operating systems (Bill Gates clearly infringed upon Apple’s design), to hardware and interfaces (both companies and many others having infringed upon the innovations from Bell Labs), to devices like the touchpad (Bill Gates introduced one years before the iPad). This tradition continues between mobile device manufacturers and software producers. We see the same software, OS, and hardware mechanics at work in iPhones as we do in Android – they both have borrowed from each other. It is only by ignoring intellectual property rights that these devices have evolved so quickly.<<ref "30">> They could evolve even quicker if intellectual property did not exist. People will buy the device that implements an intellectual property (such as a patent) the best, regardless of who invented it. 

Patent wars are nothing new. The term dates back to at least to the 1920’s.<<ref "31">> Patent wars are becoming more and more prevalent, and more costly than before. This is not what was intended from intellectual property regimes, but it is the result. Intellectual property laws are highly susceptible to abuse. The rights we’ve artificially created are not doing the work we expect to them to do. Rather than incentivizing creation, they’ve pushed many who don’t have a billion dollar bankroll out of patent war-heavy markets because they can’t afford to litigate, even when justice would be on their side. As for the giants who can afford to litigate, it holds their creation and innovation back for years unless they simply continue to disregard intellectual property law. 

''2.7 - Conclusion''

I hoped to have provided doubts as to whether or not the mainstream utilitarian economic theory of intellectual property actually maximizes utility. The claim that the current intellectual property regime (or a regime which had even more extensive intellectual property rights) maximally encourages innovation or inevitably maximizes utility via innovation is extremely contentious. There are possibly alternative regimes which don’t include our current intellectual property rights which maximize incentive and utility. Further, this mainstream utilitarian economic theory appears to contribute the poverty and misery of the global poor. It is quite possible that abolishing intellectual property rights would immensely help the impoverished, and subsequently be a part of whatever economic regime actually maximizes utility. Lastly, the nature of intellectual property, in contrast to physical property, makes enforcement extremely difficult and results in inefficient use of resources. This is especially seen in the patent wars. 


''CHAPTER 3. – AN ALTERNATIVE INTELLECTUAL PROPERTY THEORY BASED ON HUMAN FLOURISHING''

''3.1 - Introduction''

This chapter is a sketch of an alternative theory or view of intellectual property based on neo-Aristotelian teleological and virtue concepts. The conclusions about intellectual property in this chapter will remain compatible with the conclusions I’ve drawn in the previous chapters, but will arrive at a similar perspective on intellectual property rights in a different way. This chapter is a sketch of a much larger project. I cannot explain or defend everything, but I hope to provide a loose framework and direction for this larger project, while pointing out major obstacles and important claims which require more explanation and justification.
 
I will offer a fairly traditional moral framework – not explicitly a virtue theory, but one with similar grounds. Within this framework I will argue for an obligation to intellectually flourish, which will be the source of particular intellectual property rights or lack thereof. 

''3.2 – Human Function and Flourishing''

The assumed framework for this chapter is a perfectionist, objective, and substantive account of the human good, our well-being, and excellence.<<ref "32">> I am not in a position to justify or even substantiate a complete account of the human good in this chapter. I rely upon teleological, aretaic, and eudaimonic concepts which I cannot wholly defend. Exactly all of what counts as human flourishing (eudaimonia) is not something I can flesh out in this mere chapter, but there are obvious examples of flourishing: nourishing ourselves, appropriately resting and sleeping, living as social creatures and citizens, and being sheltered. 

Various aspects of flourishing are less intuitive to some people. For the purpose of this chapter, which is concerned with reaching conclusions about intellectual property, I will assume and mostly focus upon the claim that being an excellent human specimen is largely predicated upon fulfilling our function as humans, a function deeply related to intellectual property.

One of the root assumptions of this chapter is that humans have a specific, shared, and species-wide function. In large part, I believe the fundamental, unchanging function of humans is the activity of thinking. Aristotle was basically right about this.<<ref "33">> We are thinking things–which is essential to who and what we are as humans. Humans exist to learn, to cultivate our minds, to ponder, to understand reality, to experience, to appreciate aesthetic beauty, to participate in political life and society, to read and watch and hear the ideas of others, to find truth, and to intellectually pursue whatever counts as being relevant and valuable. Our function is thinking, and that is the essence of being human. Fulfilling our function is a vital part of human flourishing or living well. Or one might say, following the influential work of Amartya Sen and Martha Nussbaum, that thinking is a fundamental human capability whose exercise is necessary for minimally decent human life.<<ref "34">>

I will refer to intellectual flourishing as fulfilling our function and living in accordance with reason. We might find such a perfectionist theory worrisome, in some ways. For instance, one might think we’ve boxed the human function in such a way that we lack variety or plurality of lives that can be said to be flourishing. Not everyone must fit a very specific cookie-cutter mold. There are topics about which all humans need to be literate and constantly engaging our minds (literature, math, politics, etc.). These are necessary intellectual realms. Not everyone, however, needs to learn to play a musical instrument or become a grandmaster chess player. Even music and chess, however, might sometimes be the only means to intellectual flourishing for someone. We must keep all avenues of intellectual flourishing open. Some people are suited to flourish intellectually in ways that others are not. 

Intellectual flourishing is one of the primary and necessary conditions for living well, but it is not the only condition. Human flourishing consists of some sort of balance between leading ethical lives, intellectual flourishing, and biologically thriving. The exact priority of each of these conditions to flourishing isn’t clear. It seems, however, that biologically thriving generally serves as a means to the other two, even if it is an end as well. Thinking and leading ethical lives (which may just be a subset of thinking and mental action) are primary. This line of thought is more or less aligned with Nussbaum’s approach and list of capabilities.<<ref "35">>

For one to attain eudaimonia, to maximally partake of the human good, to flourish as a human, and to live well, one must flourish intellectually. The good human life requires that we think and employ reason in the right ways, at the right times, about the right things, and to the right extent. Similar things can be said for the other conditions necessary for attaining eudaimonia. For instance, the good human life requires one to eat the right foods, in the right quantities, at the right times, and so on. 

These activities necessary for human flourishing are largely compatible with each other, often intertwined and deeply connected, and rarely at odds. There are, however, exceptions. For example, sometimes the ethical thing to do will require us to sacrifice our biological well-being. Such a sacrifice is morally right, but it does not lead to our own maximal human flourishing individually. 

Somehow we do not partake of the human good as much as we would have if we weren’t put in a position where we had to sacrifice our biological well-being. Human flourishing is not always accessible or practically available to us – sometimes it isn’t our fault that we aren’t flourishing.  Our well-being and the degree to which we partake of the human good is usually a mix between circumstances outside our control and some choices over which we do have control. Consider the following example.

Proper nourishment is a necessary condition for biologically thriving, and as such, it is a necessary condition for human flourishing. With respect to nourishment, a starving person in a third world nation is not living a good human life as effectively as a healthy, well-fed person who takes her vitamins in a first world nation.<<ref "36">> The starving person is eudaimonically impoverished; to some extent he isn’t flourishing as a human being because he isn’t biologically thriving. The well-fed person is a better human specimen in this respect. She isn’t a better human of her own volition (in large part) – rather, her flourishing and partaking of the human good is largely circumstantial. We must realize her choices about what are right and wrong are distinct from the degree to which she partakes of the human good. Circumstances, often outside our control, have a profound impact upon human flourishing. 

Being an excellent human and living the good human life likewise requires that we flourish intellectually. To not flourish intellectually is a supreme type of impoverishment. All else being equal, the man who knows algebra is a better human specimen than the man who doesn’t. Likewise, the woman who engages in systematic and disciplined thinking is living a better human life than the woman who does not engage in this activity. Humans who aren’t functioning as humans aren’t flourishing. This, of course, brings up worries. After all, do we really want classify one human being as intrinsically better than another, particularly when they had no choice in the matter?

Let us consider the case of a human with Down syndrome as a worrisome example for the eudaimonic model. A cognitively impaired human is not living the good life to the fullest extent. He lacks well-being to some degree. He cannot and does not completely partake of the human good. Since he has Down syndrome, he is not flourishing intellectually, and, therefore, he cannot fully achieve eudaimonia. I think we intuitively know this already – this is why sympathy and pity are appropriate responses toward a human with Down syndrome. Something vital is missing in the lives of the cognitively impaired.

The implications of the claim that such a person is not flourishing may cause us to cringe. All else being equal, this cognitively impaired human being is not living as well as a human who is cognitively functional. Again, assuming everything else is equal, somehow the cognitively functional man without Down syndrome is a better human specimen, leading a better human life, than the man with Down syndrome. Our impulse might be to deny such claims. Positing human inequalities, eudaimonic or otherwise, may lead us to draw false conclusions – talk of human supremacy has a very troubled past. The worry is that placing eudaimonic values on human lives, comparing each individual against an objective standard of the human good, while demonstrating that some humans are superior or more excellent than others, may somehow lead us to treat poor human specimens inhumanely and unethically. Such treatment, however, is not deducible from recognizing when, where, who, how and why various humans are better or worse human specimens, partaking of the human good in different degrees, than other humans. Eudaimonic inequality does not remove one’s fundamental human rights (or our duties to such people); as we shall see later in this chapter, eudaimonic inequality can actually bring with it many claim rights of the impoverished (to which others are obligated).

In examining the human good, we must define when, where, and to what extent a human is responsible for his or her lack of flourishing. To the extent that one is not flourishing because of Down syndrome, one is not at fault. Genetic circumstance, rather than choice, has forced this human into eudaimonic impoverishment. He is not accountable for his lack of human flourishing in this respect. Consider, however, how cognitive impairment isn’t always just a matter of circumstance – some people choose to permanently impair their minds. The person who regularly gives in to laziness (choosing not to learn and think) or habitually abuses a dangerous substance which impairs cognitive development is intellectually impoverished. These cases are different from the human with Down syndrome. The constantly lazy, or habitual users of dangerous substances, have elected to impoverish themselves intellectually, and as such, they are culpable to that extent. The issue of responsibility leads us to the next important assumption of this project.

''3.3 - Our Obligations to Flourish''

The distinction between the human good and what is morally right/wrong is essential to this theory. The standard by which we judge moral action is parasitic upon the human good. Our obligations and rights are grounded and interpreted in virtue of the human good. To partake in the human good is not always up to us, and yet sometimes it is. The degree to which others partake in the human good is not always up to us either, and yet sometimes it is. In those cases in which it is our choice to influence or determine when humans can partake of the human good (flourishing), rights and obligations are formed.

I take for granted that we as humans have extensive obligations to ourselves to flourish and to enable others to flourish. We are morally required to ensure that we as individuals are existing and growing as humans ought. Further, we should help others flourish as human beings, as well. Insofar as it is up to us, we are morally responsible to flourish as a species. 

This is not out of line with the neo-Aristotelian tradition. Our human telos, namely flourishing and living well, is not merely descriptive. It is the normative standard by which we judge the well-being of humans. These aretaic and eudaimonic concepts come pre-built with prescriptive powers. We are obligated to flourish, and as such we are obligated to take the means necessary to that end. Those conditions necessary for human flourishing form more particular obligations. We ought to lead ethical lives, we ought to thrive biologically, and we ought to flourish intellectually. A cascade of obligations flow out of these conditions for human flourishing. 

It is perhaps more intuitive to see why we have obligations to ourselves to flourish as individuals. Surely we should take care of ourselves and improve ourselves. We should not waste our lives. We are responsible for ourselves. Our obligation to flourish is almost common sense. Our obligations to others, specifically to enable others to flourish, are perhaps less clear and obvious. 
It seems easy to run into cases where interests conflict. For example, your personal flourishing is limited when you sacrifice resources to enable someone else’s flourishing. Exactly where and how we draw these lines of obligation are beyond the scope of this paper, but is an important obstacle to be dealt with when approaching my larger project. This worry of moral precision is complex. For this paper, I assume, even if I cannot justify or fully explain, that we have extensive obligations to others in virtue of their humanity.

Let us bring back our nourishment example. The starving person in a third world nation is not morally responsible for failing to flourish – there is no food available. To that extent, we cannot hold that individual accountable for not attaining or maintaining eudaimonia. The well-fed person in a first world nation, likewise, is largely not responsible for living in her circumstances, in this case, circumstances in which food is plentiful. We cannot praise the well-fed person for flourishing with respect to circumstances which are outside her control. The well-fed person, however, is responsible to eat healthily when possible and not in conflict with other duties. To that extent, the person is responsible for her personal nourishment and flourishing – she is morally praiseworthy insofar as she is responsible for her own successful flourishing and excellence. 

Each individual has responsibilities to nourish themselves, to thrive biologically, and to flourish intellectually insofar as they are capable. Being a good human, however, is not always up to us – sometimes being a good human requires others to help us, as in the case of the starving person, who requires our aid (which presumably we could provide). We who live in abundance have obligations to starving people. We must enable them to flourish. We must provide for them the means to attain the basic, vital, and essential conditions to human flourishing. We have more than just eudaimonic obligations to ourselves; we also have extensive obligations to others. Equivalently, starving people have extensive rights to receive aid and to be enabled to nourish themselves. 

Intellectual flourishing is similar. The person with Down syndrome is not morally responsible for not flourishing intellectually because of a genetic defect outside of his control. That person, however, is responsible for cultivating himself insofar as it is up to him. Furthermore, we have obligations to provide for him, to practically enable him to reach his potential. Conversely, people who are habitually too lazy to cultivate their minds or who capriciously and violently damage their minds are doing something immoral. They are responsible for these actions, and they are responsible for failing to flourish. 

Similar to the nourishment example, intellectual flourishing of our species is not just a personal obligation to ourselves, it includes an expansive set of obligations to others. Providing education (in a very broad sense of this term) and the resources necessary to flourish intellectually is our crucial and collective obligation to every human. Fulfilling our function as much as possible requires planning and infrastructure; it also requires that we invest in others. We are morally required to maximally enable our species to cultivate our minds and to fulfill our human function.

Flourishing intellectually is just as important as thriving biologically, perhaps even more important. It would be better to live as a crippled scholar than as an uneducated and willfully ignorant gymnast who has his health and is thriving biologically. Not only are we required to feed and nourish others’ bodies, we must feed and nourish their minds. We are doing something immoral by not enabling others to flourish intellectually, just as it is immoral to refuse to provide food, and/or ways to acquire food, to those who need it. 

This obligation to others has far reaching consequences. For the purpose of this paper, I wish to concentrate on the problem of obstructing others from flourishing intellectually. With some exceptions, it is generally immoral to prevent others from fulfilling their human function. It would be immoral, for example, to prevent poor children or a particular ethnicity from attending school, or reading books, or using the internet. These people are human, and like all other people, they have a right to have an education. Similarly, intellectual property rights, as we employ them today, are an obstruction to human flourishing, an obstruction for which we are morally responsible.

''3.4 – Ideas of Intellectual Flourishing as the Means to Flourishing''

The ideas protected by intellectual property claims, whatever they may be, are the ingredients and mediums of the human function. Ideas, concepts, designs, theories, books, music, movies, and whatever else is involved in intellectual property (and perhaps even more) are the very things which are necessary for intellectual flourishing. We must use and implement these ideas, many of which are artificially protected by intellectual property rights, to fulfill our function. 

These ideas are the building blocks of thinking. They are the necessary and fundamental components of fulfilling our human function. Without having the access necessary to use and implement them, we are impoverished, not just intellectually, but also biologically.

It is fairly obvious how the use and implementation of these ideas are necessary for our cognitive development. These are the primary objects of cognition. Ideas are directly used or handled in our minds. Material objects must be used or implemented to enable further cognitive development. Printed media has accelerated how we pass information and knowledge on to others. Music notation and sound recording devices have enabled us to pass on phonic art and original lectures and speeches. Video synergizes our senses, efficiently passing on cultural, aesthetic, and educational information to others. Reflect on what the abacus or computer has enabled in terms of intellectual flourishing. We would not be able to develop our minds and fulfill our intellectual telos without using and implementing objects of intellectual flourishing. 

Implementation provides other indirect benefits to fulfilling our intellectual telos as well. Take the case of Norman Borlaug, a man famous for changing agriculture around the world, many of us owe our lives to this man. Borlaug discovered or created the processes which doubled crop yields around the world. His work is not solely for academics or for the sake of Borlaug’s personal intellectual flourishing. The use and implementation of these ideas are necessary for human flourishing in other respects – directly impacting how we nourish ourselves as a species, and indirectly freeing up time and energy, while allowing us to pursue even greater intellectual flourishing. They open the gates to be better humans, individually and as a species. 

Ideas of all sorts are necessary to intellectual flourishing; they are instrumental means to our function, and also therefore to our end as human beings. To be obligated to achieve an end is to be obligated to the necessary conditions and means for that end. We are obligated to use and implement the objects of intellectual property because they are part of the necessary means to achieving intellectual flourishing. 

Granted, it isn’t clear how we know which intellectual objects are necessary as means to our flourishing, intellectually and otherwise. Some intellectual objects are clearly more relevant to our flourishing than others, and I’m unsure exactly which objects have absolutely no possible instrumental value to human flourishing. In the future, when developing my larger project related to intellectual property rights, I must address and substantiate/support the following claim: the number of objects which have no possible instrumental value to human flourishing, is exceedingly small. Some people already have this intuition, but for others, I may need to provide a wide-ranging set of cases and empirical evidence to support the claim. 

Essentially, virtually all the objects of intellectual property must be made available to humanity. Some objects are necessary for everyone (literature, math, politics, etc.), and some objects are necessary for a few (musical instruments and chess). These objects must be freely available if we are to flourish as a species. Further, we are obligated to use and implement these objects to fulfill our function. Moreover, we should enable others to use and implement these objects, and we should not impede others from accessing, using, and implementing these objects because these are the means to flourishing.

''3.5 - The Right to Flourish''

	Sen and Nussbaum’s capabilities approach is an empirical method of institutional reform that is derived from the normative claims that the freedom to achieve well-being as a human being is of vital moral importance and that this freedom can only be understood relative to the capabilities of individuals to realize it: that is, individuals must have real opportunities to live well and to flourish as human beings. 

Their approach and my sketch are rooted in the same general kind of eudaimonism and picture of the human good. An account of human flourishing or human good defined by the essential functions and characteristics of humans is needed for the capability approach to produce tangible and substantial claims on which to apply its methodology. 

	Martha Nussbaum describes her "thick vague theory of the good” as “an account of the most important functions of the human being, in terms of which human life is defined. The idea is that once we identify a group of especially important functions in human life, we are then in a position to ask what social and political institutions are doing about them.”<<ref "37">> The capability approach is a method, arguably a heuristic device for justice, built upon this teleological view of humankind. This is the approach:

[1] We assume human life has a function(s) and a set of essential features; [2] we identify those properties in terms of functions/achievements and capabilities/opportunities, and set them as a metric or standard of human flourishing; [3] we go out into the world to test and observe whether or not, and to what degree, social and political institutions (like the basic structure in Rawls) are promoting and enabling humans in their domains to flourish according to our metrics; [4] if these standards aren’t reached, if humans aren’t flourishing as they should, if our social order performs poorly to any degree on our metrics, then we look to see how to reform or revolutionize public policies of these institutions in order for them to better enable and promote human flourishing; [5] go back to step 3, rinse and repeat.

	The capability approach is not just interested in being able to describe what counts as flourishing – it wants to prescribe how we can bring about flourishing on a global scale. The sketch I’m offering in this chapter is more or less aligned with the capability approach in this goal.

	Intellectual flourishing can be found in the central human capabilities that Nussbaum outlines. She outlines the ability to use and engage our senses, imagination, thought, experience, emotions, practical reason, among others, as central human capabilities – as essential teleological features of humans.38 Intellectual property rights are certainly a matter of great interest to the capability approach.

	The capability approach is interested in measuring how public policy, including the quality and quantity intellectual property rights, generates or fails to generate circumstances in which humans maximally flourish. Current intellectual property rights do not merely interfere with our efforts to exercise our intellectual capabilities, but they generate a material circumstance for a majority of the world in which we can’t maximally exercise our intellectual capacities, and thus we fail as a species to maximally flourish.

	One of the more contentious claims of this sketch theory is that, on average, more people will flourish, and flourish to a greater degree, if we did not continue to protect intellectual property rights in such high quantities and qualities. The current intellectual property regime impinges on our ability to exercise our intellectual capacities, and essentially we are restricted from maximally flourishing because of unnecessary intellectual property protections. That is clearly an empirical question which must be answered with a tool like the capability approach. If that claim is correct, then on a eudaimonistic approach to intellectual property, we may prescribe diminished intellectual property rights. 

''3.6 - Conclusion''

Lockean and utilitarian economic theories of intellectual property try to construct a framework for extensive claim rights to intellectual objects. What I take from critiquing these theories is that their foundations – Locke’s general property theory and utilitarianism – actually lead to denying extensive and exclusive claim rights to intellectual objects. My alternative sketch of intellectual property reaches a similar and compatible conclusion.

---------------------

<<footnotes "1" "Moore, Adam.  'A Lockean Theory of Intellectual Property' (PhD diss., Ohio State University, 1997), 82., in OhioLINK, http://rave.ohiolink.edu/etdc/view?acc_num=osu1214419634 (accessed June 13, 2012).">>
<<footnotes "2" "Palmer, Tom G. 'Are patents and copyrights morally justified? The philosophy of property rights and ideal objects.' Harvard Journal Of Law & Public Policy 13, no. 3 (Summer90 1990): 817. Academic Search Complete, EBSCOhost (accessed November 24, 2011).">>
<<footnotes "3" "Fisher, William. 'Theories of Intellectual Property.' Harvard Law School. http://www.law.harvard.edu/faculty/tfisher/iptheory.html (accessed February 28, 2012).">>
<<footnotes "4" "Spinello, Richard A., and Herman T. Tavani. “Intellectual Property Rights: From Theory to Practical Implementation.”  //Intellectual Property Rights in a Networked World: Theory and Practice//. Hershey, Pa: Information Science, 2004: 1-65. 5.">>
<<footnotes "5" "Unfortunately, defending either the discovery or creation views is a very complex metaphysical and epistemological concern well beyond the scope of this paper. I cannot settle it here. ">>
<<footnotes "6" "Ibid. 7">>
<<footnotes "7" "Locke, John. //Second Treatise of Government.// Ed. C. B. Macpherson. Indianapolis, Ind: Hackett Pub. Co, 1980. 21.">>
<<footnotes "8" "Ibid.">>
<<footnotes "9" "Easterbrook, Frank H. 'Intellectual property is still property.' //Harvard Journal Of Law & Public Policy //13, (January 15, 1990): 108-118. 110.">>
<<footnotes "10" "Wolff, Jonathan. 'Libertarianism, Utility, and Economic Competition.'// Virginia Law Review //92, no. 7 (November 2006): 1605-1623. 1618.">>
<<footnotes "11" "Spinello, Richard A., and Herman T. Tavani. 'Intellectual Property Rights: From Theory to Practical Implementation.' 8.">>
<<footnotes "12" "There are three major types of expressions of intellectual objects, each being protected by a different type of intellectual property law. Expressions of intellectual objects include the actual tangible mediums of books, paper, and canvas in cases of literature, music, art – we refer to the protection of these expressions as copyrights. Expressions also include tangible machines and processes in the cases of inventions and functional ideas – the protection of these expressions are called patents. Expressions, such as images or words, which uniquely identify entities, services, or products, are protected by Trademarks.">>
<<footnotes "13" "Kimppa, Kai. 'Intellectual Property Rights in Software-Justifiable from a Liberalist Position? Free Software Foundation's Position in Comparison to John Locke's Concept of Property.' //In Intellectual Property Rights in a Networked World: Theory and Practice//. Richard A. Spinello and Herman T. Tavani.. Hershey, Pa: Information Science, 2004: 67-82.  68.">>
<<footnotes "14" "Moore, Adam.  'A Lockean Theory of Intellectual Property' (PhD diss., Ohio State University, 1997), 183-184., in OhioLINK, http://rave.ohiolink.edu/etdc/view?acc_num=osu1214419634 (accessed June 13, 2012).">>
<<footnotes "15" "Similarity is the vital relationship between the original work and derivative work regarding intellectual property rights. On this theory (and the legal practice of it) derivative works are not merely about the causal origins of a work. A new work may be transformed so far from an original work that the new bears absolutely no resemblance to the original – these works are not infringing on the original owner’s intellectual property rights. A new work which would be potentially infringing on the original without the consent of the original’s owner, a judgment based exclusively on similarity, is a derivative work. A derivative work usually has a causal chain connecting it to the original work, but vitally, a derivative work is similar enough to the original that judicial and legislative bodies require the derivative work’s producer to acquire consent of the original work’s owner.">>
<<footnotes "16" "Spinello, Richard A., and Herman T. Tavani. 'Intellectual Property Rights: From Theory to Practical Implementation.' 14.">>
<<footnotes "17" "Besen, Stanley M.and Leo J. Raskind 'An Introduction to the Law and Economics of Intellectual Property.'
//The Journal of Economic Perspectives// , Vol. 5, No. 1 (Winter, 1991):3-27. 7-11.">>
<<footnotes "18" "Besen, Stanley M.and Leo J. Raskind 'An Introduction to the Law and Economics of Intellectual Property.' 12.">>
<<footnotes "19" "Abrams, Howard B. 'Originality and creativity in copyright law.' //Law & Contemporary Problems //55, (April 15, 1992). 3-44.">>
<<footnotes "20" "Robert M. Hurt and Robert M. Schuchman. 'The Economic Rationale of Copyright.' //The American Economic Review// , Vol. 56, No. 1/2 (Mar. 1, 1966): 421-436. 426.">>
<<footnotes "21" "Steven Shavell and Tanguy van Ypersele. 'Rewards versus Intellectual Property Rights.'  //Journal of Law and Economics// , Vol. 44, No. 2 (October 2001). 525-547.">>
<<footnotes "22" "I am not claiming egalitarian distributions maximize utility, rather I’m claiming that distributions with vast wealth inequalities do not satisfy the utility principle.">>
<<footnotes "23" "I grant that criticisms of general utility, such as the utility monster, actually can lead to very unequal distributions and may result in the impoverishment of the vast majority of the populace. I am not defending utilitarianism in this paper, and I am going to assume more moderate views of utilitarianism (which set aside or are assumed to avoid objections like the utility monster) for the sake of this paper. I’m trying to temporarily grant, for the sake of argument, the viability of the general utilitarian approach.">>
<<footnotes "24" "Aghion, Philippe, and Patrick Bolton. 'A Theory of Trickle-Down Growth and Development.' //Review Of Economic Studies// 64, no. 2 (April 1997). 151-172.">>
<<footnotes "25" "Even if we considered utility at a national level, the principle of utility is not satisfied in first world western nations. Unfortunately, nationalistic approaches fail to take into account how first world nations have both directly and indirectly caused harm to the poor in third world nations. Our intellectual property system is one of the many causes of the high degree of impoverishment worldwide. The fact is that the average poor person in a third world nation is simply much, much poorer than a poor person in a first world nation, and in part, this is due to first world intellectual property system.">>
<<footnotes "26" "Of course, not everyone would read the logic book on their shelf or computer. But, I believe it is safe to assume that 5 billion people having a logic book will result in more people having read a logic book than merely 50 million having a logic book. I am also assuming that reading a logic book will result in significant utility gains. If you don’t like the example, then replace the logic book with something you believe most anyone would benefit by viewing/hearing/reading/etc.">>
<<footnotes "27" "I’m not claiming that releasing all intellectual property into the public domain would result in some celestial utopia, but I do believe it would be enormously beneficial to the world. Yes, it would cost the wealthy something, but the gains in utility would be well worth it.">>
<<footnotes "28" "Konstantinos Giannakas. 'Infringement of Intellectual Property Rights: Causes and Consequences.'  //American Journal of Agricultural Economics// , Vol. 84, No. 2 (May, 2002). 482-494.">>
<<footnotes "29" "Joseph Farrell. 'Intellectual Property as a Bargaining Environment.' //Innovation Policy and the Economy// , Vol. 9, No. 1 (2009). 39-53. ">>
<<footnotes "30" "Timothy Lee, 'If Android is a 'stolen product,' then so was the iPhone,' //Ars Technica//, February 23, 2012. http://arstechnica.com/tech-policy/news/2012/02/if-android-is-a-stolen-product-then-so-was-the-iphone.ars(accessed February 27, 2012).">>
<<footnotes "31" "//Time Magazine.// Business: Patent War. June 10, 1929. http://www.time.com/time/magazine/article/0,9171,751967,00.html (accessed February 27, 2012).">>
<<footnotes "32" "See Hurka, Thomas. //Perfectionism//. New York: Oxford University Press, 1993; and Foot, Philippa. Natural Goodness. Oxford: Clarendon, 2003.">>
<<footnotes "33" "Nicomachean Ethics I. 7, 1097b25-1098a15.">>
<<footnotes "34" "See Nussbaum, Martha. Capabilities and Human Rights, 66 Forham L. Rev 273 (1997), http://ir.lawnet.forham.edu/flr/vol66/iss2/2; and Sen, Amartya. 'Human Rights and Capabilities.' //Journal of Human Development// 6, no. 2 (July 2005): 151-166.">>
<<footnotes "35" "Nussbaum, Martha. //Capabilities and Human Rights//, 66 Forham L. Rev 273 (1997), http://ir.lawnet.forham.edu/flr/vol66/iss2/2: 287.">>
<<footnotes "36" "Sen, Amartya. 'Human Rights and Capabilities.' //Journal of Human Development// 6, no. 2 (July 2005): 154.">>
<<footnotes "37" "Nussbaum, Martha C. 'Human Functioning and Social Justice: In Defense of Aristotelian Essentialism.' //Political Theory// Vol. 20, No. 2 (May, 1992): 214">>
<<footnotes "38" "Nussbaum, Martha. //Capabilities and Human Rights//, 66 Forham L. Rev 273 (1997), http://ir.lawnet.forham.edu/flr/vol66/iss2/2: 285-288.">>

---------------------

REFERENCES

Abrams, Howard B. "Originality and creativity in copyright law." //Law & Contemporary Problems// 55, (April 15, 1992). 3-44.

Aghion, Philippe, and Patrick Bolton. "A Theory of Trickle-Down Growth and Development." //Review Of Economic Studies// 64, no. 2 (April 1997). 151-172.

Besen, Stanley M.and Leo J. Raskind “An Introduction to the Law and Economics of Intellectual Property.” //The Journal of Economic Perspectives// , Vol. 5, No. 1 (Winter, 1991):3-27.

Easterbrook, Frank H. "Intellectual property is still property."// Harvard Journal Of Law & Public Policy// 13, (January 15, 1990): 108-118. 

Farrell, Joseph. “Intellectual Property as a Bargaining Environment.” Innovation Policy and the Economy , Vol. 9, No. 1 (2009). 39-53.

Fisher, William. “Theories of Intellectual Property.” Harvard Law School. http://www.law.harvard.edu/faculty/tfisher/iptheory.html (accessed February 28, 2012).

Foot, Philippa. //Natural Goodness//. Oxford: Clarendon, 2003.

Giannakas, Konstantinos. “Infringement of Intellectual Property Rights: Causes and Consequences.”  //American Journal of Agricultural Economics //, Vol. 84, No. 2 (May, 2002). 482-494.

Hurt, Robert M. and Robert M. Schuchman. “The Economic Rationale of Copyright.” //The American Economic Review// , Vol. 56, No. 1/2 (Mar. 1, 1966): 421-436. 426.

Hurka, Thomas. //Perfectionism//. New York: Oxford University Press, 1993.

Kimppa, Kai. "Intellectual Property Rights in Software-Justifiable from a Liberalist Position? Free Software Foundation's Position in Comparison to John Locke's Concept of Property." //In Intellectual Property Rights in a Networked World: Theory and Practice//. 

Richard A. Spinello and Herman T. Tavani.. Hershey, Pa: //Information Science//, 2004: 67-82. 

Lee, Timothy. “If Android is a 'stolen product,' then so was the iPhone,” //Ars Technica//, February 23, 2012. http://arstechnica.com/tech-policy/news/2012/02/if-android-is-a-stolen-product-then-so-was-the-iphone.ars(accessed February 27, 2012).

Locke, John. //Second Treatise of Government//. Ed. C. B. Macpherson. Indianapolis, Ind: Hackett Pub. Co, 1980. 

Moore, Adam D. “A Lockean Theory of Intellectual Property.” PhD diss., Ohio State University, 1997. In OhioLINK, http://rave.ohiolink.edu/etdc/view?acc_num=osu1214419634 (accessed June 13, 2012).

Nussbaum, Martha. //Capabilities and Human Rights//, 66 Forham L. Rev 273 (1997), http://ir.lawnet.forham.edu/flr/vol66/iss2/2.

Nussbaum, Martha C. “Human Functioning and Social Justice: In Defense of Aristotelian Essentialism.” //Political Theory //Vol. 20, No. 2 (May, 1992):

Palmer, Tom G. "Are patents and copyrights morally justified? The philosophy of property rights and ideal objects." //Harvard Journal Of Law & Public Policy// 13, no. 3 (Summer90 1990): 817. Academic Search Complete, EBSCOhost (accessed November 24, 2011).

Sen, Amartya. "Human Rights and Capabilities."// Journal of Human Development// 6, no. 2 (July 2005): 154.

Spinello, Richard A., and Herman T. Tavani. “Intellectual Property Rights: From Theory to Practical Implementation”.  I//ntellectual Property Rights in a Networked World: Theory and Practice//. Hershey, Pa: Information Science, 2004: 1-65. 

Shavell, Steven and Tanguy van Ypersele. “Rewards versus Intellectual Property Rights.”  //Journal of Law and Economics// , Vol. 44, No. 2 (October 2001). 525-547.

Time Magazine. Business: //Patent War//. June 10, 1929. http://www.time.com/time/magazine/article/0,9171,751967,00.html (accessed February 27, 2012).

“While Drafting SOPA, the U.S. House Harbors BitTorrent Pirates.” //TorrentFreak//. Entry posted December 26q, 2011. https://torrentfreak.com/while-drafting-sopa-us-house-harbors-bittorrent-pirates-111226/ (accessed December 26, 2011).

Wolff, Jonathan. "Libertarianism, Utility, and Economic Competition." //Virginia Law Review// 92, no. 7 (November 2006): 1605-1623. 







In the article, “Freedom within Reason,” author Susan Wolf is concerned with three different views or justifications of our moral responsibility. She provides a brief chronology of arguments concerned with the link between autonomy and moral responsibility. Wolf starts with the incompatibilist intuition, what she refers to as the Autonomy View, offers criticisms of it, and moves on to examine what she considers to be a more favorable compatibilist position called the Real Self View. Wolf finds this view unsatisfying, and offers her own compatibilist position, the Reason View, as the successor. She believes her theory justifies and explains our moral responsibility. 

In this paper, I will carefully outline and consider her arguments as an incompatibilist. I will try to defend incompatibilism where I can, offer clarifications to several of Wolf’s objections, providing lines of reasoning she did not offer in her own article, and evaluate the strengths and weaknesses of her position.

Wolf’s starting justification is what she refers to as the Autonomy View. She explains:

<<<
The Autonomy View of responsibility…is the view that beings are responsible just insofar as they are autonomous… I shall say that a person is autonomous when, and only when, his actions are governed by his self, and there is nothing behind or beyond his self, making it govern actions the way he does.<<ref "1">>
<<<

This is the incompatibilist view of agency and moral responsibility. Wolf takes this to be the starting point for a discussion of moral responsibility, as she believes it to be the most clearly connected to common instincts and initial perspectives on the topic. Wolf juices our intuitions, describing why both laymen and philosophers might find the Autonomy View so compelling:

<<<
[People] fear the absence of power and of ultimate control. If their lives or their individual acts are not theirs to create in whatever image they choose, this seems to rob their lives of significance, their acts of any meaning…Among the things we feel to be licensed by the ordinary assumption that we are in control of our lives and our acts is the appropriateness of holding ourselves and each other responsible for how we live and what we do…Our attitudes and affections rest on the assumption that what people do expresses and reveals qualities that are especially and deeply attributable to them. If freewill is an illusion and we are not calling the shots, then these attitudes appear to be inappropriate and unjustifiable, and so do the practices of reward and punishment, of credit- and discredit-giving that reflect and express these attitudes.<<ref "2">>
<<<

I take this to be a fair representation of the incompatibilist’s thinking on the matter. It doesn’t seem as if we can hold an agent responsible for actions which don’t originate from that person. If an action isn’t up to the agent in a significant sense, for example, if the laws of physics can reducibly describe or determine what an agent does or does not do, then it seems, at least to the incompatibilist, that agent is not morally responsible.

A solid analogy would be that in a determined world, agents are essentially robots. Robots, which are programmed and determined to do what they do and effectively cannot, by definition, do otherwise, are not morally responsible. I haven’t much to add to Wolf’s description of the primary incompatibilist intuition, the Autonomy View. 

Note, the Autonomy View outlines the conditions for moral responsibility and no more. Here we find a second intuition that Wolf wishes to implicitly add to the Autonomy View. The second intuition is simple: most of us are morally responsible. Wolf takes this intuition as a given (as, it seems, do most people). In fleshing out why people are compelled to the Autonomy View, Wolf points toward this second intuition, but it is not explicitly a part of the Autonomy View, and for good reason. One might hold the first intuition and not the second. Such a person is an incompatibilist skeptic of moral responsibility. 

Wolf agrees to the second intuition, and so she doesn’t dissect the incompatibilist skeptic’s perspective. Rather, she is more interested in dismantling the libertarian view. In the context of Wolf’s paper, the brief libertarian argument is this: 

# A being without autonomy (libertarian free will) is not a morally responsible being.3  
# Most humans are morally responsible beings. 
# Therefore, most humans have autonomy (libertarian free will).

Clearly, premise (1) is the first intuition, the Autonomy View, and premise (2) is the second intuition. 

In order to deny the conclusion, incompatibilist skeptics of moral responsibility can deny the second premise, and compatibilists who assume the second premise can deny the first. Indeed, the primary enterprise or goal of Wolf’s article is the preservation and provision of an account of the second premise without agreeing to the libertarian’s conclusion. Further, as she thinks, a compatibilist should explain why people feel initially compelled toward the Autonomy, demonstrating what is right and/or wrong about the Autonomy View.

Wolf provides two excellent criticisms of the libertarian argument. The first criticism is an attack on the first premise of the libertarian argument via a reductio. Wolf’s argument is that when we employ the Autonomy View, as far as she can tell, we arrive at the conclusion that nobody is morally responsible (in contradiction with premise 2). She explains:

<<<
If responsibility does require autonomy, it is questionable whether any of us is ever responsible for anything. For autonomy requires that our actions be governed by our selves and that our selves not be governed by anything beyond our control. Now, it is undeniable that many of our actions are governed by our selves – that is, they result from our own decisions and choices. Moreover, it is fairly rare that these decisions and choices are overtly caused or determined by such obviously external forces as a gunman or a hypnotist or the wind or a seizure. But neither do our choices or decisions or selves arise spontaneously out of nothing. Though the factors that shape who we are and what we value, and consequently that shape how we respond to the circumstances that confront us, are rarely so easy to point to as they are in the examples of what I called “special circumstances,” it is plausible that such factors are always operative nonetheless, calling into doubt the assumption that even the strongest candidates for autonomous action really are as autonomous as they appear.<<ref "4">>
<<<

I find the ‘undeniable’ qualifier puzzling. These external shaping factors which supposedly defeat autonomy suggest that it isn’t deniable, at least from the libertarian’s perspective.  I’m not sure what Wolf means by this. It is clear, however, Wolf believes that, on the Autonomy View, the ever-present, external shaping factors negate our responsibility.

Wolf offers what I will refer to as the Systematic Manipulation Objection to historical autonomy. The claim is that the world around us is filled with ordinary and common external forces which influence us in the same way as (although more subtly than) traditional, special autonomy and/or responsibility defeating circumstances such as a gunman, hypnotist, or OCD. From the perspective of the Autonomy View, this is a serious objection because nobody is autonomous if we are all systematically determined by external forces and, consequently, nobody is morally responsible. 

Nobody will deny that the world influences us. Being “shaped” and “influenced” by external forces, of course, is not the same as being causally determined by something external to us. The issue is whether or not that influence is manipulation beyond our control. I think the libertarian has an obvious counter to the Systematic Manipulation Objection: the agent endorsed those influences. Insofar as those influences are endorsed, one is still autonomous, and thus still responsible. The idea is that one can choose to be shaped by these external forces, and thus they do not manipulate one in the same way that a hypnotist manipulates an individual. If this is true, then these ordinary, external shaping forces which are endorsed by the agent are neither autonomy defeating nor responsibility defeating.

An example of this systematic manipulation, which Wolf offers much later (not regarding the Autonomy View), is the illustration of a racist who is so deeply conditioned by the people surrounding him that he didn’t have a chance to not be a racist. In the example of the racist, the libertarian would say the individual did have a chance to not be racist. The racist’s free will provides endorsement or resistance to his racist conditioning. Granted, this particular racist may not be as responsible as one who didn’t endure such conditioning, but he still seems responsible to some extent. The libertarian may even agree that, at some point, it may no longer be up to the racist whether or not he will be a racist; but at some point in time, it was up to the racist to question, resist, or endorse the conditioning and racist claims of those around him. Hence, the racist is still culpable, and this is the kind of story the libertarian can use to explain why systematic manipulation is not so problematic.

A more striking version of the problem that Wolf may be (or should be) offering is what I call the Poisoned Origins Objection. The starting assumption is that one is not born with autonomy, and rather one grows to become fully autonomous. Presumably, a baby does not have autonomy, and yet, that baby is still shaped by his genetics, environment, and various external forces. This baby will grow up, passively soaking up values, desires, and beliefs without active endorsement. The original authentic self of this child (a concept which Wolf, unfortunately, did not make much room for in her section on libertarianism) seems completely determined by external forces, and not by the child himself. At whatever stage this child is supposed to gain some measure of autonomy, we must contend with the claim that the original version of “who this child really is” isn’t shaped by the child, but by forces external to this newly minted autonomous being. How does the child grow into an autonomous being from a nonautonomous foundation? If one has a predetermined authentic self, then even after the acquisition of autonomy, it seems as though the autonomous agent is tainted. It is not clear how one overcomes these tainted origins. Just as it remains unclear as to how an agent completely manipulated by a neuroscientist could ever reclaim his autonomy after such radical manipulation, it seems unclear as to how one could gain autonomy in the first place from nonautonomous origins. 

A libertarian might reject this Poisoned Origins Objection by claiming the authentic self is not determined in any degree. One might argue that the realm in which you are the only force of will (whatever that may be), is the realm of the real you. The idea is that your libertarian free will, which is undetermined or untainted by external forces, is the only authentic you. A young child without autonomy just wouldn’t have the relevant kind of authentic self in question, and when the child became autonomous (acquired free will), her authentic self would begin. Essentially, there would be no conditioned, nonautonomous origins, and thus our moral responsibility can be maintained.

Moving past many of the metaphysical concerns, there seem to be at least two solid problems with such a view. The first problem is that this seems to go against our intuitions that “who we are” is at least in part a function of our genetics, environment, and other external forces. For example, deaf people might consider being deaf an essential characteristic of their authentic selves. The fact that a person loves pizza or reading or whatever, which seems to be, at least in part, a product of forces external to her, might also be a part of her authentic self. Many things which are determined by forces external to us seem to be important to us; we take them as defining who are, to some extent. It isn’t clear how a libertarian could resolve this problem.

The second problem, related to the first, is that this unpoisoned, metaphysical authentic self seems to require some kind of system of beliefs and desires. How could it make decisions otherwise? What are the origins of those beliefs and desires? These beliefs and desires can’t be determined by external forces. The libertarian, it seems, needs an account of the origins of the beliefs and desires of this untainted authentic self.<<ref "5">> 

None of the options look particularly good. It is not clear, however, that these concerns absolutely can’t be overcome, and thus I’m not convinced this first objection is absolutely fatal. Dialectically, however, the libertarian seems to have his work cut out for him. Interestingly, it seems that many compatibilist theories of autonomy (I’m momentarily parting with Wolf’s definition here) may also be susceptible to the Poisoned Origins Objection. Dialectically, it may be the case that any who believe in autonomy (whether compatibilist or incompatibilist) must take into account the historicity of the authentic self, have their work cut out for them. 

Let us move and examine Wolf’s second criticism of libertarian autonomy. She explains:

<<<
The second problem with the autonomy view is perhaps more purely philosophical. It is that even if autonomous action is possible, even if we are, most or all of the time, autonomous agents, it remains disturbingly opaque why or how this should make us responsible agents. That is, it seems easy enough to grasp why nonautonomous agents might not be responsible for what they do. If their actions are governed by their selves, but their selves are governed by something outside their control, then it is not really they who are calling the shots; they are not in ultimate control. But if being autonomous means that instead of one’s self being a product of external forces, one’s self is a spontaneous, undetermined entity, it is hard to see why one should be any more responsible for the decisions, choices, and actions that flow out of that. One is in no more control of a self that has arisen out of nothing than one is if one’s self has arisen out of something. An undetermined self seems no more responsible than a determined self.<<ref "6">>
<<<

The second objection is more intriguing than the first. Instead of employing a reductio, the first premise is outright called into question. Wolf provides a countering intuition. Your “freewill,” the autonomous you, is comprised of spontaneity, undetermination, and seeming randomness, and is thus thought to be arbitrary and irrelevant to moral responsibility. Such an entity is too chaotic to be a responsible thing. How can the libertarian demonstrate that an undetermined self is any better than rolling dice? We might rephrase it as: assuming indeterminism, what makes the “real you” (the autonomous, authentic, libertarian-based you) better than mere dice? Unlike the first objection, this second objection strikes at the heart of libertarian autonomy, while leaving the compatibilist autonomy untouched. 

Honestly, I don’t know, but I do have a worry about the objection’s position in the dialectic, and I believe compatibilism fairs no better. Funnily enough, the incompatibilist has been posing a remarkably parallel problem to the compatibilist: assuming determinism, what makes the “real you” any better than a mere pile of mechanistic atoms? 

Isn’t it intuitively obvious that the “real you” (whatever that might be) is a responsible being who is better or more significant than undetermined dice and a determined pile of mechanistic atoms? We are forced to either accept that at least one or the other problem can be solved. But, it is unclear how moral responsibility apologists, be they compatibilists or incompatibilists, can provide intuitively obvious reasons for why or how this is true. We beg the question of responsibility and seem to be working backwards trying to explain it. This is a kind of transcendental argumentation. It seems to me that both the incompatibilist and compatibilist sit in the dialectical boat. 

Assuming that alternative objections (such as Wolf’s first objection to the Autonomy View) do not hold, the libertarian’s response to the second objection is simply to agree with compatibilists that we are morally responsible and then claim the problem posed by being reduced to robots or piles of mechanistic atoms has more intuitive force than the dice problem. I reckon that isn’t satisfying. In this respect, the compatibilist, however, doesn’t appear to be able to offer any other kind of argument either. As blind believers in moral responsibility, we are stuck. This is likely the result of what Wolf refers to this as “the dilemma of autonomy.”<<ref "7">>

Question begging, dogmatism, and intuition, of course, are very rarely acceptable kinds of evidence or argumentation in philosophy. You really are at the foundation of a branch of philosophy when such a practice can be accepted. In facing the skeptic of moral responsibility, I submit that we are at the foundation of ethics, and that such a practice is epistemically justified and acceptable.

After levying her objections to incompatibilism, Wolf moves towards compatibilist arguments. She takes the task of proper theory of compatibilism to be twofold: (1) explaining how we are morally responsible in a deterministic world, and (2) making sense of (yet still denying) our initial intuitions about the necessity of autonomy for moral responsibility, particularly regarding these special responsibility-defeating circumstances.<<ref "8">> Before sketching out her own compatibilist theory, Wolf offers what she believes to be the second (after her own) most compelling compatibilist theory of moral responsibility.

Wolf returns to the “various ways in which special circumstances lead us to exempt people from responsibility and blame” in order to locate “the source of their unfreedom” which the libertarian supposedly failed to find.9 In trying to make sense of experiences and circumstances that led us to the Autonomy View from the compatibilist perspective, Wolf explains:

<<<
[The] difference between a person who is pushed and someone who bumps into another person intentionally is that in the latter case but not in the former the person’s behavior is determined by his will. Hypnotism is not quite like being pushed, for the hypnotist typically works on the will rather than circumvents it. But of the person acting under hypnosis, we can say that, though he moves according to his will, his will is not determined by his own desires.<<ref "10">>
<<<

It makes sense that the wind circumvents the will rather than on it. Hypnosis is trickier but has the same sort of problem, thinks Wolf: an agent not acting on his own desires can’t be responsible. The compatibilist might think this can explain away the initial leap to the Autonomy View. The compatibilist, at least naïvely, can argue that a person is responsible “when, and only when, his behavior can be governed by his will and his will can be governed by his desires” without having to posit libertarian free will.<<ref "11">> Wolf does not name this perspective, but she briefly walks through some of the problems of vagueness associated with it. She claims it may be too broad, and that it fails to “differentiate between relevantly different desires.”<<ref "12">> She worries that a naïve compatibilism will be too overreaching, falsely demonstrating that very young children and even lower animals are morally responsible. Vitally, Wolf believes this naïve compatibilism fails to account for the fact that some desires we have “are desires we would just as soon be without.”<<ref "13">> This leads us to her second justification of moral responsibility, what she calls The Real Self View. She explains:

<<<
Desires, or, more generally, other features of our character, we cherish – we claim them for our own, whether we have cultivated them by design or approved them after we had come to see them as parts of us, and we would go to considerable length, not just to satisfy these desires, but to preserve them. These latter desires may be referred to as comprising our systems of value. These are what we think of as constituting our deepest selves.

In light of the distinction between values and other “mere” desires, or between one’s whole, partly superficial, partly alienated self and one’s deeper or real self, we can improve on the earlier proposal to understand freedom in terms of the ability to do what one wants. The kind of freedom necessary for responsibility, it might be suggested, is the freedom to do what one really wants – that is, the freedom to do what one’s core, deep, or real self wants, which may be different from what one’s strongest desires would urge upon one. To put it another way, the freedom necessary for responsibility on this account consists in the ability not just to behave in accordance with one’s will and to will in accord with one’s desires, but more specifically in the ability to govern one’s will (and so one’s actions) in accordance with the specific set of desires that constitute one’s system of values.<<ref "14">>
<<<

There seem to be many virtues of the Real Self View. First off, these claims seem intuitively right. Our psychology is complex, and moral responsibility does seem to require that we take into account the distinction between what is authentically our selves and what is inauthentic to our selves. Further, it shows why very young children and lower animals aren’t morally responsible, as they lack the depth required to have a system of value, an authentic self, and the ability to do what one really wants. 

Interestingly, as far as I can tell, the Real Self View isn’t clearly a compatibilist argument. Libertarians may hold all this to be true as well, and even claim that the ability to get at what one really wants requires libertarian free will. In fact, the Autonomy View seems far more capable of making sense of authenticity than compatibilism. Libertarianism has more tools to distinguish the real you from everything else. Setting that aside, we must consider whether or not a compatibilist interpretation of the Real Self View provides a sufficient account of our moral responsibility. 

At first glance, the Real Self View does seem to explain these special responsibility-defeating circumstances. Using Wolf’s examples, the Real Self View seems to explain why I am not responsible when the wind pushes me, circumventing my will and causing me to behave not in accordance with my will. Further, the Real Self View seems to explain why I am not responsible when hypnotism acts upon my will, manipulating my will so that I do not will in accord with my real desires. 

All of that said, while the Real Self View appears to explain Wolf’s examples of responsibility-defeating circumstances, it isn’t clear that it serves as a positive account of why we have moral responsibility. Even if the Real Self View isn’t a sufficient theory or justification of moral responsibility, however, at the very least, it does seem to be a necessary component of a sufficient theory of moral responsibility. Both compatibilists and incompatibilists can admire the insightfulness of the Real Self View. 

Wolf does not find the Real Self View satisfactory, even though she finds it compelling. She claims it has a serious flaw. She explains:

<<<
What makes the Real Self View a distinctively nonautonomous account of free will is its insistence that one’s status as a free and responsible being lies not in whether but in how one’s actions are determined. Specifically, freedom and responsibility are held to depend solely on whether one’s behavior can be governed by the dictates of one’s real self – never mind where one’s real self came from or why it came to dictate the behavior that it does. But it is not at all clear that we should nevermind where one’s real self comes from in evaluating one’s status as a free and responsible agent.<<ref "15">>
<<<

The Real Self View seems to be able to answer the special circumstances of the wind and the hypnotist. But the objection might be that these were manipulations of behavior and the will, not one’s true and deepest self. Examples of this deeper manipulation may help us understand exactly why the Real Self View, as a stand-alone justification of moral responsibility, might be flawed. The flaw would be that having the wrong kind of past can generate authentic selves which we intuitively don’t think are morally responsible (intuitions which Wolf is interested in explaining and justifying), but end up being morally responsible on the Real Self View (against our intuitions, and thus failing to meet the requirements Wolf sets out). 

Consider the case of the neuroscientist who manipulates the real me, my deepest desires, my system of values. We assume that the neuroscientist’s manipulation is a responsibility-defeater. Unlike the wind and the hypnotist, this special circumstance, isn’t merely manipulation of behavior or will, it is outright manipulation of the authentic self. Can the Real Self View match out intuitions, adequately describing the ways in which I won’t be morally responsible, or will it fail to match our intuitions? 

When the neuroscientist modifies those deepest desires and beliefs of an agent, the Real Self View seems to have two reasonable objections to the agent’s moral responsibility. The first objection would be that insofar as a manipulated being’s will derives from any remnants of the old authentic self, the remaining deepest desires, and essentially, to the degree that the ‘real self’ still exists, he remains morally responsible, but insofar as the manipulated being’s will derives from the deep desires implanted by the neuroscientist (and not the original, real self), the being is willing, and thus behaving, inauthentically, and thus responsibility is defeated. The second approach is a bit more extreme, but also plausible. The Real Self View might also suggest that the modified being is an entirely different entity, and so the original individual would not be responsible; rather, the new person which emerges (if a new authentic self emerges at all) from this manipulation would be responsible. 

Whether the neuroscientist’s manipulation splits an authentic self into a hybrid of an authentic and inauthentic self (as in the first objection) or ends the original authentic self (possibly creating an entirely new authentic self), the Real Self View seems to have reasonable outs to initial historical problems of manipulation of the authentic self.  

Wolf uses the example of the racist to pressure the Real Self View. The man in our example was raised and conditioned to be a racist. He has the complex psychology required to have an authentic self.  Racism is a part of his system of values, and it is either an expression of or a part of the deeper values which comprise his authentic self. Wolf claims:

<<<
It seems to me highly questionable that the man is responsible –and thus blameworthy – for his racist activities. For although these activities are governed by his values, his life – at least so I am imagining – had no room in it for questioning, for coming to see the reasons why racism is wrong. He didn’t have a chance to not be a racist, and so it seems unfair to blame him for acting out and expressing a racism he had no choice but to have.<<ref "16">>
<<<

In general terms, the case of the racist exemplifies those cases in which an agent’s behavior is determined by the agent’s values (or real self), but the agent’s values (real self) are themselves inescapably determined by forces external to the agent’s control. The flaw in the Real Self View is that it takes such cases to be unproblematic cases of responsible behavior. Many people share my view that these may not be cases of responsible behavior at all. Even if they are cases of responsible behavior, we must be given some explanation of why they are – of why an agent is more responsible for actions that are governable by his values than he is for actions that are governed by his nonvalued desires, if his values are no more within his control and are no more products of his choice than are the mere desires for which he is recognized not to be responsible.<<ref "17">>

Thus, I conclude that the Real Self View is unsatisfactory. What is particularly troublesome, however, is that the objection that led to this conclusion seems to force us straight back to the Autonomy View, a view that we have seen is riddled with problems of its own. If the racist, the Nazi, the victim of the deprived childhood are not responsible for their behavior because their behavior is governed by values that are shaped by forces beyond their control, aren’t we all deprived responsibility on the same grounds? After all, we are as much a product of our cultures as these individuals are of theirs. Is there any way to solve the problem of the Real Self View without returning to the problems of the Autonomy View?<<ref "18">>

That is an interesting perspective. I don’t take this circumstance to be completely responsibility defeating (with respect to his racism). That’s not my intuition at all. The wind, the hypnotist, and the neuroscientist seem to impose a kind of manipulation which bypasses an agent’s consent (perhaps there are things you can’t consent to) or endorsement, while the racist seems to have, at least to some degree, the sort of consent and endorsement that makes one responsible. Perhaps I’m disagreeing with the claim that it is even possible for a modern homegrown racist to have no room to question his conditioning. I think he may be pardoned to some extent for his racism, but I don’t see how he is entirely nonresponsible. How can we make sense of her intuition?

Note that Wolf thinks her objection to the Real Self View is distinct from her objections to the Autonomy View. I’m not convinced this is really the case, however, and I think we can make sense of her intuition by realizing that we’ve seen this objection before. Although she does not claim it, I believe Wolf is employing versions of the Systematic Manipulation Objection or the Poisoned Origins Objection (which she levied against the Autonomy View) against the Real Self View. To say that “the racist didn’t have a chance not to be a racist” is to call into question the historical validity of the racist’s authentic self, to deny the lineage and origins of his authentic self, which presumably defeats the racist’s responsibility. The authentic self of the racist, in this case, is determined by external forces, and that’s taken to be a problem. 

Not all compatibilists will be swayed by Wolf’s criticism. After all, the criticism seems only to hold merit if we are willing to accept that being determined by external forces which systematically manipulate or has poison one’s origins would be an authenticity or responsibility defeater. Accordingly, Wolf’s reason to deny the compatibilist interpretation of the Real Self View rests upon or stems from seemingly incompatibilist intuitions. I can see some compatibilists not finding those objections to have much merit at all. 

Wolf believes there is a way out for the Real Self View other than returning to the Autonomy View. This path turns out to be the third justification of moral responsibility, her own theory, the Reason View. She explains: 

<<<
When we reflect on the sources of these people’s [good] values or of their courage and commitment and integrity, we are not so concerned or upset by the thought that they are products of their environments…Focusing on cases of good-acting agents suggests that it is no obstacle to responsibility that one acts on values that themselves have been formed by forces external to the agent’s control. Reflecting on bad-acting agents, however, seem[s] to lead us to the opposite conclusion.<<ref "19">>

The relevant difference between the good-acting agents, shaped, say, by inspiring role models, whom we view as responsible and praiseworthy, and the bad-acting agents, shaped, say, by horrible role models or by the absence of role models or by brutal and impoverished upbringing, whom we exempt from responsibility and blame, is that the former have been led through reason, perception, good sense, and good data to adopt their values and live by them, while the latter have been shaped in ways that have kept reason and truth out.<<ref "20">>

It is by being rationally persuaded that these values are good ones that the agent makes them her own in a way for which she is responsible. But there is no analogous story to be told of the agent who acquires bad values from his culture. We cannot say that the racist is responsible for his racism if it results from his understanding of what is good about racism – for there is nothing good about racism for him to understand.<<ref "21">>
<<<

The doorway to the Reason View is an intuition that special circumstances which lead to bad values, beliefs, and actions are responsibility-defeating, while parallel circumstances which lead to good values, beliefs, and actions are not responsibility-defeating. Wolf wishes to qualify the Real Self View with the claim that moral responsibility is a result of employing one’s rationality. 

It is only in those cases in which an agent’s are determined by their rationality and an epistemic environment conducive to reason, that an agent could be held morally responsible. Those who have good values, beliefs, desires, and actions which are “formed, or revised or affirmed, in accordance with their reason and perception…have exercised all the powers of self-determination it is sensible to want.”<<ref "22">> The authentic self is a rational self. Reason makes us responsible. Employing reason is not only necessary for responsibility (most can agree), but it is sufficient for responsibility (this is the contentious claim).

On the Reason View, in these special circumstances, we excuse those who are determined by irrationality. People who could not but have bad values, beliefs, and actions are not morally responsible because they have “been pushed blindly along a path that, through no fault of their own, they could not recognize as undesirable or wrong.”<<ref "23">> Wolf is arguing that, by definition, one cannot have an authentic self, or any particular aspect of that authentic self, which is determined exclusively by influences of unreason. 

Before I offer any criticisms of further thoughts on Wolf’s view, we need to examine her disclaimer, as she believes many critics get her theory wrong. Let us give the Reason View the charity and justice it deserves. Wolf clarifies her view for us: 

Some people have understood my view to be too free to give praise – to imply, in particular, that anyone who acts well and does so on the basis of values she has gained from her culture or her upbringing can fairly be held responsible and praiseworthy for it. Still more have been concerned with the thought that my view automatically excuses virtually all criminals and exempts from blame anyone whose wrongful behavior can be traced to bad influences in his culture or upbringing. But these inferences rest on a misunderstanding.

Although I believe that there is an important disanalogy between good-acting agents and bad-acting agents, the disanalogy is quite specific: It is that a good-acting agent may have been irresistibly drawn to accept good values as a result of the exercise of good reason, whereas this can never be said of the agent who acts in a blameworthy way. It may be precisely because a person holds the values of her society up to reflection and questioning that she has no choice but ultimately to affirm (or reject) them. But if a man is irresistibly led to affirm bad values, this can only be because he was deprived of the ability to appreciate the reasons why those values are bad. This stress on the ability to appreciate reasons – reasons why one set of values deserves affirmation, while another set ought to be reconsidered and revised– is all-important. It is the possession or lack of this ability, and not the desirable or undesirable nature of the acts or the values themselves, that, on my account, makes the difference between responsible and nonresponsible agency.

Thus, according to the Reason View, a person who does the right thing for the wrong reasons deserves no more praise than a person who doesn’t do the right thing at all. Moreover, a person who does the right thing on the basis of values she doesn’t understand (a person whose acceptance of good values, in other words, is as blind and unreasoned as the acceptance of the racist’s values in our earlier example) is as little responsible for what she does as those whose paths lead to more objectionable behavior. 

Moreover, a person who does the wrong thing, though it must be for bad reasons, is not necessarily exempt from responsibility and blame. It is crucial to establish whether the person in question had reasons to act better available to him. In the cases I dwelt on, we imagined people who could not but have acquired bad values or false beliefs and so could not but have made bad decisions on the basis of them. But it is a real and difficult question how often such cases occur. If a person acts badly despite his ability to appreciate the reasons for acting better, then he is fully responsible and blameworthy for his choice. If, therefore, as some people believe, almost anyone is able to tell good values from bad (whatever her cultural or subcultural background), then almost anyone will be blameworthy should she choose a bad path.<<ref "24">>

I’d first like to offer the claim that the asymmetrical doorway to the Reason View isn’t obviously true. Wolf believes that when most people reflect on good values in people, they aren’t worried about the source or origin of those values, but when they reflect on bad values, they are worried about the source or origin. Wolf believes this asymmetry in folk-thought is the intuition which should drive us toward the Reason View. While I grant that folk-thought may have those differences, I don’t believe it is because they’ve thought much about it and decided there was actually a relevant and significant difference. Most people probably think (and perhaps they are mistaken in thinking) they have more important things to worry about than the source of good values in other people. Moreover, I would say the reason there is asymmetry is that, for whatever reason, people are naturally more interested in attributing blame than in attributing praise, and so naturally we tend to gloss over virtue and focus upon vice, even in matters of moral responsibility. I suspect that the asymmetry in folk-thought is not really a deeply inspected intuition, and that upon such inspection, people would be far more inclined to see symmetry instead. I take this as worrisome for Wolf’s argument because one of the primary goals of this article, according to Wolf, is to make sense of our intuitions about this topic. I don’t think Wolf nailed down the right intuition in this case, and in light of her goal, I worry it may not be an acceptable doorway to the Reason View. 

More importantly, Wolf suffers from Christine Korsgaard’s problem in that, at first glance, her theory provides unsatisfying answers to certain questions. What is a bad person? What is bad action? How can a person be responsible for doing wrong? Responsible persons seem, by definition, to be good and reasonable, and by definition exclude those who are wrong and unreasonable. The Reason View seems to cherry pick those who will and won’t be responsible by an asymmetrical standard which frankly seems unintuitive. Why can’t an authentic self be evil and responsible for irrationality and for choosing to be irrational? Wolf knows what’s coming. Does she dodge the bullet? 
 
From her clarification, the ability to rationally appreciate and understand why a value, belief, or action is right or wrong is the key to dodging this bullet. There seems to be two cases in which one can be held responsible for screwing up: 

# Doing the right thing or having the right value, desire, or belief for the wrong reason while having access to the right reason.
# Doing the wrong thing or having the wrong value, desire, or belief when one had access to the right reason to do a better thing or have a better value, desire, or belief.<<ref "25">>

Deontologists and Virtue ethicists explicitly seek the first. One might take this as checkmark in favor of Wolf’s view of moral responsibility.  The second is the more important case to solving the controversy. I must admit, Wolf hits upon something that is patently true to me in the second case. The question it forces us to ask goes something like this: How could we hold a person responsible for not understanding something was wrong (or bad), and consequently for being a person with wrong values, beliefs, desires, and/or actions, when the person did not have the necessary epistemic grounds upon which to generate the reason that it was wrong? There seems to be a potent kernel of truth in Wolf’s approach to moral responsibility. Just as I suggested before in the case of the Real Self view, it seems likely we must capture whatever it is in the Reason View, in light of Wolf’s clarification, that is necessary for moral responsibility.<<ref "26">> Our work is not finished, however, as I have three remaining questions for the Reason View:

# While we can make sense of an agent being responsible for bad action, can we make sense of an authentically bad people?
# Does the Reason View make sense of our initial intuitions which led to us to the Autonomy View while ultimately remaining compatibilist? 
# Does the Reason View survive the historical objections levied against the Autonomy View and the Real Self View? 
To the first question, exactly what counts as an authentically bad person may be a bit different than we would initially expect. An authentically bad person is a person who consistently fails to take the morally best option for the right reason, with the assumption that they had access to the right reason. Having access to the right reasons is odd. Exactly what counts as being rational and what it means to be motivated by rationality is a serious worry I have for Wolf’s theory. Rationality requires context. Lots of tricky and weird things seem to fall out of this fact.

For example, I think it takes a pretty complicated and unintuitive epistemic theory to show why racism or sexism in all cases and circumstances is not even minimally rational (don’t misunderstand me; I certainly think modern racists/sexists generally are being irrational in their racism/sexism). In fact, it seems very likely to me that someone who had access to only a limited amount of information (it may even be the “best data” available at the time) might actually be rational in accepting an unfortunately discriminating view. Perhaps one of the reasons racism and sexism have taken so long to be considered bad things is because they aren’t, epistemically-speaking, conclusions which are rationally as easy to arrive at when compared to other ethical issues (e.g. genocide, killing young children for sport, direct forms of slavery).
 
Take Aristotle’s misogyny. He might have been the most brilliant human to ever live. If any human could be called rational, it would have to be Aristotle, right? Yet, we can look back after thousands of years (with the benefit of billions of lives of consideration of these ethical issues which Aristotle didn’t have) and see that he made mistakes, his misogyny being one of them.

Do you really want to look at Aristotle’s misogyny (or his racism) which are products of his environment and his reasoning, and claim he was obviously irrational in this respect? It’s possible, I admit. Maybe gender equality is that obvious (it feels like it is to us today). If so, then surely Aristotle was rational enough to know misogyny was wrong, but decided not to be guided by that moral reason, and hence is morally responsible for his misogyny. 

It seems to me, however, that we can easily tell a plausible story about why gender equality was not obvious or accessible to Aristotle. Perhaps a deeply unfortunate self-fulfilling prophesy occurred in his culture. For whatever reasons, men thought or acted as if women were stupid, overly emotional pieces of property (as did many future generations, unfortunately), so women were treated and conditioned that way. Due to this conditioning, women’s development was stunted, and they ended up mirroring the social expectations. That vicious sociological cycle, however, may not have been readily apparent to Aristotle, and from what he could tell from his own limited experience, using what evidence he had, his unfortunate generalizations about women may have been epistemically justifiable, i.e. rational. 

To say that Aristotle “could not but have been a misogynist” is just to say that it was rational for him to be a misogynist. He was not morally responsible for drawing a conclusion he couldn’t have drawn, and hence is not morally responsible for being a misogynist. Yet, it seems like we should praise him, if rationality is the mark, for doing the best he could with what he had. Wolf’s racist (bypassing my earlier objection) seems to be the same. I don’t see why we would claim that a rational person, drawing rational conclusions, being motivated by rational reasons, should be held nonresponsible on Wolf’s theory. 

	What if we could describe every bad belief, desire, act, or conclusion drawn as being rational? What does it take to be irrational? Reasons guide you to do whatever you do on Wolf’s theory. If one reason wasn’t salient or relevant enough to an agent, then is it really the agent’s fault if he isn’t motivated by it? In order to explain the authentically bad person or even wrong action, Wolf needs to provide a plausible account of how one can possess the right sorts of reasons, but not be motivated by them. If we don’t have libertarian free will, it seems like having the right reason, but not being motivated by it is just being irrational. An authentically bad person is a person who consistently fails to take the morally best option for the right reason, with the assumption that they had access to the right reason, just is a consistently irrational person. 

But, if that is true, I fear that nobody can be at fault on Wolf’s theory. Rationality, after all, seems to be that which makes a person morally responsible. Wolf may not have dodged the bullet after all.

I’m hoping I’ve made a big mistake here. I have a lot of sympathy for her view. I think there has to be something fishy going on in the worry I presented, but I can’t seem to put my finger on it. Exactly why Wolf can dodge the bullet isn’t coming to me. For now, however, I’m not convinced we can really make sense of authentically bad people, nor am I sure that we can make sense of screwing up, as I defined earlier. 

In light of my response to the first question, I propose the last two questions are asking the same thing, even though it wasn’t obvious at first glance. To the second question, regarding historical objections, the Reason View has added the rational qualifier to the Real Self View in order to dodge the historical objections. If her theory dodges the bullet, and it can explain away the Autonomy View intuitions which ground the historical objection, then I see no reason why the Reason View doesn’t defeat the historical objections. 

Does the Reason View make sense of our Autonomy View intuitions? Perhaps it does. Again, it all rests upon whether or not Wolf’s theory dodges the bullet. The problem, of course, is that I think the reason her theory might not dodge the bullet is directly because of our incompatibilist intuitions. 

Just as I said before that a libertarian may actually (and probably does) employ the Real Self View alongside the Autonomy View, it seems as though the Reason View has something to it which may also be worth employing for the libertarian.

-------------------------------

<<footnotes "1" "Wolf, Susan. "Freedom within Reason." //Personal Autonomy: New Essays on Personal Autonomy and Its Role in Contemporary Moral Philosophy//. Ed. James Stacey Taylor. New York: Cambridge UP, 2005: 261">>

<<footnotes "2" "Ibid., 259">>

<<footnotes "3" "According to Wolf, autonomy just is libertarian free will. This is not a widely accepted definition, but I happen to be very sympathetic to that definition. Wolf’s primary goal is to provide an account of our moral responsibility, and she seems willing to jettison many standard definitions of autonomy to reach that goal. ">>

<<footnotes "4" "Ibid., 261">>

<<footnotes "5" "I’m only pointing to the tip of the iceberg for this problem due to space constraints in this paper, but rest assured, it is an iceberg of a problem for the libertarian. For example, the standard regress problem appears to be alive and well in this iceberg. ">>

<<footnotes "6" "Ibid., 261-262">>

<<footnotes "7" "Ibid., 262">>

<<footnotes "8" "Ibid., 263">>

<<footnotes "9" "Ibid.">>

<<footnotes "10" "Ibid.">>

<<footnotes "11" "Ibid.">>

<<footnotes "12" "Ibid., 264">>

<<footnotes "13" "Ibid., 264-265">>

<<footnotes "14" "Ibid., 265">>

<<footnotes "15" "Ibid.">>

<<footnotes "16" "Ibid., 266">>

<<footnotes "17" "Ibid., 266-267">>

<<footnotes "18" "Ibid., 267">>

<<footnotes "19" "Ibid., 267-268">>

<<footnotes "20" "Ibid., 269">>

<<footnotes "21" "Ibid.">>

<<footnotes "22" "Ibid., 270">>

<<footnotes "23" "Ibid.">>

<<footnotes "24" "Ibid., 271-272">>

<<footnotes "25" "Presumably, there may be degrees of rightness and wrongness in Wolf’s model.">>

<<footnotes "26" "I fear that I cannot quite put my finger on it just yet. It will require more thought.">>
In “The Pyrrhonian Problematic,” Markus Lammenranta elucidates various approaches or versions of the Pyrrhonian Problematic. He considers three interpretations of it. He argues that the first two interpretations are not problematic at all, as they do not ordinarily and on a wide-scale “induce suspension of belief,” but that the last interpretation actually does pose a significant skeptical challenge to modern philosophers.<<ref "1">>

The first interpretation points to the impossibility of finite beings having justified beliefs via the regress problem found in the five modes of Agrippa.<<ref "2">> The second interpretation, what Lammenranta calls the “Practical Problem,” claims that because all opposing arguments are equipollent (have equal force or merit), one can’t decide which arguments should be believed, and thus one should suspend all beliefs.<<ref "3">> The third interpretation, the “Dialectical Problem,” stems from the worry that we cannot resolve disagreements in the dialectic without resorting to question begging, a practice which he considers to be normatively and/or rationally unacceptable, and thus the dialectic becomes at least unsatisfactory if not outright impotent.<<ref "4">>

I can’t hope to provide my thoughts on Lammenranta’s arguments concerning each of these interpretations in the space I have, so I will concentrate on the first interpretation. I’m going to explicate Lammenranta’s argument, offer questions of various steps along the way, and consider whether or not he is right in thinking that the regress problem fails to pose a serious skeptical challenge because it does not ordinarily induce wide-scale suspension of belief.

Naively, the broad version of the skeptical problem goes:

# If we are not justified in believing anything, then we should suspend our beliefs and not believe anything.<<ref "5">>
# We are not justified in believing anything.
# Thus, we should suspend our beliefs and not believe anything.

Before we can even get to why one would agree to the controversial second premise, and essentially before the nuts and bolts of this argument (which support the premises) can be pieced together, we should be worried already about the overall goal and nature of the argument. Obviously, this broad argument is self-refuting, as by the conclusion, the propositions themselves are not to be believed. Our initial inclination may be to dismiss any attempt to make this broad argument in virtue of the self-refutation alone.

Instead of dumping the argument entirely, Lammenranta points out that this is part of the dialectic strategy of the Pyrrhonian skeptics, who merely employ the argument using propositions and arguments that we, the dogmatists, are willing to accept. Supposedly, this dialectical move does not pose a problem for the skeptic, but does pose a problem or paradox for the dogmatist who may be willing to accept the premises and the form of the argument, but not the conclusion. 

Does the dialectical move really not pose a problem for the skeptic? If so, does it matter? Is the regress problem possibly like a “ladder that we throw away once we have climbed up it?”<<ref "6">> This self-refuting move reminds me of standard, introductory interpretations and criticisms of relativism. Admittedly, I don’t see why one would engage in the dialectic at all as a skeptic, and yet perpetual inquiry does seem to be at the heart of Pyrrhonianism. What reasons or justified beliefs could they give for inquiry and engaging in the dialectic? I don’t know. 

Further, even when we might be inclined to suspend all of our beliefs, it may be part of the ordinary human condition that we form and hold beliefs. In this case, the skeptic may argue that we sit in a cycle whereby we toggle between the suspension of beliefs and the formation of beliefs. Perhaps the skeptic is in the business of building, climbing up, and disposing of ladders. As Lammenranta points out, even if we are caught in some skeptical cycle, it would be plenty destabilizing to our beliefs and a serious epistemic challenge.

Perhaps these concerns don’t really matter, as ultimately the dogmatist should be most worried about whether or not the argument is really challenging his own view, without considering how it impacts or works for the skeptic. If the skeptic is right, it doesn’t really matter how it works for the skeptic, does it? 

Even if we don’t agree or accept this broader argument, we can at least hope to gain some insight into which theories of justified belief are in a better position to explain the force of this skeptical argument and perhaps where it goes wrong. Since the form of the broad argument is valid, let us set aside the self-refutation issue and focus upon the premises. Why should we agree to the first premise? 

One should only hold a belief which is justified. It isn’t clear exactly how we should understand “should” here. Is it an ethical obligation, an epistemic obligation, or both?<<ref "7">> For example, maybe we have an epistemic duty not to hold an unjustified belief, but ethically we do. I don’t know. Admittedly, several interpretations of this premise are very compelling. Unjustified beliefs seem arbitrary, unuseful, and both practically and theoretically unacceptable. This premise may not get as much attention or support as it deserves, and that’s probably because we have strong intuitions which favor it.

In support of the second premise of the broad argument, the Pyrrhonian skeptic employs the narrower regress problem. Lammenranta explains:

# In order to be justified in believing something, one must believe it on the basis of good reasons.
# Good reasons must themselves be justified beliefs.
# Therefore, in order to be justified in believing something, one must believe it on the basis of an infinite number of good reasons.
# No human being can have an infinite number of good reasons.
# Therefore, it is humanly impossible to have justified beliefs.<<ref "8">>

This regress argument provides compelling support for the second premise of the broader skeptical argument. Defeating the regress argument is important, and many theories try to resolve the problem. Coherentists do not need to agree to the third premise, agreeing to infinitism because beliefs and reasons are justified through a finite circularity. Foundationalists deny the first premise because the chain of justification ultimately boils down to basic beliefs which don’t themselves require further justification. Lammenranta claims that epistemic contextualists can deny the second premise because “the chain of good reasons can terminate in beliefs that are not themselves justified.”<<ref "9">> Of these three approaches, the contextualist’s denial remains the only confusing one to me.  Lammenranta’s explanation of why the contextualist can deny the second premise seems to be just the outright denial of the second premise. 

Perhaps I just don’t understand contextualism.<<ref "10">> Contextualism doesn’t exactly seem to be a theory of justified belief in quite the same way as coherentism and foundationalism, but rather a theory of semantics and the use of language in attributing knowledge. In this theory, claims to knowledge are true or false based upon the context in which they are uttered. So, while the proposition “X knows p” in context S1 may be true, the same claim may be false in context S2. 

The contextualist’s response to this problem of skepticism seems to be that within the context of skepticism, which has very high epistemic standards, all (or most all) propositions “X knows p” are indeed false. However, in other contexts which don’t have such high epistemic standards, which may be most contexts, propositions of the sort “X knows p” can be true. 

Beliefs are justified in virtue of the context in which they are considered. I don’t think the contextualist is claiming that in all contexts the second premise should be denied, unlike the denial of the first premise by the foundationalist or the third premise/conclusion by the coherentist. In the context of skepticism, premise two seems acceptable, and thus the regress may hold, and thus the broader argument may also hold. The contextualist avoids skepticism in most contexts by embracing skepticism only in the context of skepticism and disregarding it in other contexts. The second premise seems to be denied only most of the time, but not always. Generally, good reasons are not justified by other beliefs but rather by the context.
In any case, these theories address the regress by denying premises which allow them to deny what Lammenranta calls infinitism. He believes it is the skeptic’s job to show why infinitism (regarding this chain of justification) is plausible at all.

In our ordinary “practice of giving and asking for reasons,” we find that justification is finite. It isn’t appropriate or normal to continue asking ad infinitum “Why?” and “What justifies that belief?” in the everyday sort of language game.<<ref "11">> The skeptic, however, is convinced that we should continue asking for justification, even when ordinarily we don’t. Hence, the skeptic pushes for infinitism. Lammenranta also considers the possibility that a skeptic may find infinitism true even in the case of foundationalism. 

Lammenranta concludes that because the skeptic isn’t adhering to ordinary practices of giving and asking for reasons, and because our usual justificational practice isn’t concerned with the skeptic’s standards at all, we should not take seriously the skeptic’s inappropriately high epistemic requirements. Essentially, at least from Lammenranta’s perspective, the Pyrrhonian regress problem should not induce wide-scale suspension of belief because our ordinary epistemic practices aren’t concerned with the skeptic’s inquiry. 

I don’t know if he is right about this. Just because the regress problem does not ordinarily induce wide-scale suspension of belief does not clearly demonstrate that it isn’t a serious skeptical challenge. Why isn’t a serious challenge for a philosopher, which the regress problem seems to be if the various possible solutions (e.g. foundationalism) don’t work, not also a serious challenge for ordinary folks? Also, just because skeptical arguments don’t, as an empirical fact, actually cause us to suspend all our beliefs doesn’t mean that we shouldn’t suspend all our beliefs. What we ‘should do’ and what we ‘actually do’ are different, and I think the skeptic is pointing out what we should do, while Lammenranta is pointing toward what we actually do. Perhaps Lammenranta is ultimately, although not explicitly, employing a contextualist sort of argument. 

------

<<footnotes "1" "Markus Lammenranta, 'The Pyrrhonian Problematic,' in //The Oxford Handbook of Skepticism//, ed. John Greco (Oxford: Oxford University Press, 2008): 9-10">>
<<footnotes "2" "Ibid. 10">>
<<footnotes "3" "Ibid. 13">>
<<footnotes "4" "Ibid. 18">>
<<footnotes "5" "Ibid. 10">>
<<footnotes "6" "Ibid. 11">>
<<footnotes "7" "We need to consider how those pieces fit together as well.">>
<<footnotes "8" "Ibid. 11">>
<<footnotes "9" "Ibid. 11-12">>
<<footnotes "10" "Be patient and lenient with me, please.">>
<<footnotes "11" "Ibid. 12">>
An intention is the aim, plan, or purpose of an action. Intentions demonstrate the “for the sake of which” of an action. While actions can fail or succeed, intentions don’t admit of failure or success in the same way. An intention seems to be an expression of our motivations. Ultimately, an intention is the result of a choice concerning what one will pursue and why, and it is obviously a significant, practical aspect of moral philosophy.

 In standard forms of utilitarianism, intentions are morally irrelevant, as only the results of action have any value. In virtue theories, intentions are morally relevant to some extent, as they are crucial to the psychology of the virtuous agent. I’m going to explore whether and to what extent (if any) intentions are morally relevant in Kant’s ethics. In order to answer this question, we will investigate what Kant has to say about the good will, action, and duty. 

Kant begins the Groundwork by priming our intuitions about the nature of the good will. He says only a good will is good and nothing else is absolutely good without limitation.<<ref "1">> In contrast to the good will, other mental talents, inclinations, and psychological characteristics can be desirable (even encouraging the good will), being contingently and circumstantially good, but they aren’t necessarily and always good because they can be used for evil and by an evil will. Even actions have conditional moral value.<<ref "2">> Only a good will is necessarily, unconditionally, and always good.

A good will is not good because it causes some other end, rather it is an end in itself. Even a will which isn’t efficacious is still good, shining by itself like a jewel.<<ref "3">> This is a key consideration for answering our question concerning the moral relevance of intentions in Kant’s theory. Note that whether or not action bears the sort of fruit we expected, as sometimes it doesn’t, a good will underlying that action remains unblemished and just as morally potent and worthy. In contrast to utilitarianism (a theory which Kant seems to have anticipated), Kant’s theory is far less concerned with consequences of actions, and far more concerned with the will which expresses action.<<ref "4">> In this light, good intentions seem to have similar characteristics to the good will, and thus intentions seem morally relevant in Kant’s theory.

We come to realize that the good will is unconditionally valuable because it is determined by reason and the moral law.<<ref "5">> Obviously, action need not be determined by reason or the moral law. We may act from our inclinations, our instincts, and other sentiments. Actions, unlike the good will, are suspect. To be clear, I am not saying that actions cannot be valuable or have merit. Actions certainly can have moral worth according to Kant’s theory, but only under certain conditions. Our duty, which springs from the moral law, is essential to understanding the relationship between good will and action. 

We must act from, not merely in accordance with, duty.<<ref "6">> An action has moral worth only when it is selected by the moral law and executed out of respect for the moral law. The intentions behind our actions matter. If we intend to do action X for the sake of desire satisfaction or mere happiness, then that action lacks moral worth. In contrast, if we intend to do action X solely for the sake of the moral law, then our action has moral worth. The intentions behind our actions are the essential ingredient to determining the good of the action. Kant provides some famous examples of which elucidate the relationship between duty, intention, and action.

The honest shopkeeper acts in accordance with and in no way contrary to his duty to serve people honestly.<<ref "7">> Yet, he is motivated by self-interest, acting not from duty, but from merely prudential reasons. His action may be right because it conforms with his duty, but it is not good action because it is not done from his duty.<<ref "8">>

The suicidal man who wants to die “yet preserves his life without loving it, not from inclination or fear but from duty” has a maxim with moral content.<<ref "9">>  The man had a duty to preserve his life, and despite his inclinations contrary to his duty, the man acted from duty alone, and thus he performed an action of moral worth. 

Likewise, the sad philanthropist who has no emotion of sympathy for others and yet is beneficent from duty alone is to be praised. His action has “genuine moral worth.”<<ref "10">> To be beneficent from inclination, which is merely in accordance with but not from duty, lacks moral worth. This makes sense, as surely the sad philanthropist cannot be held directly responsible for his emotions, but he can be held responsible for rational choice and acting from duty. 

Pathological love, like other inclinations, cannot be commanded. We cannot be held responsible for inclinations, although we are held responsible for acting from inclinations. Practical love, in contrast to pathological love, can be commanded. Acting from duty can be commanded, and we can be held responsible for this.<<ref "11">> Our intention is morally relevant to action. An action has merit solely in virtue of being performed out of respect for the moral law. 

Kant’s examples, such as that of the sad philanthropist, sit in stark contrast to the virtue ethicist’s assessment. Having the right sort of inclinations and emotions are central to being virtuous, and yet, as Kant points out, it is only the rational choice to act from duty alone which has any moral relevance. Intentions are morally significant, but the sorts of intentions which Kant’s theory demands of us are very different from the sorts demanded by virtue theories. 

Intentions and universal moral law seem to be at the heart of Kant’s theory, in contrast to action and consequences as found at the heart of consequentialist theories or character and inclination as found at the heart of virtue theories. If the purpose, aim, or goal of an act is to follow the moral law, acting from duty, only then is that action a good action. So, while the moral law supplies us with the content of what is right and wrong, our intentions seem to be necessary conditions for achieving anything of moral worth. Intentions are clearly morally relevant in Kant’s theory of ethics. 

Since we’ve briefly sketched out Kant’s position, we should briefly evaluate it. What parts work and what parts don’t; which aspects are strong and which are weak? Do we have lingering questions or considerations which require clarification (issues that Kant may even address elsewhere)?

In the general examination of the moral relevance of intentions, it may be useful to reflect upon our moral intuitions to see if they offer any guidance. For example, intentions seem so potent a concept in Kant’s theory that they seem to overshadow actions almost entirely. Kant lends almost no credence to consequences. Do our intuitions really match that? Surely, we are tempted to think that consequences matter, even if only a little. Shouldn’t we strongly prefer action in accordance with the moral law, even if it isn’t out of respect for the moral law, to action contrary to the moral law? We may even be tempted by our intuitions to agree that acting out of respect for the moral law is morally better than action that merely accords to the moral law, but also claim that the later is still morally better than nothing or morally better than acting contrary to the moral law. It isn’t clear that Kant makes room for this. Moral intuitions may be a problem for Kant’s theory.

Take the example of the evil man who is stranded on an island and yet has every intention of blowing up the world with a doomsday device. He tries to blow the world up, but he fails due to his circumstances. It seems like Kant will call this man evil. Our intuitions agree on this point. We might, however, ask: Isn’t this man better, in some morally significant sense, because he is unsuccessful and his actions fail to blow up the world? Maybe. 

I’m not saying Kant doesn’t have a response to arguments from moral intuitions, but it does seem to be a possible problem for Kant’s theory. Some of us may feel the pull of intuitions which wish for action and consequences to be a counterbalance to intentions. Even the dreaded egoist who just so happens to miraculously act in the accordance with the moral law (however improbable that may be) does seem to be doing good, to be doing something of moral worth, to get at least one thumb up from the objective spectator, even if he doesn’t get both thumbs up. It is here I feel unsatisfied by the role and raw strength of intentions in Kant’s theory, particularly as it overshadows consequential thinking of any sort. 

At the heart of this problem is really a discussion about the natures of and relationship between the Right and the Good, which is sadly way beyond the scope of this paper. I wish Kant were clearer on these fundamental metaethical issues.<<ref "12">>

Perhaps, for example, there is possible distinction between Right action and Good action in Kant’s theory. We might interpret Kant as claiming that right action is merely acting accordance with the moral law, but that good action is right action done from duty alone. This makes sense of the claim that an action with any moral worth, i.e. goodness, is both in accordance with and for the sake of duty. Moral worth is then a value attribution of the good. This strikes me as being somewhat odd, as ‘right’ is very incomplete on this interpretation. Another interpretation seems to be that right action requires being both in accordance with and from duty, and the fact that it is good, hence good action, is a product of it being completely right. 

Further, we might be worried about the goodness of the good will. Admittedly, it seems analytically true that the good will is unconditionally good (what else could it be?). But, to say, for example, that “the good will is unconditional but not complete” raises other questions or concerns. We need a theory of the good. Clearly, I’m only touching upon the tip of an iceberg. 

There are several strengths of the argument as it is formulated. Going back to my intuitions, I find that intentions should be a very significant aspect of any viable moral theory, and I would reject a moral theory that didn’t view intentions as being morally relevant. For example, there is a moral distinction between intentionally stepping on my foot and unintentionally doing so. Yes, both have the same consequences, but why someone performed the action also matters. Intentions seem intuitively crucial in this way. If a person unintentionally stepped on my foot, upon realizing what happened, they might ask for me to pardon them, and I would have to view their action as morally benign. If someone intentionally stepped on my foot and smirked at me, I would have to view their action as being a bit evil. Interestingly enough, someone may step on my foot intentionally for a good reason, and while I might not have realized it at the time, upon reflection, I may be grateful that they intentionally stepped on my foot. Intentions intuitively are a moral matter.

I’m going to conclude with one of the greater and yet sometimes neglected strengths of the argument Kant has given us in this section. This theory concerning intentions makes sense of moral responsibility in ways that alternative theories fail. I alluded to this earlier, and I think it is a fantastic aspect of Kant’s theory. It seems as though many things which virtue theorists and consequentialists wish to hold us responsible for are not the sorts of things for which we can be responsible. For example, we can’t see all of the consequences of our actions, and we can’t control which emotions and inclinations we have. What is “up to us,” however, are our intentions, and because of this, Kant’s emphasis on intentions provides a better perspective on moral responsibility than other theories. 

---------------------------

<<footnotes "1" "Kant, Immanuel, and Mary J. Gregor. //Practical Philosophy//. Cambridge: Cambridge University Press, 1996: 4:393">>
<<footnotes "2" "4:397">>
<<footnotes "3" "4:394">>
<<footnotes "4" "4:399-400">>
<<footnotes "5" "4:400 and 6:213">>
<<footnotes "6" "4:397">>
<<footnotes "7" "Ibid.">>
<<footnotes "8" "6:224">>
<<footnotes "9" "4:398">>
<<footnotes "10" "Ibid.">>
<<footnotes "11" "4:399">>
<<footnotes "12" "Obviously, I’m grateful to receive what I’ve got; I don’t mean to complain. ">>
VIM, violence inhibition mechanism, is a functionally defined (Input->VIM->output) affective state. It produces a withdrawal behavior provoked by aversion to displays of distress in other members of the species. This is a necessary condition (although probably not sufficient) for moral competence, where moral competence is concerned with an ability to consistently do the right thing, perhaps for the right sorts of reasons and/or with the right sorts of affective states. Without VIM, an individual will not develop a distinction between moral (e.g. don’t torture babies) and conventional rules (e.g. wear green on St. Patrick’s day), and they will fail to recognize and empathize with others in pain, distress, and sadness. Since VIM and these capacities are thought to be necessary conditions for moral competence, and since psychopaths lack VIM and these capacities, psychopaths are not morally competent.

Blair studied a fairly small number of psychopaths (I believe it was around 10 psychopaths and 10 non-psychopaths). He predicted that psychopaths will: (1) fail to distinguish between moral and conventional rules, (2) handle moral rules like conventional rules regarding permissibility, and (3) be less likely than normal folk to identify pain or sadness in others. The first and last prediction was shown to be the case, and Blair explains this in terms of psychopaths lacking VIM. We might worry that this test is far too small a sample size, but I believe it has been confirmed by other tests.

In another test, psychopathic children were tested for the ability to determine six basic emotional expressions (at given stages, with certain accuracies, weighted for IQ, and compared to a control group). They were shown to be less sensitive to fear and sadness than non-psychopathic children. Again, this is supplied as evidence for the moral incompetence of psychopaths.

What is interesting is that psychopaths often know (in the cognitive sense) what others expect in terms of moral judgments. Psychopaths are excellent manipulators. Even if they actually knew what they ought to do (which is part of the debate here), they fail to be motivated by moral judgments/beliefs.

Autistic individuals are compared to psychopaths because they exhibit similar problems. Autistic individuals can lack empathy and the sort of social emotions that might be required for moral competence (depending upon how you want to define moral competence). They can often treat people merely as a means. I'm thinking of the anecdote where the autistic child used his mother's hand to open the refrigerator, as if she were merely a tool. Unlike psychopaths, autistics are thought to distinguish moral and conventional rules. Although autistic individuals can’t mentally represent another person’s pain, Blair claims that autistic individuals do have VIM.

We can raise some worries, however, about the moral competency of autistic individuals. While the social handicap of autism can prevent them from deceiving others, preventing them from corruption and ugly dispositions (jealous, lying, cheating, etc.), this moral innocence isn’t moral character or agency. In many cases, it seems as though autistic individuals seek order (and sometimes morality) simply out of self-preservation, for the sake of having rules and regulation to make life livable, and not out of moral feelings and for the sake of the moral law.

These pathologies might suggest that human beings are moral beings because of our affective and perhaps even instinctual natures. VIM, for example, might be the result of evolutionary selection, where populations with VIM likely lived and prospered and populations without VIM perished (which makes a lot of sense). Moral competence isn't always up to us. We have to be born with certain conditions and capacities (and likely raised in certain ways) to be morally competent.

-----------------------

Confabulation is post hoc rationalization, where arbitrary “reasons” or stories are automatically, spontaneously, and possibly involuntarily created to justify a judgment or belief.

Dumbfounding is being unable to tell how or why one reached a judgment or why a belief is justified. When all reasons that a person did have for a belief or judgment are rejected and shown to be in error, the person sticks with the belief or judgment anyways. What justifies the belief or judgment ends up being an intuition, not a reason. This intuition is not based upon reasons at all, and instead it is associated with automatic, quick, non-cognitive, and unconscious reactions. 

Both confabulation and dumbfounding appear to be associated more with deontic (and perhaps rule utilitarian) reasoning than consequentialist reasoning. Consequentialist reasoning is generally slow, it employs explicit and conscious reasoning (likely using our frontal lobes/cortex) which sits in contrast to deontic "reasons." 

Confabulation and dumbfounding demonstrate a profound rift between the cause and (what we hope to be) justification of our beliefs. They reveal that reason-based justification is merely epiphenomenal and post-hoc. Intuitions and affective dimensions of our psychology seem to be running the show. Our beliefs are manipulated by rationally arbitrary causal factors. We might be very unhappy with this problem because we generally want our reasons, rather than intuitions or affective dispositions, to be both the cause and justification of our beliefs. 

Haidt’s social intuitionist model seems like a serious threat to rationalist models (who want reasons to justify and cause our moral judgments and beliefs). Standard Kantian moral theories, for example, seem impossible to fulfill if we confabulation and dumbfounding do show that the cause of our moral beliefs or judgments will be something other than reason. I would go so far as to say that many (if not most or all) cognitivist moral theories are in trouble. 

Railton argues that the causal factors which drive intuitions need not be rationally arbitrary. Once explicated, those causal factors might be good reasons. See the lawyer example. In terms of what was accessible to her, consciously and explicitly, she didn’t have a good reason to change her argument. But, there were some very good, objective reasons to change her argument that seem to be independent of her. 

I’m not sure if Railton’s argument is all that successful. Yeah, there were good reasons, but were they actually her reasons? No. The worry that cognitive moral judgment is impossible if we are reduced to confabulation and dumbfounding appears to remain, even after Railton's argument. That there are theoretically, objectively good reasons for a mathematician to believe Goldbach’s conjecture doesn’t mean the mathematician has access to or actually employed those reasons or that the mathematician’s intuition is based upon those reasons. A same sort of problems seem to exist for moral judgment. 
I’m going to examine contemporary notions of autonomy, present Kant’s theory of autonomy, investigate the moral significance of this autonomy, compare his notion with contemporary notions, and consider a possible problem for Kant’s theory. Contemporary views of autonomy generally hinge upon three fundamental concepts of self-governing: sovereignty, authenticity, and accountability.<<ref "1">> Contemporary theories of autonomy try to offer an account of at least one (if not all three) of these concepts, while Kant offers an account of authenticity and accountability.

By sovereignty, we speak of physical, political, and social self-rule.<<ref "2">> Autonomy based on sovereignty is concerned with coercion, socio-economic status and opportunity, self-ownership, etc. For example, when someone puts a gun to your head and tells you to jump, you seem to have a choice about whether or not you will jump in a significant sense, and yet you seem forced to jump (lacking a choice) in another substantial sense. This latter sense, essentially coercion, is a violation of the sovereignty. 

Sovereignty is a capacity to govern oneself in the most obvious and literal sense: self-governing as political self-governing. Further, sovereignty seems to be a set of sociopolitical goals and rights we seek. For example, children eventually want to make life decisions for themselves; people don’t want a government suppressing their free speech; and, no one wants a gun pointed at his head. 

The second fundamental concept, authenticity, pervades contemporary analyses of autonomy. The central problem of authenticity is figuring out how to differentiate our authentic desires and beliefs from inauthentic ones. When a person isn’t being authentic, he is thought to lack autonomy.<<ref "3">> For example, a person profoundly manipulated by hypnosis may be furnished with inauthentic desires which aren’t a genuine part of the authentic self of that agent, and acting upon those desires would demonstrate a lack of autonomy. Further, depression, drug-use, systematic conditioning, etc. are often considered autonomy-defeaters in authenticity-based models of autonomy.  We must ask: who is the ‘real you’? There are many routes to answer this question.4   Authenticity-based autonomy may or may not be a capacity, depending on which model is considered. Authenticity, however, is certainly a goal. We want to be ourselves, and we want to be governed primarily by our authentic selves. It is unclear how authenticity plays a role in our rights other than pointing out “who” we assign rights or duties to.

Accountability is the last branch of contemporary notions of autonomy. Autonomy, in this light, is an explanation of whatever it is about us that makes us morally responsible agents. Generally, the requirements of accountability include rationality, consciousness, self-reflection, etc. In addition to these requirements, some concept of “choice” is the vital accountability-making ingredient to our autonomy. For the libertarian, choice originates in an agent’s free will. For the compatibilist, choice is just doing what you want to do. In both cases, autonomy requires an agent to be free from external forces (insofar as that is possible) and to be bound only by one’s self in making choices. In contrast to sovereignty, this concept is wrapped up in the metaphysics of self-governing, describing choice at a more fundamental level. Taking the gun example, whether or not you will jump is ultimately still ‘up to you’. You may get shot for choosing not to jump, but that is your accountability-making choice. Models of autonomy which focus upon accountability are primarily concerned with the capacity to choose between right and wrong. Further, being a moral agent, being accountable for one’s choices, and making choices that matter, is a goal. Life is meaningful because we are accountable – nothing really matters without this capacity.  Again, it is ordinarily thought that our moral obligations and rights exist in virtue of accountability-making autonomy. 

Kant’s autonomy deals in freedoms, in both the negative and positive senses. Independence from external forces is freedom in the negative sense, while giving oneself law is freedom in the positive sense.<<ref "5">> Kant’s autonomy is concerned with self-legislating, giving oneself law as an unmoved mover, rather than mere self-governing.<<ref "6">> The significance of the Categorical Imperative (CI), the law which is legislated, is highlighted in Kant’s theory of autonomy. The CI is a law which constitutes our reason, not an empirical law from which we can unbind ourselves. We don’t explicitly and consciously choose the CI. Rather, our reason stipulates this law implicitly, immediately, and unreservedly. Just as the basic laws of logic are embedded in the very fabric of our reason, the CI is constitutive of our reason. Indeed, our reason commands the CI as universal and necessary from even very young ages.<<ref "7">> As self-legislators with reason, we are the authors of the bindingness of this law.<<ref "8">>
 
Since I have very limited space and time, I will only explicate what I consider the central key premise of Kant’s autonomy, which is this: 

<<<
The practical rule is therefore unconditional and so is represented a priori as a categorical practical proposition by which the will is objectively determined absolutely and immediately…For, pure reason, practical of itself, is here immediately lawgiving. The will is thought as independent of empirical conditions and hence, as a pure will, as determined by the mere form of law, and this determining ground is regarded as the supreme condition of all maxims…Pure reason is practical of itself alone and gives (to the human being) a universal law which we call the moral law.<<ref "9">>
<<<

Reason provides the necessary and universal moral law. This moral law is constitutive of our reason. Our reason commands, legislates, binds us to, and has embedded within it the CI. Interestingly, there seem to be both active (the legislating) and passive (the constitution or definition of reason) components of Kant’s autonomy. This premise does an enormous amount of work for Kant, and it is the key ingredient to both Kant’s autonomy and to moral obligation in general. This crucial premise of Kantian autonomy demonstrates not only the bindingness of the moral law, but it is also, on Kant’s view, part of why only this kind of autonomy can ground human dignity and generate moral obligation.<<ref "10">>

Kant’s obsession with necessity and universality motivates this grand claim. Indeed, we must investigate the moral law and its foundation, both of which must be absolutely necessary and universal, else we’ve failed to capture genuine morality entirely.<<ref "11">> Moral reasons by definition are overriding and motiving reasons, and the grounds to moral reasons must be unshakeable, else they may generate overridable or unmotivating reasons. Empirical principles, anything which is contingent or relative, cannot ground morality.<<ref "12">> Desires and inclinations, for example, can neither generate nor provide a foundation to moral obligation because they change (contingency) and they vary from person to person (relativity which lacks universality). Likewise, any possible external values or commands out in the world are not necessarily motivating; these external, relativistic, and contingent laws may rely too heavily upon our desires or inclinations (which are themselves contingent) to seek or obey them. External values or commands cannot ground or generate moral obligation since they lack necessity and universality. Kant’s autonomy, apparently, doesn’t have this problem, since those persons with reason, by definition, are commanded by their reason to author, legislate, and permanently bind themselves to the CI. Since no other theory can generate necessary or universal moral obligations, as they are empirical, contingent, and relative, surely we must realize that Kant’s autonomy is the essential condition of the possibility of morality.<<ref "13">> 	

That is Kant’s autonomy in a nutshell. How does it measure up to contemporary notions of autonomy? Clearly, Kant’s autonomy is not a political concept at all and has little or nothing to do with the modern concept of sovereignty.<<ref "14">> Kant is concerned with the authentic self, although not in the way we normally envision. Kant has a coherentist model of autonomy, where the coherence standard is reason.<<ref "15">> ‘Who you really are’ just is your reason. Very distinct from modern notions: on Kant’s theory, an empirical identity is ruled out, as such an identity could unbind the self from the moral law. The self is pure practical reason, and it is not empirical or a kind of introspection (where we ask: “Should I do A or B?”). If it isn’t empirical, then maybe it is noumenal, but it can’t be anything like the freewill libertarian’s view.<<ref "16">> The categorical self, law giving of its own kind, is not dependent on desire, society, or nature, but instead must be unconditional.<<ref "17">> Built into the notion of Kant’s authenticity model of the self is the third modern hinge, accountability. The sort of accountability-making “freedom” (a.k.a. autonomy), being an unmoved mover, confusingly makes sense and yet remains somewhat odd.<<ref "18">> Kant spends a good deal of time trying to establish that only his version of authenticity which results in our accountability and moral obligation, and it makes sense how these contemporary topics of autonomy have developed as a response (at least in part) to Kant’s theory of autonomy.

Kant’s autonomy needs to be a capacity, a capacity of the will, a capacity to legislate. Admittedly, it is somewhat unclear exactly how the active/passive issue I mentioned earlier is ultimately worked out, but it is clear that such an explanation provides much needed context for this capacity. Kant’s autonomy is a goal which emphasizes the CI, duty, and treating people as ends and not merely as means. Clearly, if Kant is correct in thinking his theory of autonomy is the condition of the possibility of morality, then he’s providing the foundation to any discussion of duties and consequently rights at all (which is a far bolder claim than most theories of autonomy). 

I have a number of concerns, but I will only bring up one. Kant’s conceives of the authentic self as non-empirical, and the result is that desires and inclinations are morally arbitrary and are not a part of one’s authentic identity. This goes against my intuitions.<<ref "19">> I can agree that sometimes my desires and inclinations aren’t really mine, they aren’t part of who I really am, and I can agree that those are morally arbitrary to my authentic self.  I am not convinced, however, that in all cases and at all times my desires and inclinations are morally arbitrary, incidental, inessential, and failing to be part of that which comprises my authentic self. I have desires which I endorse and see as being essential to who I really am as a moral agent. Kant has a very radical view (mostly a good thing), but it may be so radical that it fails to capture, validate, or explain my intuition here.<<ref "20">>
 
What are the effects of disagreeing with Kant here? Can I just re-write this section on autonomy to fit my intuitions? The answers are ‘likely disastrous’ and ‘no, or at least probably not.’ Kant seems to be right in his obsessive pursuit of necessity and universality, and he’s quite systematic about it. That’s what I want my moral theory and agency to rest upon, too! If I take this necessity and universality intuition plus my empirical self intuition, the result seems to be that I am not actually or at least not fully a moral agent. This, of course, goes against my third intuition, which is that I am a moral agent. 

Kant may reply that my intuition for being a moral agent is stronger than my intuition that empirical matters form vital aspects of my authentic self. That might be true. Further, if I really am a moral agent, and if his theory of moral agency is correct, and hence my identity must rest upon what is necessary, absolute, and universal, then perhaps my intuitions are contrary, and I should release the weaker one, namely that my empirical self is (to some extent) essential to my authentic self. This would save my stronger intuition while demonstrating that my weaker intuition was wrong. But that still does not seem to resolve my problem. Kant’s arguments for what counts as moral agency demonstrate the contrariness of my moral agency and empirical self intuitions. Why should I give these up? Why not just jettison Kant’s argument in this case? His argument is not obviously correct, at least not immediately, and maybe it is the weakest of three intuitions I have.

Lastly, Kant might just concede that he isn’t really interested in the authentic self that I’m worried about at all. He could simply attack the notion of the authentic self, as contemporary folks conceive of it, as being largely irrelevant to moral agency and generating moral obligations. If that is the route he would take, then contemporary thinkers must explain why their conception of the authentic self is really so significant or relevant to moral agency.

-----------------------------

<<footnotes "1" "It is not easy to define contemporary notions of autonomy since they are so rich and diverse, but I think this is a fair breakdown.">>
<<footnotes "2" "Sovereignty might be thought of as political autonomy. It deals in various kinds of freedom, whether freedom as non-frustration from impediments (be they man-made or natural) as with Hobbes and Mill, freedom as non-interference from agent-driven hindrances as with Berlin and Nozick, or even freedom as non-domination as with Petit.">>
<<footnotes "3" "Colloquially, we refer to authenticity when we talk about “keeping it real,” or “frontin’,” or “being true to yourself.”">>
<<footnotes "4" "Ahistorical accounts of authenticity-based autonomy, as found with Frankfurt and Dworkin, see the ‘real you’ as a structure of your will, where (briefly speaking) the authentic self is a kind of congruence between First Order and Second Order (and higher order) desires. Historical accounts, such as Christman’s, attempt to resolve the problem of manipulation where ahistorical accounts may fail. In contrast to these both of these active models, which rely upon identifying one’s self with, approving of, or endorsing one’s true desires, coherentist models of autonomy, as found with Buss and Ekstrom, attempt to avoid classic regress problems by defining authenticity as having the right sort of passive structures and relationships between various desires and beliefs. ">>
<<footnotes "5" "5:33">>
<<footnotes "6" "4:431">>
<<footnotes "7" "5:31 and Nichols, Shaun. "How Psychopaths Threaten Moral Rationalism: Is It Irrational to Be Amoral?" The Monist 85.2 (2002): 285-303. JSTOR. Web. 16 Jan. 2013. <http://www.jstor.org/stable/27903773>.">>
<<footnotes "8" "6:227">>
<<footnotes "9" "5:31">>
<<footnotes "10" "4:436, 4:441-5">>
<<footnotes "11" "4:389">>
<<footnotes "12" "4:442">>
<<footnotes "13" "4:445, 5:33">>
<<footnotes "14" "At least not directly.">>
<<footnotes "15" "Which impressively seems to be an attempt to resolve both the classic epistemic regress problem and the regress problem in autonomy in the same stroke.">>
<<footnotes "16" "6:418-9">>
<<footnotes "17" "5:33, 43">>
<<footnotes "18" "Take ‘telling a lie’ as an example. Naturally, you may be inclined to lie. Freedom and practical reason tell you to say the truth. If you say the truth, then you are the first cause of the action and you are free. If you lie, you’ve been moved by the external, by empirical and contingent nature, by your inclination, and thus you aren’t really free. You are free only when you say the truth. What Kant counts as being “free” is really narrow and frankly odd.">>
<<footnotes "19" "Whether or not intuitions play a legitimate role in determining the validity of a moral theory is another discussion. For now, I’m going to assume that intuitions do play such a role. ">>
<<footnotes "20" "Kant has a very systematic, labyrinthine, opaque, and complex view to fall back upon. Even a seemingly reasonable criticism or concern may be answered by some unobvious interpretation or obscure passage. I voice my criticism with that in mind.">>
Frankfurt doesn’t focus on political conceptions of Freedom (as in the tradition of Hobbes and Berlin), instead Frankfurt argues for a particular sort of freedom by modeling the authentic identity of persons. The fundamental question at stake is: Who is the “real” you?

Many famous philosophers have defined the real you as the rational you. In contrast, Frankfurt thinks the real you is the hierarchically integrated you, a ‘congruence between’ and an ‘identification with’ or ‘endorsement of’ your desires, which is less about rationality and more concerned the structure of your will. 

As persons, we are self-reflective and we are not indifferent to which desires move us. On this view, we form desires about our desires, and our capacity to endorse our desires is what grounds our personhood, our freedom of the will, and our autonomy.
We start with first-order (FO) desires; these are ordinary desires about the world. E.g. I want to eat pizza; I desire sleep; I want cocaine; etc. Every creature with desires has FO desires, and hence FO desires aren’t very special. FO desires vary in strength, and for example, we might think that without any intervention, the strongest desire is what moves us, it is our will. E.g. If the honey badger desires food more than sleep, he’ll be effectively moved to pursue food instead of sleep – that is his (not free) will. 

Naively, second-order (SO) desires are desires about FO desires. E.g. I desire not to want to eat pizza; I want to desire sleep; I don’t want to want cocaine; etc. Note that my SO desires can conflict with my FO desires. SO desires are found in creatures with more complex psychologies. 

Frankfurt further distinguishes SO desires from SO volitions (where SO volitions are a subset of SO desires). A SO volition is a special kind of SO desire. A SO volition is a desire that some FO desire be or not be your will. A SO volition is a desire for some FO desire to take or lose priority over all other FO desires, such that you will be effectively moved or not moved to act upon some FO desire. A SO volition is the reflective endorsement or repudiation of a FO desire. 

The capacity for and the use of SO volitions is the significant and necessary condition for a creature to be a person. Creatures, including humans, who lack SO volitions (even if they have mere SO desires) are called wantons - they are not persons. Lacking free will is not a problem for wantons, as seen in the case of the wanton addict. On Frankfurt’s theory, a wanton is exclusively moved by desires he has not identified himself with, endorsed, approved, or made his will. He is not a person because he is merely a being with desires that rule him, and he does not care to or perhaps even have the ability to rule over his desires.
In contrast to a wanton, a person, such as the unwilling addict, has SO volitions. Whether or not those SO volitions ultimately “win out” determines whether or not a person has freedom of the will.

When your FO desire and SO volition conflict, and if and when you are moved by a FO desire which you repudiate via a SO volition, you are not acting autonomously or authentically, and essentially, as a person, you lack freedom of the will. Significantly, even though you are moved to act by a FO desire that is in some sense ‘your desire’, because that FO desire overrides your SO volition, it seems as though you are forced to act upon a desire which isn’t really yours – you didn’t endorse that FO desire, in fact, the real you repudiated it. That FO desire which moved you, against your SO volition, is alien to you. The real you is a helpless bystander to the force of the external, inauthentic FO desire. To be authentic, to have freedom of the will, your SO volition must effectively make your FO desire your will. 

Lastly, Frankfurt’s theory is not actually confined to only two orders of desires. There are third-order desires and volitions, fourth, fifth, and so on. E.g. I can want to want to want pizza, etc. Ultimately, the necessary condition of personhood and autonomy is some sort of capacity to identify ourselves with what we “really want to want to want…to want, and so on,” a capacity to decisively align our many orders of desires in a resounding commitment, securing conformity between them, and forcibly synchronizing and unifying them (Christine Korsgaard must love this). Unfortunately, Frankfurt does not provide a clear argument about this. This is one of the fuzzier and least clear aspects of Frankfurt’s theory, despite it being the most important aspect of his theory (it does all the magical work for him). 

Interesting characteristics of this theory:

* A focus upon self-reflection, evaluation, endorsement, authenticity, and ordered desires fits many of our intuitions on the topic of free will and autonomy. Something about the theory seems right.
*  It does not require robust metaphysical commitments. The theory sits comfortably in naturalistic philosophical perspectives.
* The theory is neutral to determinism and can work as a compatibilist view of freewill. (Although, it is not necessarily inconsistent with incompatibilism.)
** Compatibilism is the belief that free will and determinism are compatible ideas, where freedom, in this case, turns out to be something like just doing what you want to do, or willing what you want to will, which is distinct from other standard definitions of freewill, such as: “The ability to do otherwise.”
** Incompatibilists think that this kind of freedom isn’t enough, and they worry that if we are merely deterministic flesh bags of chemicals and electrical signals, then we are no better than any other determined or programmed object. On such a view, we are reducible to a mere mass of determined particles. Why are we any better than complex robots? Why is compatibilist free will actually freedom at all; and why is it worth having? Why would we be morally responsible if we are determined? So, the incompatibilist who believes we are morally responsible must claim we aren’t fully determined and that we have a kind of libertarian, metaphysically based freewill which overcomes the laws of physics. *Draw a homunculus.*
** Compatibilists will respond by claiming that libertarian freewill is incoherent; that libertarians have failed to provide any suitable account of how it works. The metaphysical commitments are too great for the compatibilist. Further, why are we any better than a random number generator or dice? Why is libertarian freedom worth having?
* The account is content-neutral. Persons aren’t required to have particular values. This sits in stark contrast to other classic theories of autonomy, freedom, and authenticity. 
** This feature is powerful. It has some good aspects to it, but it also may have bring with it some problems which I don’t have time to go into. 

3 Sets of Problems with this account:

* Manipulation. Frankfurt’s account of freedom and autonomy does not take into consideration ‘where a desire came from’ or ‘how it was acquired.’ It can’t explain manipulation-based autonomy defeaters such as the problems of poisoned origins or a neuroscientist re-engineering a person’s desires and beliefs.
** One paradigm case of manipulation is where a neuroscientist radically alters your desires (and beliefs). For ahistorical accounts of autonomy and freedom, like Frankfurt’s, as long as the neuroscientist changes you such that a kind of congruence between your FO and higher order desires is maintained, then you are still considered to be autonomous. Frankfurt’s account doesn’t seem capable of taking into account how the problem of manipulation, at least intuitively, results in an attack on or elimination of one’s autonomy and/or the authentic self.
** Don’t we want a theory of autonomy that allows us to reclaim autonomy from our checkered/conditioned past?
* Trilemma: Ab Initio, Infinite Regress, Incompleteness (Christman on Dworkin [who is Frankfurtian])
** Ab Initio/Problem of Authority – How can non-autonomous processes or higher order desires confer autonomy upon lower level desires? How does a particular second-order desire really have the authority to speak for us? Why that one?
*** When a SO volition endorses a FO desire, we take that FO desire to be an authentic desire, a desire of the agent himself, because the agent had to actually endorse it. Initially, it seems as if SO volitions have the power to speak for the authentic self. The problem, however, is that a SO volition needs to be an autonomous desire as well, a desire that really belongs to the authentic agent. If a SO volition is not an autonomous desire, then it seems as if a non-autonomous force is ‘endorsing’ a FO desire, and then it would not appear as if the FO desire is really endorsed by an autonomous agent. How can autonomy arise from non-autonomy? It doesn’t seem like it can. So, what makes a SO volition an autonomous desire? This brings us to the…
** Infinite Regress. - If SO volitions are made autonomous by TO volitions in the same way that FO desires are made autonomous by SO volitions, then we hit the regress problem, whereby we pile desires on top Bibliographyof desires.
*** The argument is that in order to make an N-order desire autonomous, an autonomous N+1-order volition must endorse it. To have an autonomous SO volition requires an autonomous TO volition endorsing it. But, clearly, we can ask the same question about TO volitions, and the answer requires having an autonomous volition from the next higher order endorsing it. This process of trying to autonomize desires with higher order autonomous desires can continue ad infinitum, hence the regress.
** Incompleteness – If we are to escape the Ab Initio problem without falling into the regress, we have explain how SO volitions are autonomous desires in a way that is different from how SO volitions make FO desires autonomous. Nobody seems to be able to give an explanation, hence the “incompleteness” problem. Which is basically the same thing as saying, we really don’t have an explanation at all. 
** Summary:  On Frankfurt’s model, we must ask if the relevant SO volitions themselves are autonomous. If not, then we have the ab initio problem.  If so, then how do they become autonomous?  If it’s in the same way as one’s first-order desires, then we face a regress.  But if they become autonomous in some other way, then Frankfurt’s theory is incomplete because he hasn’t specified the method. He does anticipate the trilemma; he talks about decisively aligning, securing conformity between, or unifying our many orders of desires, but he never really explains how this works. Hence, Frankfurt’s model is incomplete. 
* Perhaps you don’t find Frankfurt’s argument intuitively compelling. You should ask: Why is Frankfurt’s freedom of the will worth having? How is a person in this account any more worthy or better off than other animals and wantons? Why does it produce moral responsibility or the kind of agency that matters?
 






 
''1.''

In “Internalist Responses to Skepticism,” Jonathon Vogel tracks various internalist approaches to the problem of skepticism. He offers criticisms of what he refers to as apriorism and dogmatism, and then endorses his own approach, explanationism.<<ref "1">> Explanationism, roughly, is the claim that a coherence among ordinary beliefs concerning our perceptual experiences justifies the belief in the negation of skepticism (e.g. –BIV). On this view, the patterns of our ordinary experiences are better explained by our rich set of ordinary beliefs, a “real-world hypothesis” (RWH), than the “brain in a vat” hypothesis (BIV). 

In this paper, I outline three related worries about Vogel’s argument. First, explanationism may not be different enough from the dogmatist position. In addition, explanationism may fail to provide knowledge, and hence, by his own criteria, Vogel’s theory may fail to escape skepticism. Finally, it isn’t clear why we should assume that explanationism results in RWH having more explanatory merit than BIV.

''2.''

Vogel sketches out dogmatism in a couple ways:

By themselves, particular perceptual experiences in some way justify us in believing various propositions about the world. Each of these propositions entail –BIV, and one’s justified belief in such a proposition justifies, in turn one’s belief that –BIV. Thus we have local empirical justification for holding –BIV.<<ref "2">>

(DOG) If it looks to one that X, then one is thereby prima facie justified in believing that X.<<ref "3">>

	The Moorean response to skepticism is very much in line with the kind of dogmatism that Vogel has in mind. Vogel walks us through several examples which illustrate the differences between dogmatism and explanationism, and, to be fair, there are differences. My worry, however, is that explanationism may only be merely a grander, coherentist version of Moorean dogmatism. Indeed, in footnote 39, Vogel perhaps anticipates this worry, as he “ruefully” acknowledges that explanationism may suffer from similar problems faced by dogmatism, particularly regarding hypothesis confirmation.

	The mile-high view of the structure of both the dogmatist and explanationist arguments seems to be: I have two competing propositions A and B; I am more confident in A than B; thus, I am justified in believing A. The dogmatist may use a single ordinary belief in the existence of his hand to counter skepticism, while the explanationist uses the sum of ordinary beliefs to do it. One employs local empirical justification, and the other global empirical justification. They both, however, seem to have the same sort of root principle beneath them.

There is a kind of Occam’s razor or ‘best explanation’ principle which leads to this confidence found in both dogmatism and explanationism.<<ref "4">> Setting aside whether or not the principle employed by explanationism gets us where Vogel thinks it does (for example, it isn’t clear to me that RWH is necessarily simpler than BIV), I worry that explanationism might ultimately be unsatisfying to the skeptic in parallel ways to dogmatism because of its reliance upon a best explanation principle. 

Surely a best explanation principle has a lot of force to it. I’m not sure what to do with it though. My gut instinct is to say that the skeptic seeks an epistemic standard higher than can be reached with such a principle, and perhaps both dogmatism and skepticism outright miss the point. If we let the skeptic set the epistemic standard as high as certainty, then even seemingly decent principles, like Occam’s razor, may not survive. 

With that said, I admire the scope of Vogel’s explanationism. Explanationism responds to the skeptical argument that a “person’s experience is globally unveridical” with an argument that attempts to demonstrate how a person’s experience is globally veridical, unlike the possibly less appropriate scope of local veridical justification in the dogmatist’s argument. 

''3.''

	Vogel spells out skepticism from the internalist perspective as follows:

*1a. In order to know M, you need to know that various possibilities of massive sensory deception do not obtain.
*1b. In particular, you need to know that you are not a brain in a vat (–BIV) stimulated so that it falsely appears to you that M.
*1c. In order to know –BIV, you have to be justified in believing –BIV.
*1d. But you are not justified in believing –BIV. 
*1e. Therefore, you do not know M.5

Vogel claims that falsifying argument 1d generates “an internalist answer to skepticism.”<<ref "6">> He argues that if “premise 1d of the skeptical argument is false…skepticism is refuted.”<<ref "7">>  I disagree, and I wish to stress that while falsifying 1d is certainly a worthy response, it is not a finishing blow to skepticism. 

While Vogel is worried most about 1d, 1b is the key premise with which I am most concerned. It follows from 1a, and 1a seems to derive from the closure principle, and it certainly seems plausible.<<ref "8">> If we agree to these premises, then we agree that defeating the skeptic requires demonstrating that we know –BIV. I’m not sure why Vogel begins his argument with this task (not a small one at that), but never resolves it later in his paper. He seems to gloss over this weighty requirement, even though he boldly claims explanationism is a “solution to the problem of skepticism” at the end of his paper.<<ref "9">> Perhaps he is right, but he didn’t get us there in his argument. 

Suppose explanationism justifies the belief –BIV. To be (mildly) justified in believing –BIV, which is what Vogel seems to think explanationism buys us, may be necessary but not sufficient for knowing –BIV. Vogel does not neatly close this gap for us. Even if he does get us to the point where we are justified in believing –BIV to some extent, which is a significant accomplishment, it unfortunately does not seem as though explanationism gives us knowledge of –BIV, and that’s a problem for Vogel, given the criteria he set out. 

The skeptic’s epistemic requirement is very high: knowledge, not merely justified belief. Since explanationism may fail to provide knowledge of –BIV, it is not clear that Vogel completely diffuses the skeptic’s argument. If he is right, he only gets us part of the way there. It would be no small feat to demonstrate that we can be justified in believing in the external world, even if we don’t necessarily know. Skepticism, however, still seems to survive his argument.

''4.''

	Vogel claims RWH explains the sum of our sensory experiences, E*, better than BIV, and thus we are justified in accepting RWH, and consequently, in accepting –BIV. At least some real-world hypotheses are thought to be simpler and more unified than BIV hypotheses, and thus some RWH’s are better at explaining E*. On Vogel’s view, any version of BIV should be rejected because it is comparatively too complex and perhaps ad hoc. Should we really agree that some RWH necessarily has more explanatory merit than all BIV hypotheses? 

	Indeed, some models of BIV, perhaps even the usual ones, will build on top of a RWH (possibly in an ad hoc manner) an abstraction, an extra layer, an added mechanism, or an additional agent which explains E*. On such models, BIV is thought to be more complex than RWH, and therefore such models have less explanatory merit than RWH. But is this the case for all BIV hypotheses? This seems to be what Vogel needs, and yet it is far from clear that this is true. 

Further, the skeptic need not convincingly demonstrate a case where BIV is simpler than RWH – he merely needs to open our eyes to the possibility of such a thing. Is it at least possible that some BIV hypothesis could have more explanatory merit than real-world hypotheses? Maybe, I really don’t know. That’s a problem for a theory which relies upon showing not only that the usual BIV hypotheses have less explanatory merit than at least one RWH, but that all BIV hypotheses must have less explanatory merit than some RWH. 

''5.''

Ultimately, the skeptic always seems to be in a position to call into doubt principles of best explanation and the results of those principles. Simplicity may not be enough. Even justified belief in the external world doesn’t seem to be enough to finally defeat the skeptic, as the skeptic can continue raising the epistemic bar out of reach. 

------------------

<<footnotes "1" "Jonathon Vogel, 'Internalist Responses to Skepticism,' in// The Oxford Handbook of Skepticism//, ed. John Greco (Oxford: Oxford University Press, 2008): 533-556">>
<<footnotes "2" "Ibid., 535">>
<<footnotes "3" "Ibid., 539">>
<<footnotes "4" "Ibid., 545">>
<<footnotes "5" "Ibid., 533">>
<<footnotes "6" "Ibid., 537">>
<<footnotes "7" "Ibid., 544">>
<<footnotes "8" "Very broadly, we might explain the principle in this way: If S knows (or S is justified in believing) P, and S knows (or S is justified in believing) P entails Q, then S knows or S can come to know (or S is justified in believing or S is justified in coming to believe) Q. Admittedly, some version of this principle seems like it must be correct. ">>
<<footnotes "9" "Ibid., 550">>
''1 - Introduction''

In this paper, I will analyze Daniel Wegner’s view on the conscious will as presented primarily in the article “Apparent Mental Causation: Sources of the Experience of Will” and a couple claims from his book The Illusion of Conscious Will. The second section is devoted to explicating Wegner’s view and work. His work in psychology seems to have upset (parts of) the philosophical world – his conclusion is pretty staggering. Afterwards, in the third section, I’ll briefly consider why his argument matters, its implications, and what we will lose if he is right. Finally, in the fourth section, I offer four criticisms of his argument. In particular, I am worried about the burden of proof in this dialectic, the problematic assumption that conscious will is a feeling, what conclusions the empirical evidence really supports, and the lack of evolutionary explanations for an illusory conscious will. 

''2 - Wegner’s View''

Daniel Wegner argues the conscious will isn’t the cause of action.<<ref "1">> On his view, people everywhere mistakenly interpret their conscious thoughts as being causally relevant to their actions. In his writing, he attempts to dismantle the commonly held belief and experience of a direct causal connection between one’s conscious thoughts and actions. Ultimately, he believes the conscious will is epiphenomenal. 

 Wegner describes conscious will as an experience, feeling, or perception.<<ref "2">> The experience of conscious will spans from a conscious thought or intention to the appearance of a causal path to the target action.<<ref "3">> In Wegner’s view, the supposed causal link between the conscious thought and the action is illusory, and he claims both thought and action are caused by unconscious mechanisms.

Why are we mistaken? Why do we wrongfully interpret our experiences and erroneously infer causation?  Sometimes we perceive patterns and causation where there are none, and Wegner seems to think this is the case with the conscious will. Our flawed ability to recognize causation seems to be a significant reason why we have the experience of conscious will at all.  When conscious thoughts or intentions precede and match the target action in a timely, exclusive, compatible, and consistent manner, we mistakenly infer, via our flawed causal recognition, that our conscious will was the cause of the action. 

Wegner thinks a potential link between thought and action is weakened by the involuntary nature of examples such as motor automatisms, hypnosis, dowsing, action projection, and psychological disorders such as schizophrenia, where in these cases one does not experience conscious will but still demonstrates many of the scientific signs of it.<<ref "4">> In these cases, the person acting does not feel he is making a conscious decision to act, but feels as though some external force is causing the action through him – that is, there is a separation between the action taken by the person and his conscious thought or desires; the link between conscious thought and action isn’t there when we would expect it to be. Further, Wegner uses an experiment, the “I Spy” study, to demonstrate how the experience of conscious will can be artificially created. Wegner’s experiment seems to build off and extend from Libet’s studies, which attempted to reveal how unconscious mechanisms played a major causal role in the appearance of voluntary action.<<ref "5">> Wegner employs both positions as evidence for the thesis that the experience of conscious will is an illusion, where conscious thoughts are inefficacious and do not cause our actions (despite all appearances).

The purpose of the “I Spy” study was to “lead people to experience willful action when in fact they have done nothing.”<<ref "6">> This was a digital 2-player Ouiji board version of I Spy (using a mouse), where the participant was primed with words about items on the screen, forced onto certain objects by a confederate, and required to “rate each stop they made for personal intentionality.”<<ref "7">> The point of the study was to generate cases where participants artificially felt as though they consciously willed an action, when in fact, they did not cause the action. Word priming “did not cause participants to stop on the items.”<<ref "8">> Word priming did, however, conjure thoughts about the related objects on the screen, and when forced upon these objects in brief time frames after priming (1 or 5 seconds), participants “reported having performed this movement intentionally.”<<ref "9">>
 
The experiment shows that one can have conscious thoughts which don’t cause action yet still form the illusion of an experience of conscious will. The involuntary examples demonstrate that one can have conscious thoughts which meet many of the matching parameters of target actions, but don’t result in the experience of conscious will. Together, both positions, in Wegner’s view, demonstrate how the apparent causal link between consciousness and action is an illusion.
Wegner claims the experience of conscious will serves to provide us a preview of what we may do, but “the real causal mechanisms underlying behavior are never present in consciousness. Rather, the engines of causation are unconscious mechanisms of mind.”<<ref "10">> It remains unclear why this ability to preview matters. 

''3 – A Couple Implications. What’s at Stake?''

If Wegner, like many psychologists, is right in thinking the conscious will can be reduced to deterministic, physical mechanisms, then the game is likely over for incompatibilists. We might initially think science is the wrong domain for proving we don’t have free will (which requires substantial metaphysics). Presumably, free will is part of having conscious will. If the experience of conscious will can be entirely reduced to mere physical mechanisms, if this phenomenon is best explained in naturalistic terms, then either incompatibilists should deny free agency or the burden of proof seems to be shifted to the libertarian.

Compatibilists (and incompatibilists as well) remain vulnerable to Wegner’s argument in a different way. If Wegner is right in thinking that conscious will is entirely an illusion, and if conscious thought does not cause action, then it is very hard to see how humans could engage in any sort of meaningful deliberation and choice necessary (even by compatibilist standards) for being moral agents. In essence, Wegner’s argument seems to reduce us down to mere observers of the results of our unconscious mechanisms. If he is right, then I don’t see why morality and moral responsibility should have any rational relevance to us. We can’t actually participate in moral life; moral life is an illusion. 

''4 – A Series of Brief Criticisms of Wegner’s View''

''4.1 – Burden of Proof''

While Wegner tries to demonstrate why we can be mistaken in attributing causality, he does not ultimately show why we all feel like free agents. He must explain why this feeling of free agency, a very potent and convincing experience we all have, must be false, and particularly how and why we all suffer from this mass delusion. He seems to act as though he has an open-and-shut case against the efficacious conscious will (most of us are sometimes guilty of this sort of bravado). While he raises problems and concerns, he fails to provide the sort of extraordinary evidence required to counter almost everyone’s experience of this phenomenon and the intuitions we have on the matter. I think he has, at best, opened the door to the possibility that the conscious will is merely an illusion, but he has not convincingly closed the doors on the other possibilities. 

''4.2 – Conscious Willing as a Feeling''

 Wegner claims that “[w]ill is a feeling, not unlike happiness or sadness or anger or anxiety or disgust… will has other characteristics of emotion, including an experiential component (how it feels), a cognitive component (what it means and the thoughts it brings to mind), and a physiological component (how the body responds).”<<ref "11">> He is sympathetic to a scientific Humean view. Unfortunately, Wegner seems too quick to reduce the conscious will to some mental state of lower status; he glosses over our ordinary, everyday phenomenological evidence.

Quite related to my previous criticism, I fear that Wegner does not adequately capture or describe the phenomenon of conscious willing when he categorizes the will as a feeling. I grant that the conscious will is similar to feelings and sensory perception in salient ways. I don’t think, however, the experience of conscious willing is either an outright feeling or ultimately analogous to our ordinary feelings. It is more than that. When I attend to the phenomenon of my conscious will, it is not presented to me in a way similar to my ordinary feelings (admittedly, I don’t know how to describe it, but I know what it does not appear like). I find the experience of the conscious will to be fantastically unique and far richer than something like sadness, anger, or happiness.  I may not be able to describe why exactly they differ, but Wegner also has not adequately explained away the experience of conscious willing as just another emotion or feeling. 

''4.3 – What Does His Evidence Support? ''

We might also have methodological worries and issues dealing with what Wegner’s experiment really proves or explains. Wegner may be overstating what his evidence supports. A more conservative appraisal of the evidence suggests a different conclusion: we are fallible about our experience of conscious will. This is far from the bold thesis that conscious will is an illusion. Just because some experiences are illusory doesn’t mean all are illusory. Just because someone can be tricked into incorrectly believing he caused a cursor to stop on a screen (when in fact, another agent caused it), doesn’t mean that the experience of willing is always an illusion.

Looking specifically at the “I Spy” study, the situation seems contrived – that is, the experiment seems more like a trick than the sort of study from which to draw such sweeping conclusions about the experience of conscious will in general. Why should we think this study is representative of the ordinary sort of experiences of conscious willing? This study seems to suffer some of the same problems that its predecessor, Libet’s study, encountered. It isn’t clear that these studies are examining normal conscious intentions, but rather automatic functions, rationalizations, or tricks that merely demonstrate our fallibility.

In addition, I’m not convinced the involuntary examples prove much of anything. They simply aren’t good examples of normal mental activity. Pathological conditions may (or may not) serve to show quirks and boundaries of the experience of conscious will, but they aren’t representative of ordinary conscious experience. So what if these cases have ‘many of the matching parameters?’ That isn’t the same as meeting them all; perhaps we can infer that people in these outlying cases are not, in fact, experiencing conscious will when they do not meet certain parameters. But that is probably all we can infer – one should not draw conclusions from the experiences of fringe cases. Their faulty experiences don’t really give us good reasons to think the conscious will is entirely inefficacious and an illusion.

I am also concerned the self-reporting in the “I Spy” experiment may have just been the result of mere post-hoc rationalizations. Obviously, that initially seems to support Wegner’s point in the first place, as he is trying to debunk what he considers to be our global post-hoc rationalization for delusions of conscious willing. Instead, I’m trying to say this is an exceptional kind of case, and not representative of our usual self-reporting. It is one thing to ask: “In general, do you believe your conscious will is efficacious?” and another thing to ask someone to rate their personal intentionality in a given situation. I am not sure conscious will sits on a rated gradient at all. Reporting and rating personal intentionality may not operate in the way that Wegner assumes.

Related to this concern of self-reporting, I worry the study focuses too much upon whether or not people believed their conscious thoughts led to certain results (several steps beyond their action) rather than whether or not they caused their action directly. The action of moving and stopping our hand is phenomenologically different from the figuring out whether or not we moved or stopped a cursor on a computer screen. Moving/stopping my hand is simpler, more straightforward, more “up to me,” relying far less upon my ability to determine causation, and perhaps even more ready-to-hand than moving/stopping a mouse or cursor (the cursor’s movement is even more abstract and distant from my action than moving a mouse). For example, we must contend with issues of being a digital native or being unfamiliar (to some degree) with using the mouse; a professional first person shooter gamer will recognize causation problems in cursors/mice that most of us won’t, and a digital native will be more equipped to make decisions concerning causal efficacy in this chain of causes than a newcomer. It is especially pertinent to keep in mind that someone with little or no experience using a mouse will have a much harder time controlling the cursor’s position on the screen than a more experienced user in the first place, much less recognizing if the cursor stopped due to their own action or another’s.  

There are varying levels of causal recognition. Anyone who has ever remotely controlled a person’s computer (for emergency repair work, occasional maintenance, or pranking your friends), especially a computer used by a non-native, can tell you that these people are momentarily tricked into thinking they are moving the mouse when they really aren’t. They don’t quite have enough experience to know immediately that they aren’t in control. Lots of activities are like this. Essentially, there are a lot of phenomenal abstractions sitting between my consciously willing to my move hand (the action itself) and figuring out whether or not I truly controlled a cursor.

Those layers don’t seem to be appreciated enough in this study. Wegner should not be testing something so far away on the causal chain; he should be testing something much more phenomenologically immediate and within the expertise of practically all with conscious will – such as raising one’s hand.

Lastly, beyond this inductive step, even employing an inference from the best explanation principle does not seem to get us Wegner’s bold conclusion. In light of his evidence, the causes of action and the explanation of our conscious thoughts are still quite unclear. We don’t have an adequate empirical explanation, as far as I can tell. 

''4.4 – Evolutionary Reasons for an Illusion''

Wegner needs not only to provide an explanation of why the conscious will is an illusion, but he likely must also give an account of why humans have evolved to have an illusory conscious will. Our brain is expensive, and if this is an illusion, it likely costs a great deal of energy. Why would an illusory conscious will be selected for? It is unobvious how one could provide a plausible account of this. If conscious will is entirely inefficacious and an illusion, what possible purpose does it serve? Wegner is aware of this issue. He argues that “conscious will is the mind’s compass.”<<ref "12">> But he does not give us great reasons as to why we evolved to have this epiphenomenal compass.
 
One evolutionary reason we might offer is that this illusion results in better behavior. Perhaps humans under the impression that they have control are more likely to behave in ways beneficial to the species. A sense of morality, for example, might arise from the illusion, and a sense of morality, at least minimally, might bring about the kinds of behavior which evolution would select for (although, ultimately, certain sorts of morality do seem at odds with propagation of the species).

Even if this line of reasoning were true, it remains unclear why an illusion was selected for instead of instinctual, hard-wired “moral behavior.” Why select for an illusion when you could get the same results for a far cheaper energy cost? It would be nice if we had a plausible evolutionary story to explain this illusion. 

''5 – Conclusion''

It is a biased thing to say that I deeply regret the possibility (however small I believe it may be) that Wegner could be right. The costs are enormous (not to sound like the world is ending but, if Wegner’s claim is correct, the moral world just might be ending for us as humans). Wegner helps opens the empirical door to a serious problem of nonveridical conscious experience and causation. His conclusions are not obviously true just yet, and proponents of Wegner’s view have a lot of work ahead of them to support the conclusion that conscious will is epiphenomenal and illusory.  

------------------------------

<<footnotes "1" "Wegner, Daniel M., and Thalia Wheatley. 'Apparent Mental Causation: Sources of the Experience of Will.' //American Psychologist// 54, no. 7 (July 1999): 481">>
<<footnotes "2" "Ibid., 480">>
<<footnotes "3" "Ibid., 483">>
<<footnotes "4" "Ibid., 480, 485, 486, 487">>
<<footnotes "5" "Ibid., 481">>
<<footnotes "6" "Ibid., 487">>
<<footnotes "7" "Ibid., 488">>
<<footnotes "8" "Ibid., 489">>
<<footnotes "9" "Ibid.">>
<<footnotes "10" "Ibid., 490">>
<<footnotes "11" "Wegner, Daniel M. //The Illusion of Conscious Will//. Cambridge, MA: MIT Press, 2002: 326">>
<<footnotes "12" "Ibid., 317">>



---------------------------

''Bibliography''

Bayne, Tim. "Phenomenology and the Feeling of Doing: Wegner on the Conscious Will." //In Does Consciousness Cause Behavior//?, edited by Susan Pockett, William P. Banks, and Shaun Gallagher, 169-86. Cambridge, MA: MIT Press, 2006. 
 

Pacherie, Elisabeth. "Towards a Dynamic Theory of Intentions." //In Does Consciousness Cause Behavior?//, edited by Susan Pockett, William P. Banks, and Shaun Gallagher, 145-67. Cambridge, MA: MIT Press, 2006. 

 
Pockett, Susan. "Does Consciousness Cause Behaviour?"// Journal of Consciousness Studies// 11, no. 2 (2004): 23-40. 
 

Ross, Peter W. "Empirical Constraints on the Problem of Free Will."// In Does Consciousness Cause Behavior?//, edited by Susan Pockett, William P. Banks, and Shaun Gallagher, 125-44. Cambridge, MA: MIT Press, 2006. 

 
Wegner, Daniel M., and Thalia Wheatley. "Apparent Mental Causation: Sources of the Experience of Will." //American Psychologist //54, no. 7 (July 1999): 480-92. 

 
Wegner, Daniel M. //The Illusion of Conscious Will//. Cambridge, MA: MIT Press, 2002. PDF. 
 

Wegner, Daniel M. "Précis of the Illusion of Conscious Will." //Behavioral and Brain Sciences// 27, no. 5 (2004): 649-92. 
 
In this paper, I will define lying, explicate Kant’s position on it, and explain two major justifications for that position. I will offer a criticism of Kant’s position and a solution to the larger problem the issue of lying presents us. 

What is “lying” to Kant? Kant distinguishes truth and truthfulness.<<ref "1">> Declaring truth is not always up to us (we are epistemically fallible); being truthful, which is more of an attitude or intention, however, is up to us. Intentional deception and untruthfulness sit at the heart of the act of lying.<<ref "2">> A lie is an intentional declaration of what one believes to be an untrue statement.<<ref "3">>

What is Kant’s position on lying? He seems to have legal and moral positions. I’m going to quickly gloss over Kant’s concerns on the legal status and implications of lying (although they are interesting) and focus on the moral position instead, since the moral position completely overshadows the legal in this case.

Initially, it seems as though Kant generally isn’t against lying in the legal realm. As long as one doesn’t violate another’s external right or harm another person, such as offering “the false allegation that a contract has been concluded with someone, made in order to deprive him of what is his,” then Kant might appear fairly relaxed, in a legal context, as to whether or not one lies, as it is “entirely up to them [those who hear the truth or lie] whether they want to believe him or not.”<<ref "4">> However, Kant says, “a lie, defined merely as an intentionally untrue declaration to another…must harm another…For it always harms another, even if not another individual, nevertheless humanity generally, inasmuch as it makes the source of right unusuable.”<<ref "5">> From what I can tell, this could possibly stand as both a legal and moral reason to never lie. Further, Kant worries about the legal responsibilities (of the liar) which result from someone acting upon a lie told to them.<<ref "6">> 

Ultimately, I’m not sure if Kant’s position on the legal aspects of lying is all that pertinent in light of his ethical stance on this issue. In the ethical realm, the realm with highest normative priority (it is unclear to me that any other realm, including the legal, has any independent normativity), Kant claims lying is always wrong. He declares this in many passages; we’ll cover a couple of them to get a picture of how he views lying.

Kant uses the obligation not to lie as an example of a law with absolute necessity in the Groundwork: “the command ‘thou shalt not lie’ does not hold only for human beings,” but for all rational beings.<<ref "7">> Continuing that Biblical position, Kant remarks, “the Bible dates the first crime…not from fratricide (Cain’s) but from the first lie…and calls the author of all evil a liar from the beginning and the father of lies.”

In the Groundwork, Kant provides us the case of the lying promise, claiming it is morally wrong to lie (I’m saving the exegesis of this passage for my section on Kant’s justification).<<ref "8">> 

In the Metaphysics of Morals, Kant unequivocally declares with vehemence:

<<<
The greatest violation of a human being’s duty to himself regarded merely as a moral being (the humanity in his own person) is the contrary of truthfulness, lying…For, the dishonor (being an object of moral contempt) that accompanies a lie also accompanies a liar like his shadow…By an external lie a human being makes himself an object of contempt in the eyes of others; by an internal lie he does what is still worse: he makes himself contemptible in his own eyes and violates…[and]…annihilates his dignity as a human being. A human being who does not himself believe what he tells another…has even less worth than if he were a mere thing…such a speaker is a mere deceptive appearance of a human being, not a human being himself.<<ref "9">>
<<<

Kant hates lying, and he takes it to be a far more serious offense than does the average person.<<ref "10">> Lying is dehumanizing. His harsh words not only rebuke lying, but even one who “asks permission to think about possible exceptions [to the exceptionless law against lying] is already a liar.”<<ref "11">> It is crystal clear to Kant that lying is always, in all cases and without exception, morally wrong. This is perhaps an unintuitive, extreme, and problematic position to many folk.

Kant is obviously quite serious about universal, exceptionless, necessary moral obligation. He even maintains his view in the face of a very compelling case of lying to the murderer at the door to save an innocent victim. Ultimately, he rebukes lying even in this case, and he responds: “To be truthful (honest) in all declarations is therefore a sacred command of reason prescribing unconditionally, one not to be restricted by any conveniences.”<<ref "12">> That some innocent person may be murdered because you were truthful is not your fault, it is an accident that your truthfulness had this result.<<ref "13">> Again, this may be going against a number of our intuitions, we may not find this position acceptable, but it is Kant’s expressed view of lying, even in hard circumstances.

What is Kant’s justification for the claim that all lying is morally wrong? In isolating and explicating Kant’s position on lying, I’ve inadvertently had to allow some of his justification for this position to bleed through. Obviously, moral obligations can only be justified, in Kant’s theory, by the Categorical Imperative (CI). The CI is the sole arbitration and justification mechanism for the generation of all concrete duties, including the duties “to never lie” or “to always be truthful” (or however it is best phrased).
I’m going to consider two formulations of the CI. Each formulation seems to offer a different kind of justification for the duty to never lie.<<ref "14">> Since we’ve already seen a sneak peak of it, let’s first consider the Formula of Humanity, “So act that you use humanity, whether in your own person or in the person of any other, always at the same time as an end, never merely as a means.”<<ref "15">> As we’ve seen, Kant thinks lying is dehumanizing to you, to the person the person to whom you are lying, and to humanity in general, a violation of this formula. In the case of lying to the murderer, from this formula, Kant believes we are treating the murderer, via lying, as merely a means (to saving the innocent life) and not as an end. As we read before, all lying is like this on Kant’s view, and hence this formulation is used as one of Kant’s justifications for the claim that all lying is morally wrong.<<ref "16">>

Consider the second formulation, the Formula of the Law of Nature, “Act as if the maxim of your action were to become by your will a universal law of nature.”<<ref "17">> He gives us a few applications of this formula, including the lying promise example. He explains:

<<<
I ask myself: would I indeed be content that my maxim (to get myself out of difficulties by a false promise) should hold as a universal law…? And could I indeed say to myself that every one may make a false promise when he finds himself in a difficulty he can get out of in no other way? Then I soon become aware that I could indeed will the lie, but by no means a universal law to lie; for in accordance with such a law there would properly be no promises at all, since it would be futile to avow my will with regard to my future actions to other who would not believe this avowal….and thus my maxim, as soon as it were made a universal law, would have to destroy itself.<<ref "18">>
<<<

A maxim with lying, in this case, couldn’t be (and maintain being) universalized, and hence lying is not permissible. Even in the case of the murderer, Kant would argue from this formulation something along the lines of: if everyone lied, then lying wouldn’t succeed in deceiving a murderer because the murderer wouldn’t believe what anyone had to say. Apparently, one can never will a maxim of lying to be universal law, and thus this formulation justifies the position that lying is never permitted and always wrong.

Is Kant correct? I fear not. My criticism will be brief. If the CI generates duties which wildly conflict with our intuitions, then perhaps the CI and the duties it generates are not justified. The case of lying to the murderer at your doorstep is a great example of where many of our moral intuitions contradict the unequivocal duty not to lie. Surely Kant has to be wrong about that, it is so obviously incorrect. In the same way that it is intuitively obvious that torturing babies is morally wrong, it is intuitively obvious that it is morally permissible (if not obligatory) to lie to the murderer at your doorstep.

Kant would respond to my criticism by pointing out that intuitions are contingent, and they cannot serve as the foundational grounds upon which to assess normative theories. I’m not sure on the matter; both directions are compelling to me (I fear I rely on intuition in figuring out whether or not I should rely upon intuition). I don’t know if we can salvage everything in Kant’s theory, and I see our project as being one of figuring out which parts of the theory we need as they are, which parts we must adjust, and which parts we must amputate to save the rest. I think there is a way to adjust Kant’s theory which can pacify and satisfy the intuition-based worry in the case of lying to the murderer without destroying the necessity, universality, and exceptionlessness at the heart of Kant’s ethics.

I think the best solution is to particularize maxims to some degree.<<ref "19">> Maxims which are informationally enriched (specifying contexts, actions, and intentions to some extent) appear to be universalizable in cases where general maxims fail the test. An enriched maxim could pass the universality test; it would be necessary, unconditional, and exceptionless. It would apply to everyone, but it would only be needed in some circumstances.

  Kant wouldn’t want to do this.<<ref "20">> The parameters of maxim creation are a matter of debate, and I know my suggested solution will make any Kantian purist cringe. Again, I think Kant’s boat is sinking, and something drastic has to be done to fix it. In order to save the theory at large, we have to jettison Kant’s parameters on maxims, and that’s okay. The results are worthwhile, and they will match our moral intuitions and experience better.

Enriched, somewhat particularized maxims better capture the complexity of moral life; such maxims are tailored to the morally salient features of circumstances in a way that overly general maxims cannot admit or appreciate. That was the problem with general maxims in the first place. A number of the “hard cases” which our moral intuitions raise against Kant’s theory can solved by providing details in maxims – that this approach pacifies and complements our intuitions shows that this approach should not be dismissed out of hand. Lying maxims which are specified enough do seem universalizable, without contradiction or inconceivability. The reason nearly everyone thinks we should lie to the murderer at the doorstep is because we’ve already universalized that enriched maxim – that’s what our intuition captures.

Of course, this solution generates many questions. How particular could maxims be? Why? Isn’t it likely that particularized duties will lack the “bite” we’ve come to expect from general duties? I don’t know how best to respond to these kinds of problems. 

---------------------------

<<footnotes "1" "8:426">>
<<footnotes "2" "Admittedly, I can’t seem to uncover Kant’s definitive position on deceptive communication which may or may not explicitly qualify as lying (e.g. deception through omission, implicit misdirection, misuse of body language). I’ll set it aside, since it is too complex a topic to consider given the space I have.">>
<<footnotes "3" "8:426">>
<<footnotes "4" "6:238">>
<<footnotes "5" "8:426">>
<<footnotes "6" "8:427, this is a topic of its own">>
<<footnotes "7" "4:389">>
<<footnotes "8" "4:403">>
<<footnotes "9" "6:429">>
<<footnotes "10" "The average person may think certain lies are terrible, but the average person also acknowledges that “white” lies are a part of everyday life. Further, the average person may have intuitions that there are circumstances where lying is not only permissible, but morally required.">>
<<footnotes "11" "8:430, Given the appearance of Kant’s Biblical proclivities, perhaps he has Matthew 5:28 in mind. ">>
<<footnotes "12" "8:427">>
<<footnotes "13" "8:429">>
<<footnotes "14" "Arriving at different justifications (where only one formula can reach a given conclusion) isn’t necessarily a bad thing. Depending on our language, it is possible to exclusively deduce different (yet not contradictory) conclusions from two equivalent propositions given the rules of inference. For example, we could have the following propositions: ~P v ~Q; ~(P & Q); ~(P & Q) -> A;  (~P v ~Q) -> B. Clearly, the first two are logically equivalent (as the formulas of the CI might be), and depending on the rules of inference in our language, we might only be able to arrive at proposition B from ~P v ~Q and (~P v ~Q) -> B, and likewise, we might only be able to arrive at A from ~(P & Q) and ~(P & Q) -> A. Perhaps to get B from ~(P & Q) in our language, we might have to first convert ~(P & Q) to ~P v ~Q, and only then we could get B. Just because the two formulations arrive at different (as long as they aren’t competing) conclusions, justifications in our analogy, doesn’t mean there is a problem. ">>
<<footnotes "15" "4:429">>
<<footnotes "16" "I have so many worries about the moves he makes in this argument. As usual, I don’t have time or space to address them.">>
<<footnotes "17" "4:421">>
<<footnotes "18" "4:403">>
<<footnotes "19" "I recognize this does not neatly address all the formulations of the CI. I don’t have time or space to do that.">>
<<footnotes "20" "5:19">>
''1.1 – Introduction''

In this paper, I will be analyzing Jonathon Vogel’s explanationism, paying especially close attention to the arguments he provides in his article “Internalist Responses to Skepticism,” where he endorses explanationism as a solution to the problem of skepticism.<<ref "1">> Explanationism defends against skepticism, roughly, by claiming that a coherence among ordinary beliefs concerning our perceptual experiences justifies the belief in the negation of skepticism (e.g. –BIV). On this view, the patterns of our ordinary experiences (E*) are better explained by our rich set of ordinary beliefs, a “real-world hypothesis” (RWH), than a “brain in a vat” hypothesis (BIV). 

The first section of this paper, (1.2-1.4), will define key terms, frame Vogel’s explanationism, and clarify what kind of skepticism he is addressing. The second section focuses entirely upon a significant reductio ad absurdum argument which Vogel uses to demonstrate that RWH is always a better explanation than BIV. The third section will examine explanationism’s reliance upon inference to the best explanation, consider various problems with making an internalist inference to the external world, and assess whether or not explanationism really defuses the problem of skepticism.

''1.2 – What is Explanationism? What Species Is Vogel’s Explanationism?''

Explanationism (or explanatory coherentism) relies upon the principle of inference to the best explanation (IBE). Epistemic justification and knowledge are the results of some degree of internal coherence among an agent’s beliefs which have been authorized by or generated according to IBE. Explanationism often employs some kind of reflective equilibrium, piecing together, bootstrapping, revising, and negotiating of beliefs into increasingly coherent perspectives. There are few fixed judgments on this view; most planks on the boat can eventually be replaced. The theory is also fallibilist. Justified or knowledgeable agents can be wrong about their beliefs or knowledge; a justified belief or knowledge of a proposition does not logically entail the proposition is true.

IBE is the foundation of this coherentist view. The best explanation principle can invoke many kinds of explanatory criteria, including: simplicity (ontological, explanatory, or psychological), explanatory breadth or depth, coherence with background knowledge, appearing to avoid ad hoc elements, fecundity, neatness, conservatism, modesty, and testability.<<ref "2">> It remains a matter of controversy as to which (if any) of these pragmatic virtues matter, to what degree each matters, and how they balance against each other. Abductivism, an idea fairly related to explanationism, argues that hypotheses which satisfy these criteria more than their alternatives are more likely to be true. Explanationism builds upon this and takes a stronger position than the abductivist on the status of IBE. Explanationism requires a kind of explanatory coherence and expresses something more. Beebe explains:

<<<
Abductivism is not equivalent to any of the forms of explanationism that dot the philosophical landscape. In epistemology ‘explanationism’ often denotes the view that all reasoning (or at least all ampliative reasoning) is justified by explanatory considerations. This thesis is sometimes expressed as the view that all forms of inference ultimately reduce to inference to the best explanation.<<ref "3">>
<<<

According to Lycan, there are several kinds of explanationism: Weak, Sturdy, and Ferocious.<<ref "4">> Weak Explanationism is the “claim that explanatory inference can epistemically justify a conclusion.”<<ref "5">> This isn’t really exclusive to explanationism, as many already agree to this. Sturdy Explanationism adds to the weak version the claim that “explanatory inference can do its justifying intrinsically, that is, without being derived from some other form of ampliative inference, such as probability theory, taken as more basic.”<<ref "6">> Ferocious appends to Sturdy the claim that “no other form of ampliative inference is basic; all are derived from explanatory inference.”<<ref "7">> Which kind does Vogel defend? It depends on how we look at his arguments, but I think his goal is to defend the Ferocious kind of explanationism. At any rate, I will take him to be pursuing that goal in this paper.

''1.3 – Vogel Responds to What Kind of Skepticism?''

Vogel responds to external world skepticism. He deploys explanationism against what he calls “domestic” skeptics who “attempt to show us that beliefs we hold don’t count as knowledge [or justification] according to norms we ordinarily recognize.”<<ref "8">> Vogel does not seem to defend himself against what calls the “exotic” skeptic who challenges “our epistemic principle in some other way, perhaps holding them to other standards according to which ours are defective or wanting.”<<ref "9">> An exotic skeptic, perhaps like the Humean skeptic, may be going after a more global kind of skepticism than Vogel is worried about. Vogel’s concern is local, in some sense, since it pertains specifically to the set of propositions concerned with the external world. This focus upon domestic kinds of skepticism to the exclusion of exotic kinds is significant.

For example, skeptics may be infallibilists, and thus the standard of justification is extremely high. Vogel holds a fallibilist position. The move from infallibilism to fallibilism is another exotic worry which Vogel does not seem too concerned with, probably for good reasons. I don’t know how a defense of the external world can ever live up to infallibilist standards. Fallible knowledge and justification may be the only kinds that have a chance of surviving skepticism, since I think we must always concede that apodictic certainty of the external world cannot be had, and skeptics using that extreme epistemic standard are right.

Importantly, skeptics may reject the IBE standard. Vogel would see this as an exotic skepticism. The validity of the principle of inference to the best explanation is foundational to Vogel’s theory. Vogel acknowledges this is a problem for his theory, but does not address it. Since this issue is so crucial, I will be considering it in this paper, even though Vogel does not focus on defending it. 

Vogel may be sweeping other versions of exotic skepticism under the rug here. Perhaps this is a fine move; you can’t make everyone happy. Further, any successful version of domestic skepticism might seem more troubling than an exotic because it means we are losing the skeptic’s game even with our own rules.

Lastly, Fumerton makes a distinction between weak and strong skepticism, where weak skepticism targets knowledge and strong skepticism targets justification.<<ref "10">> Vogel’s argument is most successful if we interpret it as attempting to respond to strong skepticism. Oddly, while trying to defend justification, Vogel takes himself to be defusing weak skepticism as well. I believe Vogel is mistaken in thinking his theory defuses skepticism which targets knowledge, as it is not clear that explanationism really does lead to knowledge, even if it might result in justification. With that said, defeating strong skepticism would still be a significant step towards defeating weak skepticism because justification is a necessary requirement of knowledge.

''1.4 – Knowledge or Justification?''

Vogel spells out skepticism from the internalist perspective as follows:

*1a. In order to know M, you need to know that various possibilities of massive sensory deception do not obtain.
*1b. In particular, you need to know that you are not a brain in a vat (–BIV) stimulated so that it falsely appears to you that M.
*1c. In order to know –BIV, you have to be justified in believing –BIV.
*1d. But you are not justified in believing –BIV. 
*1e. Therefore, you do not know M.<<ref "11">>

Vogel claims explanationism can falsify premise (1d), arguing that if premise (1d) “of the skeptical argument is false…skepticism is refuted.”<<ref "12">> By this, he means that explanationism defuses not only strong skepticism (targeting justification), but also weak skepticism (targeting knowledge). I disagree, and I wish to stress that while falsifying (1d) is certainly a worthy response, it is not a finishing blow to weak skepticism. 

Vogel focuses on (1d). (1a) and (1b) are key premises that deserve more attention. (1b) follows from (1a), and (1a) seems to derive from the closure principle, a principle which certainly seems plausible.<<ref "13">>  If we agree to these premises, then we agree that defeating the skeptic requires demonstrating that we know –BIV. I’m not sure why Vogel begins his argument with this task (not a small one at that), but never resolves it. He seems to gloss over this weighty requirement, even though he boldly claims explanationism is a “solution to the problem of skepticism.”<<ref "14">>
  
Suppose explanationism justifies the belief –BIV. To be (mildly) justified in believing    –BIV, which is what Vogel at least minimally seems to think explanationism buys us, may be necessary but not sufficient for knowing  –BIV. Vogel does not neatly close this gap for us. Even if he does get us to the point where we are justified in believing –BIV to some extent, which is a significant accomplishment, it unfortunately does not seem as though explanationism gives us knowledge of –BIV, and that’s a problem for Vogel, given the criteria he set out for himself. 

The weak skeptic’s epistemic requirement is very high: knowledge, not merely justified belief. Presumably, the strong skeptic’s epistemic requirement is also a very high degree of justified belief.  Explanationism will likely fail to provide knowledge of –BIV, and hence Vogel’s argument will not defuse weak skepticism. We will examine much more closely whether or not Vogel is able to defeat the strong skeptic.  It would be no small feat to demonstrate that we can be justified in believing in the external world, even if we don’t necessarily know.  

It would strengthen Vogel’s argument at large if he explicitly chose to focus on responding to strong skepticism, targeting justification. Perhaps it would be useful to Vogel if we modify his sketch of the skeptic’s argument in this way:

*1a. In order to know M, you need to be justified in believing that various possibilities of massive sensory deception do not obtain.
*1b. In particular, you need to be justified in believing that you are not a brain in a vat (–BIV) stimulated so that it falsely appears to you that M.
*1c. But you are not justified in believing –BIV. 
*1d. Therefore, you do not know M.<<ref "15">>

Perhaps Vogel just wouldn’t go for this. He really may have meant what he said throughout his paper.<<ref "16">> Vogel would not claim to have defended knowledge lightly. This apparent slip from justification to knowledge may not be an accident; Vogel knows what he is doing. If so, why does he do it? Perhaps he employs some sort of probabilistic justification standard. When he thinks RWH explains our data better than BIV, he means to say that RWH is more likely to be true via IBE. This is where that probabilistic standard sitting beneath IBE seems to arise. If this is true, then we should probably interpret Vogel as offering a less than Ferocious account of explanationism. 

We might only get some weak form of justification when probabilities are low, but it doesn’t seem like we get knowledge without a really high chance. That we have such a high chance is something which Vogel would need to demonstrate.

Unfortunately, isn’t clear that RWH is far, far more likely than BIV. RWH is a better explanation of E* than BIV, but by what margin? Doesn’t this margin need to be significant? There needs to be a wide gulf in explanatory power between RWH and BIV before we can move on from mere justified belief to knowledge. I think Vogel doesn’t pay enough attention to that issue. So, he might get us to a point of being mildly justified in believing RWH, but it still does not seem like explanationism gets us knowledge. 
Setting this matter aside, let us see if Vogel’s explanationism can do the job of justifying belief in RWH instead of BIV.

''2 – Vogel’s Reductio''

One centerpiece argument Vogel offers in favor of explanationism is a powerful reductio which demonstrates why RWH has more explanatory power than BIV regarding our ordinary experience E*. He begins with the Art-attribution case:

<<<
Max is an art historian studying an old altarpiece. The best explanation of various features of the painting that he has been able to devise so far is that it was executed by two different painters. Accordingly, Max's initial version of RWH, RWH1, includes a belief that the altarpiece was due to two different hands. However, reconsidering the available information, Max realizes that a more satisfactory explanation of the data is that the altarpiece was painted by one person over a long period of time. Incorporating that belief into Max's total body of beliefs about the world gives him a new belief corpus, RWH2. RWH2 differs from RWH1, and the former has somewhat more explanatory merit overall than the latter.<<ref "17">>
<<<

Vogel argues for his reductio in this way:

<<<
Ultimately, RWH2 explains some aspect(s) of E* better than RWH1 does…RWH1 and RWH2 also compete with BIV. Let us consider Max after he has changed his mind about who painted the altarpiece. Suppose that the skeptic is right and Max has no justification for rejecting BIV at this point. In that case, RWH2 and BIV must offer equally good explanations of E*. But then, since BIV explains E* just as well as RWH2 does, and RWH2 explains E* better than RWH1 does, it follows that BIV explains E* better than RWH1 does. That is, before he changed his mind about who painted the altarpiece, Max was justified in believing that he was a brain in a vat, which surely cannot be right. We have here a reductio ad absurdum of the assumption that Max has no basis for preferring RWH2 to BIV on explanatory grounds.<<ref "18">>
<<<

Vogel claims to have an argument which proves the claim RWH2 is a better explanation of the historian’s evidence, E*, than BIV. This argument is crucial and significant, and unfortunately, I found his explanation somewhat unclear. If he really had a reductio, why didn’t he just write it out? In my survey of the literature on this topic, I only found one source which tried to explain what he might be doing here. I’m representing Kevin McCain’s argument from his dissertation (Vogel was on the committee) on the reductio here:

# RWH2 and BIV are equally good explanations of E*                              -- [AP for Reductio]
# RWH1 and BIV are equally good explanations of E*                                --            [Premise]
# If (α and ψ are equally good explanations of φ), and                                 --     [Transitivity’] 
##(α is a better explanation of φ than β), then 
##(ψ is a better explanation of φ than β)               
# RWH2 is a better explanation of E* than RWH1 		            --         [From Example] 
# BIV is a better explanation of E* than RWH1		              --                      [From 3, 1, 4]
# ~(BIV is a better explanation of E* than RWH1)		                --                 [From 2]
# ⊥									              --   [From 5, 6]
# ~(RWH2 and BIV are equally good explanations of E*)	 --            [Reductio from 1-7]<<ref "19">>

McCain stops here. Unfortunately, this doesn’t show that RWH2 is a better explanation of the historian’s evidence, E*, than BIV. Vogel does assume in his 43rd footnote that no one would argue that BIV is a better explanation of the historian’s evidence than RWH2, and we might take this as a premise: 

* 9. ~(BIV is a better explanation of E* than RWH2)		       --                        [Premise]

Now we see how to get to the conclusion we really want:

* 10. RWH2 is a better explanation of E* than BIV                            --                         [From 8, 9]

This is the significant conclusion which Vogel wants. Unfortunately, this reductio doesn’t look like anything which Vogel actually says. Vogel declares he has a reductio of the claim that “Max has no basis for preferring RHW2 to BIV on explanatory grounds.”<<ref "20">> McCain’s reductio does not match that, although his argument still has quite a bit of force to it (I suspect Vogel also agreed to it).

Also, it is unclear why we would go through the work for a reductio, as there seems to be a much quicker version of the argument one could offer given basically the same premises:

# RWH1 and BIV are equally good explanations of E*              --                             [Premise]
# RWH2 is a better explanation of E* than RWH1 		            --        [From Example] 
# If (α and ψ are equally good explanations of φ), and   --                                 [Transitivity’’]   
##(β is a better explanation of φ than α), then 
##(β is a better explanation of φ than ψ)               
# RWH2 is a better explanation of E* than BIV		  --                      [From 3, 1, 2]

Why wasn’t this argument offered? I think it wasn’t offered because it is more obvious that something fishy is going on. I’ll get to what is going wrong here in a bit. In any case, McCain’s version of the argument does not match what Vogel says. Going back to Vogel’s text, it is clear that he is using temporal language. He distinguishes when hypotheses are discovered, and this is an important clue for us. I will follow his text very closely and fill in gaps where I must (I’ve not neatly placed all premises at the top because that is not how Vogel’s argument flows):

# ~(At time T2, RWH2 is a better explanation of E* than BIV) 	--      [AP for Reductio]
# At time T2, RWH2 is a better explanation of E* than RWH1           --           [From the Text] 
# At time T2, RWH2 and BIV are equally good explanations of E*       --       [From the Text]
# If (at time Ti, α and ψ are equally good explanations of φ), and          --          [Transitivity1]                                                 
##(at Ti, α is a better explanation of φ than β), then 
##(at Ti, ψ is a better explanation of φ than β)               
# At time T2, BIV is a better explanation of E* than RWH1		  --          [From 4, 3, 2]
# If (at time Ti, α is a better explanation of φ than ψ), then                 --         [Time Premise1]
##(at time Tk, α is a better explanation of φ than ψ), 
##where k is any arbitrary number
# At time T1, BIV is a better explanation of E* than RWH1		--	    [From 6, 5]
# At time T1, RWH1 and BIV are equally good explanations of E*    --        [From the Text?]
# ~(At time T1, BIV is a better explanation of E* than RWH1)	            --        [From 8]
# ⊥ 									--       [⊥Intro, 7 and 8]	
# At time T2, RWH2 is a better explanation of E* than BIV	     --       [Reductio from 1-12]

Note that from the conclusion (11), via repeated application of (6), we know RWH2 is a better explanation of E* than BIV at any time. This would be a significant claim to prove. This unspoken time premise, (6), is crucial to getting the results that Vogel needs.

Let us dig into this argument a bit. We should grant (4), since it is obviously correct. The two premises which are most curious are (6) and (8). 

Vogel does not explicitly claim (8) in this passage, but he seems to argue for it when he says “before he changed his mind about who painted the altarpiece, Max was justified in believing that he was a brain in a vat, which surely cannot be right.”<<ref "21">> Indeed, it does seem essential to the skeptic’s argument that BIV is equally good at explaining E* as the best RWHi we have available. RWH1 was the best RWHi we had at T1, hence it would make sense to accept (8) for the sake of argument.

That leaves the time premise. I think (6) is an important part of Vogel’s argument, and it is a shame he didn’t examine it. Let us carefully think through what went on in (2-5), right before this time premise. All of the moves make sense. After Max has changed his mind about who painted the altarpiece (T2), RWH2 was the best RWHi available, and thus BIV was made to be equally good at explaining E*, thus at T2, RWH2 and BIV are better explanations of E* than RWH1. What then is (6) doing? It shows, in this case, that if BIV is a better explanation of E* than RWH1 at some point in the future, then it is also the case in the past. But, why should we think that? I’m not sure. Admittedly, some part or application of the time premise seems right. 

Interestingly, similar to the McCain version, Vogel didn’t need to give us a reductio ad absurdum. Vogel could have just offered this argument instead:

# At time T1, RWH1 and BIV are equally good explanations of E*       --       [From the Text]
# If (at time Ti, α and ψ are equally good explanations of φ), then         --      [Time Premise­2]                                                 
##(at time Tk, α and ψ are equally good explanations of φ),  
##where k is any arbitrary number
# At time T2, RWH1 and BIV are equally good explanations of E*            --         [From 2, 1]
# At time T2, RWH2 is a better explanation of E* than RWH1                   --  [From the Text] 
# If (at time Ti, α and ψ are equally good explanations of φ), and               --     [Transitivity2]                             
##(at time Ti, if β is a better explanation of φ than α), then
##(at time Ti, β is a better explanation of φ than ψ)             
# At time T­2­, RWH­2 is a better explanation of E* than BIV                           --  [From 5, 3, 4]

We got (6), which was the conclusion in the reductio, by using different transitivity and time premises (which were just as plausible as the first ones he used). Notice that with time premise­1 added, Vogel still gets what he wants, which is the claim that we know RWH2 is a better explanation of E* than BIV at any time.

These time premises are very powerful, and they are the keys to amplifying particular conclusions into the universal results Vogel wants. It is unclear if we must accept Vogel’s unspoken time premises. Even if we grant Vogel these time premises, something fishy is going on here. The problem has to do with timing. Maybe it isn’t the time premises themselves, but rather the way in which Vogel handles the BIV hypotheses in these arguments.

Vogel’s reductio seems to treat BIV as monolithic hypothesis with a static degree of explanatory merit regarding E*. The reductio only follows on the assumption that BIV’s explanatory power doesn’t change through time. But such an assumption seems to be missing the point: the whole strategy of the BIV argument is that no matter how strong a RWH­i­ we come up with there is an equally good BIV argument. The ability for BIV’s explanatory power to change given the strength of our RWH­i­ is already stipulated, and yet the implications of this ability are not well described in Vogel’s reductio. 

While on one hand Vogel treats BIV as a monolithic and static hypothesis, on the other, Vogel seems to recognizes that BIV scales with explanatory merit of various RWH’s, else he would not be able to posit both that RWH­2­ and BIV have equal explanatory merit in (2) and  that RWH­1­ and BIV have equal explanatory merit in (8). In this sense, Vogel is more aware that the skeptic employs some sort of mechanism which ensures that BIV is equally good at explaining E* as the best RWHi ­we have available, at any time T­i. Vogel does not effectively reconcile this tension.

Timing is important to this mechanism and its output, and Vogel’s explanation and use of BIV has failed to capture that. Here’s what I think is really happening: 

Consider RWH­1­ as the best RWH­i­ we have available for explaining E* at time ­T­1­. The skeptic’s mechanism crafts BIV to be equally good as RWH­1 ­at explaining E* at time T­1­. Let’s call this version BIV1­. At T­2­, we discover a better RWH­i­, call it RWH­2­. The skeptic’s mechanism recognizes this, so it strengthens the old BIV­1­ to be equally good at explaining E*as RWH­2­, call it BIV­2­. We would say that both RWH­2­ and BIV­2­ are better explanations of E* than RWH1 ­and BIV­1­. If this is the correct way of thinking about it, then the premises must be rewritten, and the attempted reductio argument will play our differently:

# ~(At time T2, RWH2 is a better explanation of E* than BIV­2) 	--      [AP for Reductio]
# At time T2, RWH2 is a better explanation of E* than RWH1           --           [From the Text] 
# At time T2, RWH2 and BIV­2 are equally good explanations of E*     --        [From the Text]
# If (at time Ti, α and ψ are equally good explanations of φ), and          --          [Transitivity­1­]                                                 
##(at Ti, α is a better explanation of φ than β), then 
##(at Ti, ψ is a better explanation of φ than β).               
# At time T2, BIV­2 is a better explanation of E* than RWH1		       --     [From 4, 3, 2]
# If (at time Ti, α is a better explanation of φ than ψ), then                      --     [Time Premise­1­]                           
##(at time Tk, α is a better explanation of φ than ψ), 
##where k is any arbitrary number.
# At time T1, BIV­2 is a better explanation of E* than RWH1		--	    [From 6, 5]
# At time T1, RWH1 and BIV1 are equally good explanations of E*  --         [From the Text?]
# ~(At time T1, BIV1 is a better explanation of E* than RWH1)	    --                 [From 8]
# ⊥ 					       			            --        [⊥Intro, 7 and 8]	

Notice that we can’t get (10) from (7) and (9), as we are comparing BIV­2­ to RWH­1­ in one, and BIV­1­ and RWH­1­ in the other. At no point can we conclude that RWH2 is a better explanation of E* than BIV­2­, which is what Vogel would need.  The second argument fails to deliver what Vogel needs as well, as the conclusion becomes: (At time T­2­, RWH­2 is a better explanation of E* than BIV­1).

I am convinced neither Vogel’s reductio nor the shorter, alternative arguments I suggested will get Vogel the conclusion he needs (the same is also true for McCain’s versions). I don’t think this argument provides us justification to believe RWH instead of BIV.

''3.1 –IBE and Justification ''

Vogel claims RWH explains the sum of our sensory experiences, E*, better than BIV, and thus we are justified in accepting RWH, and consequently, in accepting –BIV. At least some real-world hypotheses are thought to be simpler and more unified than BIV hypotheses, and thus some RWH­i are better at explaining E*. On Vogel’s view, any version of BIV should be rejected because it is comparatively too complex and perhaps ad hoc. Should we really agree that some RWH necessarily has more explanatory merit than all BIV hypotheses? 

Indeed, some models of BIV, perhaps even the usual ones, will build on top of a RWH (possibly in an ad hoc manner) an abstraction, an extra layer, an added mechanism, or an additional agent which explains E*. On such models, BIV is thought to be more complex than RWH, and therefore such models have less explanatory merit than RWH. But is this the case for all BIV hypotheses? This seems to be what Vogel needs, and yet it is far from clear that this is true. 

Further, the skeptic need not convincingly demonstrate a case where BIV is simpler than RWH – he merely needs to open our eyes to the possibility of such a thing. Is it at least possible that some BIV hypothesis could have more explanatory merit than real-world hypotheses? Maybe. That’s a problem for a theory which relies upon showing not only that the usual BIV hypotheses have less explanatory merit than at least one RWH, but that all BIV hypotheses must have less explanatory merit than some RWH

''3.2 – Some Preliminary Concerns''

# Vogel claims there are two competing causal explanations of my experience, E*, “the relevant body of evidence, the ‘data’ to be explained…the occurrence and nature of my experience,” namely either the set of my ordinary beliefs about the world, RWH, or BIV.<<ref "22">> He further claims that if “explanationism is correct, then E* justifies both our ordinary beliefs about the world (including perceptual beliefs) and the rejection of –BIV.”<<ref "23">> Is this right? Why should the thing to be explained, E*, justify belief in the hypothesis which explains it? Rather than E* directly justifying belief in RWH, it seems to make more sense to say IBE justifies believing RWH, instead of BIV, as the causal explanation of E*. 

# For anyone who holds strong doxastic voluntarism, it seems like some of the best ways to achieve explanatory coherence in our belief systems is to simply throw out specific trouble-making beliefs. What’s to stop us from doing that on the explanationist view? Isn’t that a problem?<<ref "24">>

# What if we think IBE is more objectionable than the RWH itself?<<ref "25">> It wouldn’t be acceptable to employ epistemic standards which are more objectionable than the targets which those standards are trying to explain and justify. This is a possibility for the skeptic. Shouldn’t the explanationist explain why IBE stands on firmer ground than RWH, thus enabling IBE to be in a position to explain RWH?

# There seems to be another skeptical possibility other than the usual skeptical claims, such as demons or brains in vats, specifically in the case where the explanationist feels they can explain causation better in terms of the RWH. What if our sensory experiences are uncaused?<<ref "26">> Note, the scope isn’t some global denial of causation or induction in general, but rather a denial of causation of sensory experience (without resorting to “chance,” from which an explanationist may have a foothold). Explanationism would be trying to find an explanation for something which is uncaused. Admittedly, to say that something is uncaused is sort of a causal story already. Obviously, the explanationist believes our sensory experiences have external causes, but isn’t that an assumption which must be defended? We don’t ordinarily doubt that sensory experiences have causes (that would be crazy, right?), but philosophically, we can. It is far from clear how the explanationist can explain how we know (or why we are justified in believing) our experiences have causes. This seems like another possible objection or doubt the skeptic can raise against explanationism.  

''3.3 – Argument from Simplicity ''

Vogel argues that in RWH, “certain truths about spatial properties and relations are necessary.”<<ref "27">> Vogel says, “In short, according to RWH, that Dist(a, b, c) is greater than Dist(a, c) at least partly explains T,” where T = “why one set of experiences (those you have walking the long way) has greater duration than another set of experiences (those you have walking the direct way).”<<ref "28">> 

In contrast, Vogel thinks a digital simulation (working from Bonjour’s analog/digital distinction) of these spatial properties and relation, such as we would find in an “isomorphic skeptical hypothesis” (ISH), supposedly one of the most defensible versions of BIV, are contingent rather than necessary.<<ref "29">> In order to explain T as effectively as RWH, this contingency requires ISH to “to introduce some further empirical regularity” in the mechanisms which make [Dist (a, b, c) > Dist(a, c)] true in the artificial world.<<ref "30">> That adds to the complexity of ISH, and it makes it less simple than RWH. 

Simplicity, in Vogel’s view, is one way to allocate and characterize the differences in explanatory merits between competing hypotheses. Vogel’s argument here is that RWH is simpler than the best BIV hypotheses (ISH variants), and thus RWH is a better explanation of T (and essentially E*) than all BIV’s. Should we really agree to simplicity as having so much sway? I don’t see why we should. Simplicity is attractive, but it seems far too weak to determine which hypotheses are more justifiable than others.

Hundreds of years ago, Newton’s theory was coherent given the data people had. The simplicity component of IBE would select and justify Newton’s theory. They were justified in believing it, but that doesn’t make Newton’s theory correct. It just so happens that a far more complex hypothesis is better. We do have better data nowadays, and that data is better explained by a complex hypothesis. Doesn’t this reveal a problem though? Knowledge or justification is deeply constrained by the data we have in the first place. Sometimes we don’t have a sufficient dataset from which to be sufficiently justified, and even if we are justified in some minimal sense, we don’t know we have the truth. Why should we believe that simplicity really gives us the correct answer? Why is it even more likely to arrive at the truth? 

Doubting Bonjournian digital explanations merely because they lack simplicity is a practice that many scientists don’t even practice. There are physicists who believe we live in one universe of many – that we are part of a multiverse.  They likely can’t prove it or test it, although they have models that describe our universe which suggest it (admittedly, it may not even be science). 

A multiverse is very similar to a digital explanation – it requires admitting that this vast, complex, and beautiful thing we call a universe may not really exist as we think it does, it may be caused for reasons beyond us, it may be incomplete or distorted, perhaps illusory in some ways. Most importantly, a multiverse breaks out of the simplicity mold. These people, who to my mind are experts on the external world (they have incredibly complex RWH’s), are willing to reject simplicity and embrace digital explanations.  Why shouldn’t we? Maybe BIV’s lack of simplicity isn’t as big of a deal as Vogel thinks. Simplicity might point in the direction, but it seems weaker than Vogel claims.

''3.4 – Argument from Ad Hocness''

Vogel believes BIV, unlike RWH, is an ad hoc hypothesis. Vogel explains, “RWH, our ordinary view of the world, has an elaborated structure that gives it considerable explanatory richness and power. Therefore, it is no surprise that skeptical hypotheses with little or no worked‐out structure are inferior to RWH from an explanatory standpoint. This difference justifies us in rejecting such meager skeptical hypotheses on explanatory grounds.”<<ref "31">> BIV, as Vogel sees it, is just a shell of a hypothesis with no real teeth or purpose – it is ad hoc. 

Vogel roughly defines an ad hoc explanation as, “one that explains only the phenomena it was introduced to explain and is not otherwise confirmed or testable.”<<ref "32">> Isn’t this a serious problem for the RWH as well though? RWH exists to explain E*, and it is also not otherwise confirmed or testable. It isn’t like we can line-up our competing hypotheses, RWH and BIV, and “go out,” in the most purely objective sense, into the world and empirically test which one is true or false. I fundamentally don’t see how either RWH or BIV could be empirically confirmed. Vogel needs to do a lot more to convince us that it is empirical, and then he must show why RWH does not suffer from the same ad hoc perspective as BIV. 

Further, this requirement of an “elaborated structure” seems to miss the point. Does the skeptic really need to draw out exactly how, in detail, BIV works? A skeptic with some sympathy towards Vogel’s claims here might just need to argue that there could be a BIV hypothesis which has equal or better explanatory powers to our best RWH hypotheses, even if we don’t immediately have a BIV hypothesis at hand which satisfies Vogel. Perhaps we must prove the skeptic is wrong in a complete sense, else that doubt will always be there. 

Comprehensive, elaborated fantasies can still be wrong, and skeletal hypotheses lacking detail can still be right. What merely seems ad hoc may not be. Avoiding the appearance of ad hocness seems quite attractive, especially when trying to convince others, but it doesn’t necessarily (or perhaps even probably) get us to truth.

''3.5 – Objectivity and Subjectivity''

RWH is a more natural hypothesis to generate than BIV; it is what the usual mode in which we receive the world. That doesn’t, however, make it right. I worry that IBE, the principle which authorizes RWH, is just epistemic laziness. It is a way to cut corners for the sake of convenience.<<ref "33">> We merely hope it is a shortcut to truth. It is unclear why we should think coherence based on IBE, with its variety of criterion, is necessarily connected to the truth, a matter quite external to us. Ultimately, the most coherent belief systems may still be pure fantasy. Vogel may consider questioning IBE as a form of exotic skepticism, but from what I can tell, worrying about the potency and authority of IBE is a valid and crucial concern. 

If I were to be very pessimistic and perhaps not charitable enough about explanationism, I would say it is too internalist.<<ref "34">> We never settle the actual matter of an external world. The coherentist view doesn’t seem to care enough about how beliefs correspond to facts in the real world. The coherentist view seems to over-prioritize the epistemic over the ontological. It borders on claiming that the world is the way we think it is. That seems so backwards. On such a view, explanationism doesn’t really care about the ontic structure external to us; it only cares about the epistemic structure internal to us, about how our perceptions and beliefs mesh together. We might argue that internalist truth is a relation between one’s hypothesis and one’s mind, without any serious consideration about the world. In actuality, truth is a relation between one’s hypothesis and the world. Justification, unlike truth, is probably a relationship between one’s hypothesis, one’s mind, and the world. Perhaps explanationism focuses too much upon one’s hypothesis and mind to the exclusion of the world (despite the fact that it claims to really be interested in justifying our beliefs about the world). 

Maybe there are other hypotheses besides BIV which compete with RWH and are just as coherent and possess the same explanatory force as RWH. It seems like explanationism never settles the matter. It isn’t concerned enough with making sure one reaches the right final answer, only that one reaches an internally acceptable answer at any given moment. Explanationism seems to suffer from the problem that most coherentist theories face: there seem to be a plurality of coherent sets of beliefs, and coherentism fails to reveal or select the one complete set of true beliefs (if there is one). Shouldn’t we be worried that explanationism seems to be capable of justifying multiple, incompatible hypotheses? Perhaps coherentism takes fallibilism too far.
 
We might imagine scenarios in which the objectively better explanation, such as a newly released Copernican model, does not explain our current data or predict as effectively as another objectively worse explanation, such as the Ptolemaic model. From what I recall, when the Copernican model was first offered, the Ptolemaic view was, for a brief time in history, still a more coherent hypothesis than the Copernican one. In such a case, the explanationist must defend the objectively weaker view, the Ptolemaic model. Shouldn’t this kind of thing be a problem? I worry that explanationism doesn’t even hope to aim for objectivity (although, perhaps it is arrogant to think we can reach it). 

Availability of hypotheses seems to be a worry. What if I can only access a really small number of hypotheses, and objectively speaking, they are all really bad. Explanationism doesn’t seem to give us the kind of reasons to think this is a bad thing. Explanationism seems, subjectively speaking, to give us justification for believing what might be the best of those available hypotheses, but from an external or objective view, those hypotheses are so bad that they just aren’t really worth having, they aren’t really justifiable – they don’t really help us get close enough to the truth. It isn’t clear how IBE results in any of our hypotheses being “likely true” at all. You can’t seem to infer the best (or even decent) explanation, in our example, because you never had access to it. Why should we think we have access to the best explanation/hypothesis? Why should we even think we have access to adequate explanations/hypotheses which are merely good enough? It seems like the explanationist must take these on faith. I don’t see why we are necessarily justified in thinking that one of the explanations in our pool of accessible explanations will be the correct one or even a worthy explanation.

Why should we agree to IBE? IBE demonstrates that certain propositions are epistemically more attractive than others, but it doesn’t necessarily demonstrate, as far as I can tell, that certain propositions are more likely than others. I feel the two are conflated in the explanationist theory. Even if explanationism does demonstrate that a hypothesis is more likely, is that really enough for justification? It seems like probabilistic justifications (which seem oddly externalist) might justify us, but we may never be in a position to know when we are justified (which should be a problem for an internalist).

Ultimately, explanationism suggests that we are justified in our beliefs (or even have knowledge possibly), regardless of whether or not we are brains in vats. It seems like explanationism is so internalist that it disregards the problem of skepticism entirely. As Vogel says himself, he’s really not interested in exotic skepticism, including skepticism of IBE. Is this missing the point of skepticism? Possibly.

''3.6 – BIV: Juicing Our Intuitions from a New Perspective''

The notion of brains in vats has generally been the stuff of mere fiction and imagination. It has, as far as we know, never been a real thing for us to examine. Perhaps some people think an elaborate hoax, such as being a BIV, is ad hoc or impossible because, until recently, something like that was unfathomably impractical. I wonder if our intuitions on this topic may be skewed simply because we’ve never personally known ourselves to experience or see a BIV experiment in action. The BIV topic has generally revolved around whether we, as humans, are hypothetically brains in vats. That has a subjective perspective to it, and it may have a certain set of biases that come with it. We don’t want it to be true! We prudentially need it to be false. Perhaps our intuitions are skewed because our stance is too subjective. What if we could have a more objective stance in some sense? Interestingly, the possibility that we may create our own brains in vats is a problem we might face in our own lifetimes!

Some people, particularly those from materialist persuasions, can envision artificially created sentient creatures with human-like intelligence built from what we ordinarily think of as computer hardware or software. Artificial intelligence, even minds like ours, really could be created within our lifetimes. Further, some programmers are really sick and twisted folk with way too much time on their hands, and it seems very possible that if AI existed, some mad programmer would design a digital world in which to entrap these artificial minds (we already create rough, small-scale versions of digital worlds for video gamers). 

Maybe our artificial creatures will just be digital creatures, with digital bodies and digital sensations, etc. These artificial creatures might, psychologically and intellectually speaking, be identical to us. They will believe the mad-programmer’s Matrix is the external world, and they will have reasons like we do, fulfilling all the explanationist requirements.

 When these artificial creatures, trapped in the mad-programmer’s Matrix, employ Vogel’s explanationism, will we as humans, sitting outside the Matrix and looking upon these brains in vats, think they have knowledge or justified belief of an external world? 

From our perspective, a more objective perspective than these creatures arguably have, I think we will be far more hesitant to say these intelligent beings have knowledge or justified belief. Their fallibility and the fact that they’ve been hoodwinked will be right there before us. Their lives would be filled with lies. We would know that. 

From their perspective, facing the same problems we do in philosophy, they will subjectively feel more justified in believing in the external world than perhaps they ought. They will argue from simplicity, and yet we will know better. They will argue BIV is ad hoc, and yet we will know better. IBE and explanationism may comfort them, but we will know better. But, when we apply the same standard to ourselves, why are we any different from these creatures?

Some people seem to take the BIV hypothesis as just being too outlandish. They don’t want to envision it, and they have a bias against it. Perhaps life would not be right if it were true. Consider the problem of moral life in Nozick’s experience machine. Admittedly, being justified in believing the external world might not turn out to be that hard. Perhaps living a life worth living requires it, and this is a kind of Pascal’s wager – where we have nothing or something, and we are justified in having faith-like belief for prudential reasons. This isn’t what the skeptic is talking about though, and he will tell us that we’ve missed the point. If and when we are the keepers of brains in vats, will our intuitions change on this topic? Maybe.

''4 – Conclusion''

	Vogel’s explanationism is powerful and something about it is intuitively right. Its use of IBE and interest in coherence is admirable. Many of the underpinnings of explanationism don’t seem justified. I think one could make foundationalist moves to support this theory. Explanationism may turn out to justify our belief in RWH instead of BIV, but it isn’t yet clear that it does. Ultimately, the skeptic always seems to be in a position to call into doubt the principle of inference to the best explanation and the results of that principle. Explanationism may eventually turn out to be a reasonable response to skepticism, but it does not defeat skepticism.

--------

<<footnotes "1" "Jonathon Vogel, 'Internalist Responses to Skepticism,' in //The Oxford Handbook of Skepticism//, ed. John Greco (Oxford: Oxford University Press, 2008): 533-556">>
<<footnotes "2" "Beebe, James R. 'The Abductivist Reply to Skepticism.' //Philosophy And Phenomenological Research// 79, no. 3 (November 1, 2009): 609-611 and Lycan, William G. 'Explanation and Epistemology.' In// The Oxford Handbook of Epistemology//, Oxford: Oxford Univ Pr, 2002: 10">>
<<footnotes "3" "Beebe, James R. 'The Abductivist Reply to Skepticism.' //Philosophy And Phenomenological Research// 79, no. 3 (November 1, 2009): 612">>
<<footnotes "4" "Lycan, William G. 'Explanation and Epistemology.' //In The Oxford Handbook of Epistemology//, Oxford: Oxford Univ Pr, 2002: 11">>
<<footnotes "5" "Ibid.">>
<<footnotes "6" "Ibid.">>
<<footnotes "7" "Ibid., 12">>
<<footnotes "8" "Vogel, Jonathan. 'Skeptical Arguments.' //Nous-Supplement: Philosophical Issues// 14, (January 1, 2004): 439">>
<<footnotes "9" "Ibid.">>
<<footnotes "10" "Fumerton, Richard A. //Metaepistemology and Skepticism//. Lanham, MD: Rowman & Littlefield, 1995. DJVU: 29-30">>
<<footnotes "11" "Jonathon Vogel, 'Internalist Responses to Skepticism,' in// The Oxford Handbook of Skepticism//, ed. John Greco (Oxford: Oxford University Press, 2008): 533">>
<<footnotes "12" "Ibid., 544">>
<<footnotes "13" "Very broadly, we might explain the principle in this way: If S knows (or S is justified in believing) P, and S knows (or S is justified in believing) P entails Q, then S knows or S can come to know (or S is justified in believing or S is justified in coming to believe) Q. Admittedly, some version of this principle seems like it must be correct. ">>
<<footnotes "14" "Ibid., 550">>
<<footnotes "15" "Ibid., 533">>
<<footnotes "16" "I’m beginning to believe he does mean it.">>
<<footnotes "17" "Vogel, Jonathan. 'Internalist Responses to Skepticism.' //Oxford Handbooks Online//, September 2009: 14">>
<<footnotes "18" "Ibid., 15">>
<<footnotes "19" "McCain, Kevin. 'Inference to the Best Explanation and the External World: A Defense of the Explanationist Response to Skepticism.' Diss., University of Rochester, 2011. http://hdl.handle.net/1802/21405.">>
<<footnotes "20" "Ibid.">>
<<footnotes "21" "Ibid. 15">>
<<footnotes "22" "Ibid., 5">>
<<footnotes "23" "Ibid.">>
<<footnotes "24" "Lycan, William G. 'Explanation and Epistemology.' In //The Oxford Handbook of Epistemology//, Oxford: Oxford Univ Pr, 2002: 25">>
<<footnotes "25" "Beebe, James R. 'The Abductivist Reply to Skepticism.' //Philosophy And Phenomenological Research// 79, no. 3 (November 1, 2009): 626">>
<<footnotes "26" "Fumerton, Richard. 'Skepticism and Reasoning to the Best Explanation in Rationality in Epistemology, Villanueva, Enrique (ed).' Atascadero: Ridgeview, 1992: 162-163.">>
<<footnotes "27" "Vogel, Jonathan. 'Internalist Responses to Skepticism.' //Oxford Handbooks Online//, September 2009: 18">>
<<footnotes "28" "Ibid., 19">>
<<footnotes "29" "Ibid., 18">>
<<footnotes "30" "Ibid., 19">>
<<footnotes "31" "Ibid., 16-17">>
<<footnotes "32" "Ibid., 15">>
<<footnotes "33" "Lycan, William G. 'Explanation and Epistemology.' In //The Oxford Handbook of Epistemology//, Oxford: Oxford Univ Pr, 2002: 15">>
<<footnotes "34" "Perhaps any adequate theory of justification and knowledge must have a foot in both the externalist and internalist camps. If you go too far to any side of the spectrum, you get some lousy results. That said, I don’t know how the externalist gets to the external world either.">>

-----------

''Bibliography''

Achinstein, Peter. "Explanation Versus Prediction: Which Carries More Evidential." //Oxford Scholarship Online//, November 3, 2001. 
Allen, Ronald J. "Explanationism All the Way Down." //Episteme: A Journal Of Social Epistemology// 5, no. 3 (January 1, 2008): 320-328.

Beebe, James R. "The Abductivist Reply to Skepticism." //Philosophy And Phenomenological Research// 79, no. 3 (November 1, 2009): 605-636.

BonJour, Laurence, and Ernest Sosa. //Epistemic Justification: Internalism vs. Externalism, Foundations vs. Virtues//. Malden, MA: Blackwell Pub., 2003. PDF.

Byerly, T. "Explanationism and Justified Beliefs about the Future." //Erkenntnis// 78, no. 1 (February 1, 2013): 229-243.
Fumerton, Richard A. Metaepistemology and Skepticism. Lanham, MD: Rowman & Littlefield, 1995. DJVU.

Fumerton, Richard. "Skepticism and Reasoning to the Best Explanation in Rationality in Epistemology, Villanueva, Enrique (ed)." Atascadero: Ridgeview, 1992.

Harper, Alexander. "An Oblique Epistemic Defence of Conceptual Analysis." //Metaphilosophy// 43, no. 3 (April 2012): 235-56.
Lipton, Peter. Inference to the Best Explanation. 2nd ed. London : Routledge, 2005. PDF.

Lycan, William G. "Explanation and Epistemology." In //The Oxford Handbook of Epistemology//, Oxford: Oxford Univ Pr, 2002.

McCain, Kevin. "Inference to the Best Explanation and the External World: A Defense of the Explanationist Response to Skepticism." Diss., University of Rochester, 2011. http://hdl.handle.net/1802/21405.

Moretti, Luca. //Global Scepticism, Underdetermination and Metaphysical Possibility//. University of London. PhilPapers. http://philpapers.org/rec/MORGSU.

Peacocke, Christopher. //The Realm of Reason//. Oxford: Clarendon Press, 2004. PDF.

Poston, Ted. "Explanationist Plasticity and the Problem of the Criterion." //Philosophical Papers// 40, no. 3 (November 2011): 395-419.

Jonathon Vogel, "Internalist Responses to Skepticism," in //The Oxford Handbook of Skepticism//, ed. John Greco (Oxford: Oxford University Press, 2008): 533-556

Vogel, Jonathan. "Internalist Responses to Skepticism." //Oxford Handbooks Online//, September 2009. 

Vogel, Jonathan. "Skeptical Arguments." //Nous-Supplement: Philosophical Issues// 14, (January 1, 2004): 426-455.
''1 - Introduction''

In this paper, I will trace measurement, and in particular the measure of the mean, as found in the Statesman. I will try to show how and why measurement is a central theme in the Statesman. I hope we can find ourselves in a better position to interpret passages which are less clear or obliquely employ the concept of measurement. 

From what I have gathered, the words “measure,” “measured,” and “measurement” show up a sum total of only fourteen times in the Statesman.<<ref "1">> As for direct synonyms and highly related words to the measure of the mean: the words “fit,” “fits,” “fitted,” “befits,” and “fitting” show up eighteen times in total.<<ref "2">> The word “appropriate” is used three times.<<ref "3">> The words “opportune,” “inopportune,” “opportunely,” and “opportunity” can be found six times.<<ref "4">> The language of the measure of the mean includes so many others words as well, including: need, purpose, extreme, excess, deficiency, etc. The Statesman is littered (or woven) with the language of measurement. 

I can’t hope to provide thorough exegesis for all the passages which explicitly employ the language of measurement. Instead, I’m going to focus closely on the passage directly concerning the art of measurement (283-287). Here we will find the majority of the direct use of “measure” found in the Statesman, and it seems like a fine starting place for explicating measurement in the dialogue. 

My objectives in examining measurement are to provide analysis of fundamental concepts, demonstrate the relationship between measurement and various other topics in this dialogue, consider oddities in the text regarding measurement, and point out how measurement is a key to unlocking the Statesman. 

''2 – Overview of Measurement''

The primary measurement passage, 283-287, follows the long section on weaving. We are left to wonder why weaving wasn’t defined more quickly and simply, as it primarily is just the intertwining of warp and woof. The measurement passage is timely, finally bringing an end to the weaving passage.<<ref "5">> On the face of it, the discussion of measurement is introduced to provide a principle one uses to cure what may be a dialectical “illness.”<<ref "6">>  Beyond addressing the length of the weaving passage, perhaps the discussion of measurement is introduced in order to elucidate or help us interpret the complexities of weaving, but since measurement applies to so much of the dialogue, it is doubtful that the discussion of measurement has such a narrow purpose.  

Measurement is divided into two kinds. This is one of the few divisions that make sense in the dialogue. The Stranger begins the major passage on measurement by claiming we must look “at the entirety of excess and defect.”<<ref "7">> We need a standard which enables us to judge whether something is lacking in some way, either through an excess or deficiency in some quality or characteristic. He says, “About length and brevity and every excess and defect, for surely the art of measurement deals with all these things,” and that we should “divide it into two parts.”<<ref "8">> The Stranger explains the division of measurement in this way: “one is to be characterized in terms of the mutually relative sharing in bigness and smallness, and one in terms of the necessary (indispensable) being of becoming.”<<ref "9">>

This first kind of measurement is mathematical measurement. This kind of measurement is the set of “all the arts that measure number, lengths, depths, widths, and speeds relative to their contraries.”<<ref "10">> Mathematical measurement is quantitative, computable, and the very straightforward and scientific evaluation of things. The Stranger refers to the mathematical measure as the “mutually relative measure.”<<ref "11">> On the Stranger’s view, mathematical measurements are relative to each other.<<ref "12">> We might also think of the mathematical measure as relationship between things and things. To say this object is longer than that one is just to compare objects and point out a spatial difference. To say that this object is cold may just be a relationship of that object’s temperature compared to other objects’ temperatures. Mathematical measurement seems to relate things to things.  

Many kinds of practices and knowledge belong to this art of mathematical measure: knowledge of common units, perhaps an understanding of rudimentary physics, tools to gauge the quantifiable properties of things, and definitely calculation. At first glance, it seems as though procedures involved in mathematical measuring relate an object to some abstract mathematical standard (e.g. the exact length of a meter), and so we might be tempted to claim that the mathematical measure doesn’t relate things to things, but rather things to that abstract mathematical standard. This isn’t so clear though. What is the convention for determining the exact length of a meter? It can’t be done a priori. In fact, the meter “was to be constructed so that it would equal one ten-millionth of the distance from the North Pole to the equator along the meridian running near Dunkirk in France and Barcelona in Spain.”<<ref "13">> A meter as a measurement is a distance between two things we experience, and hence, claiming an object is a meter long is demonstrating a spatial relationship between that object and the distance between North Pole to the Equator in a specific setting. All units of mathematical measurement seem to be like this. Hence, we might argue mathematical measurement ultimately relates things to things.

The other kind of measurement, the more important one, is the non-mathematical measure, what we will call the “measure of the mean.” This is the art of due measure. In contrast to mathematical measurement, things are relative to the measure of the mean. To say a table is merely tall, in the mathematical sense, is just to say that compared to some other things, it is on average taller. The mathematical measure, however, can never say the table is “too tall” or “too short,” but this is exactly what the measure of the mean enables us to do. This is part of what the Stranger is talking about when he characterizes the measure of the mean “in terms of the necessary (indispensable) being of becoming.”<<ref "14">> Objects or activities must meet certain conditions in order to achieve or bring about certain ends.

The measure of the mean is a teleological concept, whereby things are measured as being good for a purpose, and where lacking derives from an excess or deficiency of certain characteristics necessary for fulfilling that purpose. The measure of the mean is a standard deeply intertwined with the good.<<ref "15">> This standard may not only be entangled with the good, but also the beautiful. The Stranger asks, “And it's in exactly this way, by preserving the mean, that they produce everything good and beautiful?”<<ref "16">> There is kind of an aesthetic as well as utilitarian angle to the measure of the mean. The aesthetic angle may be less clear. Consider what it means to say that there is “too much” of a color in a painting. The “for the sake of which” in that phrase is aesthetic.<<ref "17">> 

The Stranger later extends or elaborates on the measure of the mean as “all the arts that measure relative to the mean, the fitting, the opportune, and the needful, and every-thing settled toward the middle and away from the extremes.”<<ref "18">> These are different ways in which the measure of the mean is revealed or applied. “The mean” itself sits on a spectrum between deficiency and excess for the sake of some end. If something measures precisely to the mean on that spectrum, it has the characteristics which best fulfill the purpose of that thing. It doesn’t have too little or too much of a quality. The mean is a surprisingly quantitative picture of the good of a thing. “The fitting” and “the needful” aim at how things belong together in a certain way, pointing to those conditions necessary for the perfect production or acquisition of an end. “The opportune” refers to the temporal conditions of reaching an end. This might be as mundane as a baseball player who swings too early at a pitch, but it may be more subtle, such as having the social awareness to know when it is acceptable to interrupt a conversation and when it isn’t. There are various manners in which one might measure a thing to the mean. 

The Statesman points out how we are able to know a thing based on numbers (mathematical measurement), and another way of knowing a thing in terms of the good (measure of the mean). Consider the humble chair as a concrete example. We can mathematically measure various aspects of the chair. We can measure dimensions, electrical resistance, temperature, weight, density, etc. The mathematical measure quantifies, but it does not qualify. In contrast, the measure of the mean qualifies. The measurement of the mean tells us that a chair is too short or too tall for a purpose, or too heavy or light for being the kind of a chair we need for a given situation, or dismisses the significance of the mathematical measurement of electrical resistance of chairs in almost all circumstances (I suppose we could come up with a few exceptional examples, but the criteria for exceptions is still the measure of the mean). The measurement of the mean assesses whether or not something lives up to a normative standard. The mathematical measure cannot do this; in fact, just on its own, the mathematical measure seems to lack significance altogether. 

The measurement of the mean is what gives mathematical measure significance. The mathematical measure is subservient to, subordinate to, and parasitic upon the measure of the mean. The distinction between the two kinds of measurement is important, but we cannot fully pull apart mathematical measurement from the measure of the mean. To peel them apart completely would destroy the technical arts according to the Stranger.<<ref "19">> The arts require both kinds of measurement. If the technical arts were to be destroyed, as the Stranger claims, then statesmanship and weaving would also be destroyed. Clearly, even when employing mathematical measurement, the measure of the mean is vital to the existence and nature of statesmanship and weaving.

Continuing with the chair example, perhaps I can figure out my chair is too tall for my purposes (measure of the mean), but I might not know exactly how much shorter it needs to be (mathematical measure). When I say to the chair-building/modifying carpenter that my chair is too tall, he being an expert of sorts on the nature of heights of chairs may be able to assess my chair and then tell me that my chair is precisely two inches too tall. He could only make such a claim by already understanding exactly why I needed the chair to be two inches shorter – maybe, in this case, the carpenter has the necessary experience to realize that taking two inches off the chair is the exact height I would need, given my own height, to sit comfortably. In this example, I was always able to immediately understand the mathematical measurement of two inches, but I could only partially uncover the measure of the mean for the chair. I knew it wasn’t quite right for my purposes (being comfortable), but not more than that. The carpenter, however, having far more experience in this matter, knew the measure of the mean between my chair and purpose with far more precision.

This example hopefully highlights one of the more fascinating aspects of the measure of the mean: it can be difficult to uncover its precision. Mastering the measure of the mean requires a kind of virtue of the practice. Perhaps only through repetition and training can one develop the crucial perceptive awareness necessary to uncover its precision. The measure of the mean is highly contextual, bordering on particularism. This kind of measurement can lack definitiveness in general; the correct measurement varies with the circumstances. Perhaps the mean isn’t always an exact point, perhaps it is a range.  Further, the measure of the mean is used to evaluate not only those things which are computable, but also those which might not be computable. Courage, for example, might not be mathematically quantifiable (perhaps psychoThe Being of the Beautiful: Plato's Theaetetus, Sophist, and Statesmanlogists may eventually be able to explain otherwise), but it certainly falls within the qualitative domain of the measure of the mean. The measure of the mean defines excess and deficiency even beyond what may be the limits of mathematics. 

Mathematics is precise, but ultimately, I believe Plato’s aim is to show that there is a notion of the precise that goes beyond the mathematical, and has something to do with the good (and the beautiful possibly), and the measure of the mean is the criterion and application for that. 

Weaving and statesmanship seem closely bound to the measure of the mean, exactly how, I’m not sure. Weaving seems to be the easier example to employ for appreciating the division in the arts of measurement, since weaving on one hand does seem to rely heavily upon the mathematical, and yet it requires the measure of the mean for significance and for guiding us toward achieving the ends of weaving. It is quite unclear to me how statesmanship relates to the mathematical measure as concretely or as easily as weaving, although given the abstract nature of statesmanship, the measure of the mean appears far more central to statesmanship than it does weaving. 

I do not think it is a coincidence that the Statesman is so cryptic in the way in which it employs measurement. Surely successfully interpreting the Statesman as a dialogue and trying to uncover the eidos of the statesman require skilled applications of the measure of the mean.

''3 – Tensions and Irony''

The tension between these two kinds of measurement is apparent throughout the dialogue. The lengths of certain sections of the Statesman seem to be too long or too short. Some arguments move too quickly and others too slowly. Blatant (perhaps even humorous) measurement-based mistakes are made and corrected repeatedly. It is too ironic to be accidental. 

The discussion of myth and weaving seem too long (even by the Stranger’s standards), while the discussion of more interesting and crucial topics in metaphysics, such as parts, kinds, wholes, and paradigms are far too brief (despite the amusing claim that they are “stray[ing] further afield” in 263a). The Stranger is oddly aware of (yet sometimes failing to be correct in) these measurements in the discussion, and it is unclear what we are to make of this. His focus on excessive length over deficiencies found in other parts of the discussion is interesting. It reminds me of a way of talking about vice and virtue, and I wonder if we are to view the Stranger as lacking or having excellence because of his possibly skewed perceptions in this regard. The Stranger and measurements of his discussion are odd, and I do not know why Plato has written the Stranger like this.

Perhaps it is meaningful (perhaps it is coincidental) that the primary passage on measurement is literally near the middle of the dialogue. Our attention is drawn to measurement in even following the outline of the Statesman. Why is Plato doing this? I have no idea. I suspect that a satisfying systematic interpretation of the Statesman must make sense of these concerns, and the measure of the mean is likely central to such an account. 

This tension can even be seen from the beginning with the discussion between Socrates and Theodoras. Theodoras is a mathematician, and the status of mathematics is called into question in this dialogue. For instance, Theodoras’ error(s) points toward the limits of mathematics, alluding both to the notion that some things cannot be mathematized and perhaps to a sort of impotence of mathematics in the dialectic. Further, while the mathematician and the mathematical measure can be seen as privileged in science and paradigm cases of knowledge in epistemology, the statesman (and perhaps the virtuous agent) and the measure of the mean seem to be privileged in the discussion of the philosopher and paradigm cases of practical reason. At any rate, it does seem as though Plato wishes to take mathematics down a peg or two in this dialogue.  Here the mathematical measurement seems less and less directly relevant to the dialectic, and the measure of the mean shines. Mathematics looks to be incapable of helping us investigate the nature of the philosopher and its apparitions, the sophist and the statesman. The measure of the mean, in contrast, looks to be a large and necessary component of the investigation in the Statesman.

''4 - Diaeresis''

The method of diaeresis employed by the Stranger is intriguing, and it is certainly related to the issue of measurement. Diaeresis is the continual division of larger groups into relatively equal and smaller groups – a process which is meant to be repeated until the definition being sought after has been found. I must confess, I don’t understand why it is used or what is meant by it. Without a doubt, the method and various divisions made in the Statesman are generally odd.

In the Statesman, the Stranger employs diaeresis to find and define the statesman. In the context of biology or other scientific taxonomies, diaeresis looks to be a reasonable sort of tool for the job. However, it is not so clear why Plato has the Stranger use the method to investigate and define the statesman, a context where diaeresis seems far less effective. The Stranger explains how the method relates to the finding and understanding the statesman:

Then where will one discover the direct statesman-path? For we must discover it and, after separating it off from the rest, stamp it with one look, and then, after marking the other, side-paths as a single form, make our soul think of all the sciences as being two forms.<<ref "20">>

That sounds like a plan. It isn’t clear, however, by what standard these divisions should be made. This look, idea, or form of the statesman does seem to be what we are seeking. Separating it from everything else does seem to be necessary. It remains unclear, however, why diaeresis, a tool whose criterion pivots around a mathematical equality between the subdivisions, is the best tool for accomplishing these tasks. 

Diaeresis seems to be caught between the two kinds of measurement. The method’s failure is especially evident in the scolding of Young Socrates, who manfully divides man and beast. <<ref "21">> Does not Young Socrates’ division seem like the sort of “stamping” we seek in 258c? Surely the Stranger must be wrong, and this must be the correct division; it is perhaps the division made by one who could employ diaeresis with the measure of the mean in mind. The Stranger explains that it is “safer to go cutting through the middle,” something akin to the mathematical middle.<<ref "22">> But, from our vantage point, the Stranger’s mathematically-based method of diaeresis, much like a binary search tree, turns out be an inefficient method of inquiry at best, and at worst, it seems to steer us in the wrong direction, failing to uncover what is salient. It is not clear why the Stranger makes these apparent errors. 

Again we are reminded of the two kinds of measure at the end of the scolding, where the Stranger amusingly claimed that by going too fast, they were slowed down.<<ref "23">> The measure of the mean here is concerned with “how much we understand,” while the mathematical measure is concerned with the time taken in the dialectic. 

''5 – Wholes, parts, and kinds''

The distinction between parts, wholes, and kinds seems to be another branch of the concept of measurement. These issues highlight the real goals of diaeresis and sit at the heart of effective division making and weaving together. These subjects are a fine example of ancient ontological and metaphysical problems which we’ve made little headway on in modern philosophy (despite quite a bit of effort). The answers to the questions raised in these matters are unclear. What does seem clear, however, is that solutions to these puzzles of part-whole and part-kind (philosophic puzzles crucial to effectively identifying, classifying, and defining) are preconditions to a complete explanation of true and effective eidetic division and analysis. These puzzles seem to be more related to the measure of the mean than they are to mathematical measure.

Plato brings up these problems, but does not seem to satisfyingly resolve them.<<ref "24">> This foundational problem is highlighted in one of the major explicit aims of the text, namely to reveal and understand how the person with political expertise should be distinguished from the other kinds of rival experts in the city.<<ref "25">> Whatever precisely it is about diaeresis (or other methods of dividing, classifying, and revealing) that we find distasteful or unsatisfying in trying to accomplish this explicit goal of the dialogue may only ultimately be uncovered by first attending to the metaphysical measurement problems of parts, wholes, and kinds. 

Further, these unsolved puzzles of parts, wholes, and kinds are surely central to one of the other central goals of the text, namely explaining why and how political science and the statesman are so important to philosophy and the philosopher.  The relationship between these agents and practices remain a mystery, partly due to lacking a full understanding of the metaphysics of relationships and identity.

Measurement seems to be embedded in the metaphysical problems of parts, wholes, and kinds; to what extent the measurement is mathematical and to what extent it is the measure of the mean is not clear. Perhaps these form a different kind of measurement altogether. 

The Statesman serves to highlight the differences between and status of mereology, set theory, and eidetic analysis.<<ref "26">> Interestingly, mathematics has made some headway in the first two, but not the last; philosophy, however, may not have gotten much further than Plato. The fundamental and true natures of these problems remain unsolved or unexplained. At the very least, Plato reveals some of the unobvious, underpinning problems and questions of our larger investigation. Philosophy tends to show even more problems lurking under the surface of original problems, and philosophy also sometimes points toward how ostensibly separate matters can turn out to be intertwined. 

''6 – The Statesman, the Virtuous Agent, and the Philosopher''

This section on measurement is fertile ground for discussions of not just politics (and its relaThe Being of the Beautiful: Plato's Theaetetus, Sophist, and Statesmantionship to philosophy), but also ethics. Who knows and uses the measure of the mean the most? Who best aims at the mean? What does it take to uncover the mean? The statesman, the ethically virtuous agent, and the philosopher are somehow bound together by a common thread in the Statesman. I think that bond has something to do with the measure of the mean. Granted, many activities employ the measure of the mean, but some use the measure of the mean more than others. Statesmanship, virtue, and philosophy seem to require the use of this measure more than anything else, and the teleological stakes are very high for all three agents.
 
The measure of the mean is found and employed through phronesis. Phronesis is practical wisdom; it is particularistic and prudential. Phronesis seems to be at the heart of picking out which particular actions are needed for particular contexts, and the measure of the mean is the standard used by one with phronesis. Phronesis and the measure of the mean can be surprisingly concrete, being a kind of instrumental reason, as they deal with fundamental ends-to-means relationships, but they are also abstract and theoretical, since practical action must be evaluated by and linked to the Good by an agent. 

The statesman and the virtuous agent seem to be more closely linked than the statesman and philosopher (or virtuous agent and philosopher) at first glance. Indeed, the connection between the statesman and the virtuous agent seems quite apparent in this dialogue, and that makes a lot of sense. Everyone knows that criticizing the moral compasses of politicians is a long-standing (and valuable) tradition. It isn’t a tradition for no reason. Moral compasses are obviously an important part of being a good statesman. 

The measure of the mean foreshadows Aristotle’s doctrine of the mean. While we have been talking about the mean as being related to the good, it seems as though one might also employ the very same method to the right. The statesman is concerned with the right means to the good ends of the city, quite similar to the virtuous agent. Aristotle’s famous phrase “to the right person, to the right extent, at the right time, with the right motive, and in the right way” sits right at home in Plato’s explanation of the measure of the mean.<<ref "27">>
The Being of the Beautiful: Plato's Theaetetus, Sophist, and Statesman
The dialogue points to the relationship between the statesman and the virtuous agent when the Stranger attacks the standard rule of law, and in its place, he emphasizes the “correctness of rulers without laws” where “the best thing is not for the laws but for a man-the king with intelligence-to have strength.”<<ref "28">> This kind of intelligence is phronesis. On this view, laws are too general, and they fail to appreciate what is morally or legally salient about particular contexts. Laws may turn out to be practical guidelines we end up needing, but they are crude approximations, and they can never compete with an excellent statesman employing phronesis in a particular situation. Laws lack precision, while the excellent statesman knows the precise action to take in a circumstance (for the sake of the city, not the individual, as the Stranger points out in 295a) because he has the necessary phronesis to uncover and use the measure of the mean in that context. But this discussion of the law is precisely like one of the key aspects ethical virtue theory. 

The denial of practical codifiability and computable decision procedures is one of the crucial differences between virtue theory and its competitors. The criticism of political law in the Statesman is the same kind of criticism of ethical law in standard virtue theories. The one who knows what the city ought to do is remarkably parallel to that one who knows what one ought to do.

The phronesis shared between the excellent statesman and the virtuous agent seems to be reliant upon a kind of moral judgment, intuition, and the right sort of perception. Having the right reason and the right emotions are necessary for reaching the right action for the virtuous agent, but it isn’t clear if emotions play as significant a role in statesmanship. It might. Another difference between the virtuous agent and the excellent statesman would be the will. It is already a significant matter of debate how we define and understand the will for individuals, such as for the virtuous agent; it is a much more complex and difficult matter to isolate the meaning and nature of a will for a city and the role of the statesman in shaping that will. The status and nature of the unification of virtues also seems different among the statesman and the virtuous agent. The Stranger argues in 305E-308B that the virtues conflict, which sits in contrast to the harmony we normally see in virtue theory. Despite these differences, I wonder if the truly excellent statesman is not also a virtuous agent with additional technical knowledge regarding politics and the practices of weaving the city together. Perhaps the excellent statesman helps the city achieve eudaimonia in some sense. 

Plato seems to give us reasons to think the virtuous agent and excellent statesman are bound together by phronesis and the measure of the mean. It is far less clear how the philosopher is bound to the other two. It is not clear how and when the philosopher employs phronesis. We might be tempted to believe phronesis is too practical to be necessary to the philosopher in the same way that it is necessary to the virtuous agent or the statesman. The philosopher seems to have her head stuck in the clouds in many ways. Her work is theoretically minded and often not obviously practical (although it clearly has significant ramifications to the practical). Phronesis seems different from sophia. The philosopher seems to have wisdom of the theoretical rather than the practical, and if that is correct, it seems as though sophia is more important than phronesis. 

The supposed point of the Statesman was to define and understand the statesman as an apparition of the philosopher. What connects the statesman and the philosopher? The measure of the mean is likely a key component to the complete answer. The statesman appears to require the mathematical measure for his purposes moreso than the philosopher for hers, a significant difference, and yet both the statesman and philosopher rely heavily upon the measure of the mean to achieve their invaluable ends. The statesman employs the measure of the mean for the sake of the city (and perhaps the city is for sake of having philosophers), and the philosopher for the sake of sophia. As we saw in the Statesman, both engagement in the dialectic and division as a method of eidetic analysis rely upon the measure of the mean, and these are essential tools and practices of philosophers. Maybe phronesis guides the philosopher in obtaining sophia in this manner, and the measure of the mean is more crucial to the roles of the statesman and philosopher than to other activities. I tentatively conclude the Statesman binds the philosopher and statesman together through their deep need and significant use of the measure of the mean.

---------------------------

<<footnotes "1" "269c, 269d, 283d, 283e, 284d, 284e, 285a, 285c, 286d, 293e  Unless otherwise noted, all quotations are from Bernardete’s translation: Plato. //The Being of the Beautiful: Plato's Theaetetus, Sophist, and Statesman//. Translated by Seth Benardete. Chicago: University of Chicago Press, 1984. ">>
<<footnotes "2" "260a, 263a, 269c, 269d, 277b, 277c, 282a, 284e, 286a, 286d, 288c, 289b, 308e, 309c">>
<<footnotes "3" "260a, 269c, 274b">>
<<footnotes "4" "284e, 305d, 307b, 307c">>
<<footnotes "5" "The length of the weaving passage might end up being justified rather than undue. It just appears on the surface that the weaving passage is too long.">>
<<footnotes "6" "283b">>
<<footnotes "7" "283c">>
<<footnotes "8" "283d">>
<<footnotes "9" "Ibid.">>
<<footnotes "10" "284e">>
<<footnotes "11" "283e">>
<<footnotes "12" "The relationship between the Great and the Small is its own topic, and it may be a significant connection between Plato and Aristotle.">>
<<footnotes "13" "U.S. Metric Association (USMA), Inc. "Origin of the Metric System." Origin of the Metric System. January 10, 2006. Accessed December 20, 2013. http://lamar.colostate.edu/~hillger/origin.html.">>
<<footnotes "14" "A complete account of the “being of becoming” is beyond the scope of the paper. Without a doubt, it is its own topic.">>
<<footnotes "15" "Admittedly, it isn’t clear to me precisely how they relate. I don’t exactly know what “the Good” is in the first place. I don’t mean to be irresponsibly speculating here, but it seems necessary to at least point in this direction when trying to frame the concept of measurement of the mean.">>
<<footnotes "16" "284b">>
<<footnotes "17" "I am grossly oversimplifying “the Beautiful” here in order to have a plain example. ">>
<<footnotes "18" "284e">>
<<footnotes "19" "284a">>
<<footnotes "20" "258c in Plato, Eva T. H. Brann, Peter Kalkavage, and Eric Salem. //Plato Statesman: Translation, Introduction, Glossary, and Essay//. Newburyport, MA: Focus Pub, 2012: 17. ">>
<<footnotes "21" "262a">>
<<footnotes "22" "262b">>
<<footnotes "23" "264b">>
<<footnotes "24" "Which is fine – I don’t know if we should expect him to, as I said, it doesn’t seem we’ve made much more progress than he has after thousands of years of work on this topic.">>
<<footnotes "25" "Even the city itself is a fine example of how difficult it is to distinguish mere heaps from whole things, etc. How the statesman relates to the city is itself a key topic. ">>
<<footnotes "26" "I’ve seen Aristotle credited for introducing and providing the first systematic perspectives of these issues to philosophy, science and mathematics, but it is clear from the Statesman (among other works) that Plato knew quite well the significance of these issues.">>
<<footnotes "27" "Book II, 1109a27">>
<<footnotes "28" "294a">>

---------------------------
 
''Bibliography''

Benardete, Seth. "The Plan of Plato's Statesman." //In The Argument of the Action: Essays on Greek Poetry and Philosophy//, edited by Ronna Burger and Michael Davis, 354-75. Chicago: University of Chicago Press, 2000. 

 	
Bernardete, Seth. "Eidos and Diaeresis in Plato's Statesman." //Philologus// 107, no. 3/4 (1963): 193-226. 

 
Klein, Jacob. "The Search for the Statesman." //In Plato's Trilogy: Theaetetus, the Sophist, and the Statesman//, 146-200. Chicago: University of Chicago Press, 1977. 

 
Lane, M. S. //Method and Politics in Plato's Statesman//. Cambridge, United Kingdom: Cambridge University Press, 1998. 
 

Miller, Mitchell H. //The Philosopher in Plato's Statesman.: Together with Dialectical Education and Unwritten Teachings in Plato's Statesman//. Las Vegas: Parmenides Pub., 2004. DJVU. 
 

Márquez, Xavier. "Measure and the Arts in Plato's Statesman." Accessed December 20, 2012. http://www.academia.edu/218023/Measure_and_the_Arts_in_Platos_Statesman. 
 

Plato. //Statesman//. Translated by Benjamin Jowett. Hazleton, PA: Electronic Classics Series, 1999. Accessed December 20, 2012. http://www2.hn.psu.edu/faculty/jmanis/plato/statesma.pdf.
 

Plato. //The Being of the Beautiful: Plato's Theaetetus, Sophist, and Statesman//. Translated by Seth Benardete. Chicago: University of Chicago Press, 1984. PDF. 
 

Plato, Eva T H Brann, Peter Kalkavage, and Eric Salem. //Plato Statesman: Translation, Introduction, Glossary, and Essay//. Newburyport, MA: Focus Pub., 2012. 
 

Sayre, Kenneth M. //Metaphysics and Method in Plato’s Statesman//. New York: Cambridge University Press, 2006. PDF. 


Stern, Paul. "The Rule of Wisdom and the Rule of Law in Plato's Statesman." American Political Science Review 91, no. 2 (June 1997): 264. 


U.S. Metric Association (USMA), Inc. "Origin of the Metric System." //Origin of the Metric System//. January 10, 2006. Accessed December 20, 2013. http://lamar.colostate.edu/~hillger/origin.html.

 
White, David A., and Plato. //Myth, Metaphysics and Dialectic in Plato's Statesman//. Aldershot, England: Ashgate, 2007. PDF. 


//This paper changed my life. It was the beginning of the end of my academic philosophical career. It was the straw that broke this camel's back. I'm lucky to be alive.//

''1.1''

One of the first renditions of the Lottery Paradox can be traced back to Henry Kyburg in his book Probability and the Logic of Rational Belief.<<ref "1">> It has sparked an enormous amount of literature surrounding the problem. In this paper, I will address a standard, modern version of the Lottery Paradox, describe some problems with it, and try to clarify the puzzle with a more detailed version. By uncovering what I think is really going on in the Lottery Paradox, I hope to sketch out a more fundamental disagreement occurring between many of those who would continue to wield the Lottery Paradox, even after my clarification, and their target, proponents of probabilistic rational acceptance.

''1.2''

Proponents of probabilistic rational acceptance think it is rationally acceptable to believe propositions which are very likely true. On their view, there is an epistemic principle which sets out the minimum requirements for a proposition to be rationally acceptable (which I will often refer to as the Sufficiency Thesis). As long as the probability of a proposition is high enough to meet this requirement, then it is said to be rationally acceptable. 

A probabilistic principle of rational acceptance is useful and practical. It would justify an enormous number of common-sense propositions we ordinarily think are rationally acceptable. Our everyday lives revolve around believing and acting upon beliefs which are often, at best, only very likely to be true. 

If the Lottery Paradox is successful, then it demonstrates that probabilistic principles of rational acceptance can result in validating belief in contradictions as rationally acceptable. That would be intolerable. The Lottery Paradox would force us to give up probabilistic rational acceptance, which may amount to the denial of this enormous number of common-sense, ordinary propositions we would normally think of as being rationally acceptable. A kind of skepticism concerning these ordinary propositions may emerge from this position.

I will show why the Lottery Paradox does not yield this fatal criticism, and I will argue that it does, however, yield another criticism. The paradox demonstrates that probabilistic rational acceptance can result in beliefs which are not altogether consistent. Rational acceptance can lead to false beliefs, even beliefs which must be false given some other set of beliefs validated by the principle. This criticism, however, is not obviously fatal to the probabilistic rational acceptance. 

Toward the end of the paper, in coming to grips with this lesser criticism, I will attempt to sketch out why this lesser criticism leads us to a broader and perhaps messier disagreement occurring between many of those who would continue to wield the Lottery Paradox, even in light of my clarification, and those who wish to preserve probabilistic rational acceptance. 

The Lottery Paradox may be construed as a discussion between a pragmatist and a skeptic, wherein the skeptic tries to attack the rationality of our ordinary beliefs which require the Sufficiency Thesis, and the pragmatist defends. Each employs a different standard, and both standards have merit. My sketch of this discussion will side with the pragmatist, suggesting his standard as being the appropriate standard to employ. 

The actual result of the Lottery Paradox, the claim that it can be, in some cases, rationally acceptable to believe in a set of propositions which are inconsistent, is difficult to swallow. Essentially, many of us may intuit that this result of the second, lesser criticism isn’t a good thing. I will argue, however, that it can be the right thing.

''2.1''

The Lottery Paradox tries to demonstrate that the following three epistemic principles (or their equivalents) are inconsistent:

# A proposition φ is rationally acceptable if P(φ) > t, where P is a probability distribution over propositions and t is a threshold value close to 1.<<ref "2">> 
# It is not rationally acceptable to believe in contradictions. 
# If each of the propositions φ and ψ are rationally acceptable, so is (φ & ψ).<<ref "3">>

The first principle is known as the Sufficiency Thesis; it is a probabilistic principle of rational acceptance. The third principle is known as the Conjunction Principle.4 Note that by mathematical induction, we can generalize the Conjunction Principle to any finite number of conjuncts.5 The inconsistency of these principles is demonstrated by the following thought experiment.

''2.2''

Suppose the three epistemic principles above, where t = .99. Suppose a fair lottery of 100 tickets, where the selection of each ticket is equiprobable, and exactly 1 ticket will be randomly selected as a winner. 
Where n is the set of whole numbers 1 through 100, for each ticket, where the first ticket is T­1­, the second ticket is T­2, ­… , and the hundredth ticket is T­100­, there is a corresponding proposition claiming ‘ticket Tn is a losing ticket’, where the first proposition K­1­ corresponds to T1­, and so on. 

By supposition, P(~(K­1 ­& K­2 ­& … & K­100­)) = 1, hence by the Sufficiency Thesis, ~(K­1 ­& K­2 ­& … & K­100­) is rationally acceptable. In other words, the proposition “there is a winning ticket” is rationally acceptable. 

Since each ticket is 1 ticket from a pool of 100, for any K­n­, P(K­n­) = .99. Hence, by the Sufficiency Thesis, any particular K­n­ is rationally acceptable. Since K­1 ­is rationally acceptable and K­2 ­is rationally acceptable, by the Conjunction Principle, the proposition (K­1­ & K­2­)­ is rationally acceptable. Since we know each Kn­ is rationally acceptable, we can continue to employ the Conjunction Principle such that (K­1­ & K­2­ ­& K­3­) is rationally acceptable, and (K­1­ & K­2­ ­& K­3­ ­­& K­4­) is rationally acceptable, and so on. Hence, by the repeated use of the Conjunction Principle, (K­1 ­& K­2 ­& … & K­100­) is rationally acceptable. 

We arrive at the contradiction between (supposedly) rationally acceptable propositions ~(K­1 ­& K­2 ­& … & K­100­)­ ­and (K­1 ­& K­2 ­& … & K­100­). In other words, we assumed there was a winning ticket, ~(K­1 ­& K­2 ­& … & K­100­)­­, and using our principles of rational acceptance, we deduced that there is no winning ticket, (K­1 ­& K­2 ­& … & K­100­). This violates the second principle.

''2.3''

I could stop here, but before I move on, I want to point out that many versions of the Lottery Paradox render the contradiction in terms of probability, presumably because it may be easier to see the problem in a more concrete way and because the point of the Lottery Paradox is to attack probabilistic reasoning. The steps to do this are fairly straightforward.

Since we have supposed ~(K­1 ­& K­2 ­& … & K­100­), and ~(K­1 ­& K­2 ­& … & K­100­) ↔ (P(~(K­1 ­& K­2 ­& … & K­100­)) = 1), then (P(~(K­1 ­& K­2 ­& … & K­100­)) = 1), the proposition that the probability of there being a winning ticket is 1, is rationally acceptable.

Since we rationally accept (K­1 ­& K­2 ­& … & K­100­), and (K­1 ­& K­2 ­& … & K­100­) ↔ (P((K­1 ­& K­2 ­& … & K­100­)) = 1), and (P((K­1 ­& K­2 ­& … & K­100­)) = 1) ↔ (P(~(K­1 ­& K­2 ­& … & K­100­)) = 0), then (P(~(K­1 ­& K­2 ­& … & K­100­)) = 0), the proposition that the probability of there being a winning ticket is 0, is rationally acceptable.

While not a formal, direct contradiction, (P(~(K­1 ­& K­2 ­& … & K­100­)) = 1) and (P(~(K­1 ­& K­2 ­& … & K­100­)) = 0) propose that the probability of there being a winning ticket is both 1 (guaranteed to occur) and 0 (guaranteed not to occur). 

''2.4''

Clearly, the Lottery Paradox demonstrates that the three epistemic principles are in conflict. Importantly, the Lottery Paradox is intriguing because one can nicely scale up the number of tickets in the lottery to any finite number, such that n >= t, allowing us to always produce a lottery thought experiment in which the probability that any “ticket n is a losing ticket” is rationally acceptable (according to the Sufficiency Thesis). Even extraordinarily high thresholds for rational acceptance, such as (1 – (1 / (the number of atomic particles in the universe))), have lotteries which demonstrate this contradiction.

In order to escape this conflict, we must jettison at least one epistemic principle. At first glance, we might find the second and third principles to be no-brainers; we are not immediately inclined to deny them (although, later on I hope to show how we can deny the third principle). Thus, initially, the first principle, the Sufficiency Thesis, appears to be the principle we are forced to jettison, but at great cost. 

Assuming that any relevant probabilistic acceptance principle will be similar enough to the Sufficiency Thesis, the Lottery Paradox might require us to jettison all relevant probabilistic acceptance principles. The Lottery Paradox may be a serious threat to any probabilistic justification theory of rationally acceptable belief. I can’t provide a treatment of that claim in this paper, but for the sake of argument, let us assume the Lottery Paradox defeats all probabilistic justifications of rationally acceptable belief, which a skeptic might assume.

We have good reasons to want a viable probabilistic rational acceptance rule. Many beliefs we take as being rationally acceptable might turn out to be otherwise without a principle like the Sufficiency Thesis. For example, science, a realm which many of us would like to think leads us to propositions which are rationally acceptable, is filled with conclusions which are highly likely to be true, but not certain. The Sufficiency Thesis is well positioned to make sense of these issues. Further, many of our ordinary beliefs that we take to be rationally acceptable are nicely justified by the Sufficiency Thesis, and the rational acceptability of these beliefs may be jeopardized if we jettison the Sufficiency Thesis. How do we preserve the first epistemic principle?

Either the second or the third epistemic principle must be wrong. The second looks rock solid (surely an epistemic rule which embodies the principle of non-contradiction would have to be!). Those who wish to preserve the probabilistic acceptance principles most likely need to find a way to deny the Conjunction Principle. 

At first glance, the Conjunction Principle might appear to be akin to a normal conjunction introduction rule (later in the paper, I will suggest it is not that simple). When you rationally accept φ and ψ, inferring the conjunction of the pair seems, at first glance, rationally acceptable. I will attempt to clarify the Conjunction Principle by separating it into two aspects which, when combined, get us the same results. We will find that one aspect doesn’t need to be denied, but another aspect can and should be jettisoned to save the Sufficiency Thesis. 

''3.1''

I believe we can gain insight into why we should deny the Conjunction Principle by inspecting the inferential moves we’ve made in the Lottery Paradox. In terms of propositional logic, the following inferential moves have to be successful:

# K­1­ 				--		Assumption
# K­2­						-- Assumption
# (K­1­ & K­2­)			--		­& Intro: 1, 2

Upon first reading, it seems as if we cannot possibly deny this sort of inferential move. Our assumptions were rationally acceptable, and surely any deduction from rational assumptions must also be rationally acceptable. If K­1 and K­2 are true, then (K­1­ & K­2­) has to be true as well. 

Is this really what the probabilistic rationality theorist has in mind? Perhaps not. Instead, regarding the above Lottery Paradox, we are better served by evaluating the actual probabilities of the Lottery Paradox if we want to understand what probabilistic inferences are rationally acceptable. 

Problem: 

Let n denote the size (in terms of tickets) of a fair lottery with one winner. What are the odds that if you get m tickets that you will win?

Solution:

	This is the formula which describes all finite lotteries, which someone who is explicitly employing the Sufficiency Thesis must turn to in order to evaluate the rational acceptability of the propositions in the Lottery Paradox. That’s how we know P(K­1­)­ = .99. It is also the tool which helps us evaluate all the other probabilities, including conjunctions. So, instead of propositional logic, I think probabilistic rationality looks more like this:

#  P(K­1­)­ = .99 			--		Mathematical Deduction
# K­1­­ is rationally acceptable		--	From 1 and Sufficiency Thesis
# P(K­2­)­ = .99					-- Mathematical Deduction
# K­2 is rationally acceptable		--		From 3 and Sufficiency Thesis
# P(K­1­ & K­2­) = .98					--­ Mathematical Deduction
# (K­1­ & K­2­) is not rationally acceptable		-- From 5 and Sufficiency Thesis

The problem with our Conjunction Principle is that it seems to mislead us into thinking that logical inference is wholly analogous to the process of probabilistic inference. They are distinct. It is one thing to say “K­1 and K­2 are true, thus (K­1­ & K­2­) is true,” which is a logical consequence, and another to say “K­1 and K­2 are each so likely to be true that each is rationally acceptable, thus (K­1­ & K­2­) is so likely to be true that it is rationally acceptable.” The first kind, logical inference, has to be correct. The second kind, probabilistic inference, doesn’t have to be correct. In fact, the Sufficiency Thesis, where P(K­1­ & K­2­) = .98, explicitly prohibits such a move.

Someone doing their best to employ the Sufficiency Thesis should be unwilling to accept this part of the Lottery Paradox proof: 

Since K­1 ­is rationally acceptable and K­2 ­is rationally acceptable, by the Conjunction Principle, the proposition (K­1­ & K­2­)­ is rationally acceptable.

The Conjunction principle isn’t following the very mathematical formula required to realize P(K­1­)­ = .99 in the first place. Something is wrong with the Conjunction principle, and we must correct it. 

''4.1''

I think the first set of epistemic principles was constructed too hastily. These principles lack the nuance we need to really understand what is at stake and how these principles should play out. Part of the problem might be that we’ve not been clear enough in specifying what kinds of things can be the objects of rational acceptability. On the following version of the Lottery Paradox, rational acceptability applies to both propositions and sets of propositions. Essentially, an individual proposition may be rationally acceptable, and sets of propositions may be rationally acceptable. With this in mind, let us restructure the beginning principles so that we can make better sense of the Lottery Paradox.  

# φ is rationally acceptable if P(φ) > t, where P is a probability distribution over propositions and t is a threshold value close to 1. 
# Contradictions and sets containing contradictions are not rationally acceptable.        e.g. neither (φ & ~φ) nor {X1, X2, …, (φ & ~φ), Xn} are rationally acceptable.
# If φ and ψ are rationally acceptable, then {φ, ψ} is rationally acceptable.
# If {φ, ψ} is rationally acceptable, then (φ & ψ) is rationally acceptable.

The Sufficiency Thesis remains much the same. Importantly, it only applies to, evaluates, and filters through individual propositions, not sets of propositions.<<ref "6">> The Sufficiency Thesis validates and essentially generates the propositions used for the antecedent of the third principle, the Union Principle. The Union Principle generates sets of propositions (e.g. {φ, ψ}), which serve to feed the antecedent of the fourth principle, the Agglomeration Principle. The Agglomeration Principle joins the members of a set of propositions into a conjunction.

The Sufficiency Thesis will not validate φ as rationally acceptable and then turn around and validate ~φ as rationally acceptable. It can only validate one or the other. It will invalidate (φ & ~φ) as well. As you will see, when we add the Union and Agglomeration Principles, from the Lottery Paradox, we will be able arrive at (φ & ~φ) as being rationally acceptable, which is prohibited by both the second principle and the Sufficiency Thesis.7 Note that the second principle does not prohibit inconsistent sets of propositions, such as {φ, ~φ}, rather it prohibits sets which contain explicit, direct contradictions, {(φ & ~φ)}. 

We’ve done away with the Conjunction Principle, and in its place, we have two new principles, the Union and Agglomeration Principles, which taken together do the same kind of work as the Conjunction Principle. 

The Union Principle enables us to accumulate or unify individual propositions into a set of propositions. According to this principle, if A is rationally acceptable, and B is rationally acceptable, then {A, B} is rationally acceptable. These are all distinct objects of belief or acceptance. It is one thing to believe A at some point in time, and another to believe B at some point in time, and yet another to believe A and to believe B at the same time.

The Agglomeration Principle enables us to take a set of propositions and form a new proposition, a conjunction of the members of the set. According to this principle, if {A, B} is rationally acceptable, then so is (A & B). Importantly, there is a difference between the rational acceptability of the set of A and B as separate, individual propositions, {A, B}, and the rational acceptability of (A & B) as a joined or “agglomerated” proposition, (A & B). 

The third principle is not obviously true, but it seems compelling. When rationally acceptable propositions are generated by the Sufficiency Thesis, it seems natural to just add them to a larger index of rationally acceptable propositions. By extracting it from the Conjunction Principle, we’re left with what I believe is a more controversial and less obvious fourth principle. Although the Agglomeration Principle is deniable, it has quite a bit of force to it.<<ref "8">>

In splitting up the Conjunction Principle9 into more detailed principles, we will see more clearly the kinds of steps made that weren’t so clear in our original Lottery Paradox, and hopefully we can focus upon the contingent and plausibly deniable aspects of the Conjunction Principle. With these new principles, let’s have another crack at the Lottery Paradox. 

''4.2''

Suppose the four epistemic principles above, where t = .99. Suppose a fair lottery of 100 tickets, where the selection of each ticket is equiprobable, and exactly 1 ticket will be randomly selected as a winner. 

Where n is the set of whole numbers 1 through 100, for each ticket, where the first ticket is T­1­, the second ticket is T­2, ­… , and the hundredth ticket is T­100­, there is a corresponding proposition claiming ‘ticket Tn is a losing ticket’, where the first proposition K­1­ corresponds to T1­, and so on. 

By supposition, P(~(K­1 ­& K­2 ­& … & K­100­)) = 1, hence by the Sufficiency Thesis, ~(K­1 ­& K­2 ­& … & K­100­) is rationally acceptable. 

Since each ticket is 1 ticket from a pool of 100, for any K­n­, P(K­n­) = .99. Hence, by the Sufficiency Thesis, any particular K­n­ is rationally acceptable. Since, K­1­ and K2 are rationally acceptable, by the Union Principle, {K­1­, K­2­} is rationally acceptable. Since any particular K­n is rationally acceptable, we can continue to employ the Union Principle such that {K­1­­, K­2­, K­3­} is rationally acceptable, and {K­1­­, K­2­, K­3­­, K­4­­} is rationally acceptable, and so on. Hence, by the repeated use of the Union Principle, {K­1­, K­2­, …, K­100­} is rationally acceptable.

Since {K­1­, K­2­, …, K­100­} is rationally acceptable, by the Agglomeration Principle, (K­1 ­& K­2 ­& … & K­100­) is rationally acceptable. 

By the Union Principle, since (K­1 ­& K­2 ­& … & K­100) is rationally acceptable and ~(K­1 ­& K­2 ­& … & K­100­) is rationally acceptable, then {(K­1 ­& K­2 ­& … & K­100)), ~(K­1 ­& K­2 ­& … & K­100­)} is rationally acceptable. We arrive at a set containing two propositions which are inconsistent; however, this is not yet a contradiction. Note how (so far) this is allowed by the second principle.

Finally, by the Agglomeration Principle, since {(K­1 ­& K­2 ­& … & K­100), ~(K­1 ­& K­2 ­& … & K­100­)} is rationally acceptable, then so is [(K­1 ­& K­2 ­& … & K­100)­ & ~(K­1 ­& K­2 ­& … & K­100­)]. This is a contradiction, which violates our first and second principles.

''4.3''

This version of the Lottery Paradox demonstrates that the four epistemic principles are in conflict. We must jettison at least one of them. Last time, it seemed like it had to be the probabilistic acceptance rule because it was not appealing to jettison the other principles. This time, however, since we have split up the Conjunction Principle to clarify the problem, we can see where things go wrong. The Union Principle seems fairly innocuous. The Agglomeration Principle, however, seems to be the culprit that ends up violating the Sufficiency Thesis. The Agglomeration Principle is a strong candidate for jettison. 

So, which is it, do we throw away the Sufficiency Thesis or the Agglomeration Principle? We’ve already considered some of the implications of denying principles like the Sufficiency Thesis. What about the Agglomeration Principle - what is the cost of denying it?
By denying the Agglomeration Principle, we never arrive at a contradiction. But, in trade, if we deny the possibility of agglomeration, we seem to have a messy heap of individual beliefs, but no way to relate those atomic propositions to form complex propositions.  This would be intolerable, and so perhaps we may find the Lottery Paradox to be paradoxical for other reasons. Denying the Agglomeration Principle, however, is not the same as denying agglomeration. If we deny the Agglomeration Principle, how does agglomeration work?

Perhaps I say to myself, “well I believe K­1­ and I believe K­2­, so I’m going to infer (K­1­ & K­2­).” We make that sort of inference all the time. Someone dedicated to employing the Sufficiency Thesis for determining the rational acceptability of (K­1­ & K­2­), however, would not accept this agglomeration tout court. Agglomeration itself is subject to the Sufficiency Thesis. 

If it is rationally acceptable for me to have the set of beliefs {K­1, K­2­}, and when I attempt to agglomerate this into (K­1 ­& K­2­), then I first must consider if P(K­1 ­& K­2­) > t. In this case, t = .99, and P(K­1 ­& K­2­­) = .98. Clearly, this particular agglomeration is not rationally acceptable. Proper agglomeration, at least given the Sufficiency Thesis, doesn’t operate like proponents of the Conjunction Principle seem to think. 

Granted, agglomerative inferences enable us to believe complex and interesting propositions, but their rational acceptability is still measured against the Sufficiency Thesis. Agglomeration is important to probabilistic rational acceptance; it just isn’t truth preserving on probabilistic propositions. I have to employ the Sufficiency Thesis on any agglomeration, including this one, to decide the rational acceptability of the resulting proposition. All inferences are subject to the Sufficiency Thesis – it serves as a kind of criterion of rational acceptability which filters, evaluates, and validates or invalidates any proposition.<<ref "10">>

The Agglomeration Principle, as an inferential principle which artificially sits outside the scope of Sufficiency Thesis, goes against the very spirit of the Sufficiency Thesis. The whole point of the Sufficiency Thesis is that any inference or belief formation, including agglomeration, must meet the criteria set out in the Sufficiency Thesis. We shouldn’t sneak the process of agglomeration outside the scope of the Sufficiency Thesis, and hence we should deny the fourth principle. This saves the Sufficiency Thesis from the criticism generally levied against it by those who wield the Lottery Paradox, however, the game is not over.

''5.1''

By denying the Agglomeration Principle, we won’t arrive at the rational acceptability of [(K­1 ­& K­2 ­& … & K­100)­ & ~(K­1 ­& K­2 ­& … & K­100­)]. In fact, we wouldn’t even reach the intermediate conclusion that (K­1 ­& K­2 ­& … & K­100­) is rationally acceptable. As far as I can tell, {φ, ~φ} will never be a possibly validated set of propositions using the first three principles either.  

The least intuitive set of propositions which these first three principles would deem rationally acceptable would be {K­1­­, K­2­, …, K­100­, ~(K­1 ­& K­2 ­& … & K­100­)­}. Essentially, this is the heap-like set of propositions that each ticket is a losing ticket and the proposition that not all the tickets are losing tickets. Admittedly, when phrased that way, the claim that this set of propositions is rationally acceptable does seem a pinch paradoxical. The Lottery Paradox still yields a nuanced and specific criticism of probabilistic rational acceptance, and at the heart of this criticism we will a find deep divide in intuitions concerning the nature of epistemic normativity.

While the Lottery Paradox would turn out not to be immediately fatal to the remaining three principles in terms of deeming a contradiction to be rationally acceptable, the odd thing which falls out of denying the Agglomeration Principle is the following: an agent can rationally accept a set of propositions in which the members of that set cannot all be true at the same time. That is what the Lottery Paradox really shows.
 
But, that’s okay, right?<<ref "11">> From a pragmatic standpoint, I think it is. From a skeptical standpoint, however, what falls out of the Lottery Paradox establishes that the Sufficiency Thesis is unusable and not an appropriate principle of rational acceptability. The ordinary and scientific propositions we want to think are rationally acceptable, which seem to rely upon the Sufficiency Thesis for their validity, may turn out to not be rationally acceptable from the skeptic’s point of view. The pragmatist hopes to defend the Sufficiency Thesis and the rational acceptability of the propositions it validates. 

Essentially, the Lottery Paradox might be seen as a discussion between a skeptic and a pragmatist. Does the lesser criticism from the Lottery Paradox still defeat the Sufficiency Thesis, demonstrating the rational unacceptability of so many common and scientific propositions? This somewhat formal matter turns out to have severe practical implications. 

On one hand, the skeptic employs a very high epistemic standard, deeming the actual results of the Lottery Paradox fatal to the Sufficiency Thesis, and thus to the rational acceptability of so many scientific and common-sense, ordinary propositions. From this view, epistemic principles, such as the Sufficiency Thesis, which lead us to inconsistent sets of beliefs are bad principles. They are flawed. They ought not be used, and they don’t count as the appropriate epistemic principles by which to guide our lives. Rational acceptance cannot be built upon the Sufficiency Thesis, as the skeptic sees it, since it is a foundation of quicksand. If the skeptic is correct, the lesser criticism of the Lottery Paradox rules out the viability of the Sufficiency Thesis as a principle of rational acceptability, which further rules out the rational acceptability of the many sorts of practical, ordinary, and also scientific propositions we might normally think of as being rationally acceptable.

On the other hand, the pragmatist employs a lower epistemic standard, defining rational acceptance in context. The pragmatist finds the Sufficiency Thesis suitable for many human contexts. The pragmatist recognizes that we must live our lives, sometimes make snap judgments, holding various beliefs which are not fully coordinated with each other, and that despite trying our best, we will not live up to the standard of epistemic perfection. But, that is okay! Inconsistent sets of beliefs are bad, but that doesn’t mean they aren’t rationally acceptable in all circumstances. The pragmatist does not see the lesser criticism of the Lottery Paradox as delivering a fatal blow to the Sufficiency Thesis and the propositions validated by it. The pragmatist allows for major flaws (flaws in the sense of the epistemic good) in our ordinary human contexts; he allows for believing inconsistent sets of propositions (in some cases); and he allows the Sufficiency Thesis to be less than perfect or maximally good. On the pragmatist’s view, the lesser criticism of the Lottery Paradox neither jeopardizes the viability of the Sufficiency Thesis nor the rational acceptability of so many ordinary and scientific propositions.

I’m drawn to both perspectives. I honestly don’t see a way to defeat the skeptic’s position on his own turf, from within his context, using his standard. Admittedly, I hold some of these skeptical intuitions at certain times. From this perspective, I desire for rational acceptability to keep its purity and presumably simple universalizability.<<ref "12">> To deny the possibility that it is ever epistemically permissible to believe some set of propositions which necessarily can’t all be true at the same time prohibits the Sufficiency Thesis. The skeptical part of me buys into that. From the skeptical perspective, however, it would not be rationally acceptable to hold so many sets of ordinary or scientific propositions at the same time. I cannot buy into that. I am drawn away from my skeptical intuitions. The costs are too high. I must be practical. How else can I live my life? 

Ultimately, I believe many propositions that are acceptable to hold by themselves without respect to absolutely all the other propositions I believe. Perhaps some of my beliefs cannot be true at the same time, and I just don’t yet realize it. That has to be okay. What other option did I have? Perhaps when I attempt to reconcile or agglomerate my various beliefs, I may realize that I have beliefs which oppose each other, and then, and maybe I am required to bracket those conflicting beliefs until I find a solution. Yet, I won’t always be in a position to reconcile my beliefs. Sometimes it really is acceptable for me to believe in a set of propositions which are logically inconsistent. Being as rational as I can, limitations and all, has to be acceptable. From the pragmatic point of view, what falls out of the Lottery Paradox is not a knock-down defeat of probabilistic rational acceptance. Instead, it is merely an example of our epistemic limitations as human beings. 

Ordinary human beings who do the best they can with what they have are bound to have some individual beliefs which are inconsistent – this is acceptable though. We are not computers who can test all of our proposed beliefs against all the combinations of beliefs we already hold with perfect accuracy and logic in all cases. Perfect coherence is not something we can purposely guarantee or achieve. We can’t be expected to flawlessly coordinate every single belief with all of our other beliefs. We don’t have the energy, time, or capacity for epistemic perfection. We are fallible and limited, but this is not a strike against rational acceptability from the perspective of practical epistemic duty.

Granted, it might take becoming like an unlimited computer to root out our deep-seated epistemic flaws that are somehow not acceptable by a golden standard of rationality. But, why should we be held accountable for achieving the impossible? These flaws, this lack of rationality, have to be normatively acceptable. The adage “ought implies can” comes to mind. In a perfect world, we would be fully capable of rooting out our conflicting beliefs, and thus we would have strong epistemic duties. But, in this world, we can’t always do that work, and so the normative epistemic expectations have to be lower and practical by necessity. It would not be fair to judge otherwise.

''5.2''

I submit we feel the pull of two standards of rational acceptability, the epistemic good and the epistemic right.<<ref "13">> There is a golden standard – the good. This is an objective standard of rational acceptability by which the skeptic evaluates all agents. Only ideal epistemic agents satisfy this supreme standard. From this standard, the Sufficiency Thesis is a failure, and the propositions it validates are not rationally acceptable. Ideal agents would never employ the Sufficiency Thesis, since ideal agents, by definition, never arrive at an inconsistent set of premises. What epistemic principle(s) an ideal agent would employ? I don’t know (I’m not an ideal agent), but whatever principle(s) an ideal agent would employ would live up to the epistemic good. It would be wrong for an ideal agent to not fully partake of the epistemic good. Importantly, this skeptic believes everyone, ideal and unideal agents alike, are to be judged by and are exclusively subject to the epistemic good. Humans are not ideal agents, and they are hopelessly lost and irrational by this standard. Very little of what we believe could be rationally acceptable. Hence, by solely employing the epistemic good as the standard of rational acceptability for all agents, a kind of skepticism concerning the epistemic lives of humans emerges.

The pragmatist, however, uses a lower, contextualized epistemic standard for human beings. The pragmatist thinks the epistemic good is the standard of rational acceptance for only the most ideal epistemic agents. We, as finite human beings, are not ideal epistemic agents, and we fall short of the standard of epistemic good – we are fallible and limited. Is this fallibility, however, unacceptable? No, not really. Only the most ideal and unlimited epistemic agents could be appropriately judged by or subject to that standard. Of course, we can admit that fallibility is not the ideal. Our epistemic limitations are a bad thing (the opposite of good), but not necessarily the wrong thing (the opposite of right).

The epistemic right, as a normative epistemic standard, like any decent ethical standard, must scale with context and ability. Proper judgment of rational acceptance relies upon “right,” not the “good.” What might be right or rationally acceptable for a child to infer might be the wrong for a developed adult, a being with more experience and resources, to infer. Further, what might be the right or rationally acceptable inference to make may turn out to be epistemically bad. Depending on the circumstances and agent in question, a belief may be rationally acceptable even if it is a bad one which doesn’t meet the more rigid standard of the epistemic good. Even the adults among us who come closest to satisfying or achieving the epistemic good are like children when compared to an unlimited, infallible machine, but this is acceptable. What other options do we have?

The sort of rational acceptability we should really be concerned with is the kind directly tied to the epistemic right, and that means rational acceptability must be contextualized.<<ref "14">> Acceptability is a judgment, and the only way to make it fair would be to take into account our fallibility and mental limitations. From this perspective, it does seem as though it can be rationally acceptable to hold beliefs which cannot all be true at the same time. 

In one sense, from the standpoint of the epistemic good, it is always rationally unacceptable to believe a set of logically inconsistent propositions (even when those beliefs are merely an uncoordinated heap of individual beliefs). From the perspective of the epistemic good, I think the skeptic is correct. The skeptic cannot let go of the epistemic good and refuses anything less, and I see the force behind that view. When asked, “What kind of epistemic agent do you want to be?” you should respond “a good one,” and not merely “a right one.”<<ref "15">> We want to be better than we are. We don’t want to be fallible or flawed, even when it is outside of our control. That desire is not insignificant. It is the reason we feel the pull of the skeptic’s position, and the reason the Lottery Paradox still seems paradoxical. 

In another sense, however, from the standpoint of the epistemic right, a highly contextual standard, it can sometimes be rationally acceptable to believe logically inconsistent propositions. That might be all that we are capable of doing in many circumstances. It would be fair to say we are irrational against the standard of epistemic good, but that doesn’t mean we are irrational given our circumstances. We have to make do with what we have, and rational acceptance must be understood in that light. It is our epistemic duty to reconcile our beliefs into as coherent a set as realistically possible, but we are not accountable for our circumstantial limitations. The Sufficiency Thesis really does seem appropriate to so many contexts in which humans find themselves.

''5.3''

I fear that those who would continue to employ the Lottery Paradox as an argument against probabilistic rational acceptance, even in light of my claim that what falls out of the paradox is a lesser criticism, are tempted to hold us accountable to the standard of the epistemic good rather than the epistemic right. Surely this can’t be correct. If the epistemic good is the sole standard of rational acceptance, then we are lost, and I do not see hope for us as profoundly fallible creatures. Holding humans accountable solely to the epistemic good results in a kind of skepticism about our epistemic lives. Why should we accept that skepticism?

Granted, the Lottery Paradox does seem to make the Sufficiency thesis appear paradoxical from the standpoint of the epistemic good. But, that’s part and parcel of accommodating fallibility and limited mental resources in probabilistic rational acceptance. To say that rationally acceptable inferences might still end up being incorrect is just to say that the right inferences aren’t always good inferences. Proponents of the Sufficiency thesis seem to be already comfortable with our fallibility and the notion that epistemic duty is disconnected from the good in a way that those who would continue to wield the Lottery Paradox as a weapon don’t seem to agree to. It is already built into the assumptions of someone who would ever be willing to go along with the Sufficiency thesis that there is a chance that rationally acceptable inferences turn out to lead us to believe falsehoods and an inconsistent set of complex beliefs. 

The Sufficiency Thesis does sometimes result in a bad set of beliefs, but this is far from saying it yields the wrong kinds of inferences or the wrong set of beliefs in a given context. I fear that the skeptic misses the point of the Sufficiency Thesis. The aim of the Sufficiency Thesis is an attempt to give an ideal answer to a practical question concerning fallible and limited minds; it is a pragmatic normative thesis which tries to give an objective shape to something which is highly contextual. We need something to work with, and the epistemic good alone cannot be our practical standard.

The Sufficiency Thesis is pragmatic, and it seeks the epistemic right, not the epistemic good. Detractors of the Sufficiency Thesis who apply the epistemic good (but not the right) perhaps need not employ the Lottery Paradox in the first place; rather he should just go after the root assumption, which is essentially a disagreement about fallibility and the merit of thinking about rational acceptability in terms of the epistemic right. The skeptic needs to establish why his standard, the epistemic good, is the correct standard for all agents, including humans.

''5.4''

The Lottery Paradox at first seems to be a direct threat to probabilistic rational acceptance. Upon closer inspection, however, we can see that the Lottery Paradox doesn’t yield as fatal a criticism of probabilistic rational acceptance as we might have initially thought. The Sufficiency Thesis does not result in validating contradictions, although it can result in validating inconsistent sets of propositions. Upon clarification, it seems that not all worries are diffused. The approach of this paper highlights the underlying worry that probabilistic rational acceptance can lead to believing propositions which can’t all be true at the same time. In wrestling with the implications of this criticism, we can see a struggle between pragmatic and skeptical perspectives.

Need we give into this skepticism? I hope not. Can and/or should we set the epistemic good aside and instead focus on the epistemic right? I hope so. If we can successfully set aside the epistemic good, even partially, then maybe we will be able to endure the real criticism which the Lottery Paradox yields. In any case, we have to try. It may be the only practical option.

Considering the Lottery Paradox in terms of the epistemic good and epistemic right may be the best direction to move forward. The skeptic may force us to enter a pragmatic perspective, to go back to the drawing board, to think in the context of the epistemic right, and to redefine what counts as rationality for human beings.

----------------

<<footnotes "1" "Kyburg, Henry Ely. //Probability and the Logic of Rational Belief//. Middletown, Conn: Wesleyan University Press, 1961: 197">>
<<footnotes "2" "Douven, Igor, and Timothy Williamson. 2006. 'Generalizing the Lottery Paradox.' //The British Journal for the Philosophy of Science//. 57, no. 4: 755">>
<<footnotes "3" "Ibid., 755-756">>
<<footnotes "4" "Ibid.">>
<<footnotes "5" "Ibid.">>
<<footnotes "6" "Although, it can evaluate the elements of a set of propositions, and perhaps indirectly, it can make a judgment about a set of propositions by iterating over all the set’s elements.">>
<<footnotes "7" "Technically, the second principle may be redundant. The Lottery Paradox will show that the Sufficiency Thesis, with the help of the Union and Agglomeration Principles, validates and invalidates a contradiction. Further, it may be argued that the Sufficiency Thesis also invalidates members of a set, and if a member of a set is rationally unacceptable, then the entire set may be rationally unacceptable. ">>
<<footnotes "8" "Epistemic Closure may sit behind it.">>
<<footnotes "9" "If each of the propositions φ and ψ are rationally acceptable, so is (φ & ψ).">>
<<footnotes "10" "Clearly, purely logical inferences are always upheld by the Sufficiency Thesis. If some set of assumptions have a probability of 1, then the conclusions deduced from those assumptions also have a probability of 1. Probabilistic inferences are different, since, in these cases, assumptions generally have a probability less than 1, and the conclusions inferred from those assumptions generally have a probability less than 1 as well. Truth preservation is lost in many cases of probabilistic inference. Yet, we can still say that all kinds of inferences, whether probabilistic or logical, could be validated by the Sufficiency Thesis.">>
<<footnotes "11" "I’m bringing my bias to the table here. The skeptic is well within in his rights to hold his position (it has enormous force), but I do not wish to hold that position. ">>
<<footnotes "12" "Contexts are messy and complicated, but note that particularist and semi-particularist theories need not deny universalizable norms.">>
<<footnotes "13" "To some extent, I am borrowing the concepts of ‘right’ and ‘good’ from traditional Virtue ethics.">>
<<footnotes "14" "I say 'directly' because the right is connected to the good, somehow. ">>
<<footnotes "15" "Somewhat similar to achieving eudaimonia, which is much more than being virtuous.">>

---------------

''Bibliography''

Douven, Igor, and Timothy Williamson. 2006. "Generalizing the Lottery Paradox". //The British Journal for the Philosophy of Science//. 57, no. 4

Hawthorne, John. //Knowledge and Lotteries//. Oxford: Clarendon, 2004.

Kyburg, Henry Ely. //Probability and the Logic of Rational Belief//. Middletown, Conn: Wesleyan University Press, 1961.

Nelkin, Dana K. 2000. "The Lottery Paradox, Knowledge, and Rationality". //The Philosophical Review//. 109, no. 3
''1.1 – Context and Introduction''

Welsey Hohfeld proposed a systematic framework of rights nearly a century ago. His analysis has remained remarkably useful in exploring and describing the concept of rights, both legal and moral. Although some general form of his theory may be widely accepted in many circles, the details are still being hashed out. Exactly how the various kinds of rights presented in the Hohfeldian framework relate to each other, what they mean, and what they entail, are still open matters of debate in moral and political philosophy. In this paper, I will be focusing on two particular schools of Hohfeldian analysis. The first school accepts Hohfeld’s own correlativity thesis.<<ref "1">> Roughly, this thesis claims that Hohfeldian primary jural positions (claim/right, duty, liberty/privilege, and no-claim) imply or are correlated with other primary jural positions, and the likewise for the secondary jural positions (power, immunity, disability/no-power, and liability).<<ref "2">> The second school, what I will refer to as the correlativity thesis of the Working Theory of Rights, builds on top of the first school’s premises a more controversial set of correlative relationships between the primary and secondary jural positions.<<ref "3">> Essentially, the secondary jural positions imply specific primary jural positions. I will not be arguing in defense of these approaches to Hohfeldian rights, rather I will be formalizing and taking up their assumptions, and then pointing out some significant conclusions which follow from the premises.

The Hohfeldian framework is often presented as tables of correlatives and opposites among eight distinct jural positions:

[img[hohfeld-1.png]]

Primary Jural Positions: 

For this table, Hohfeld believed the top rows were correlated to the respective members of the bottom rows, represented here with black, vertical arrows. For someone to have a claim implies that someone has a duty (and vv.). The same correlative relationship is also thought to hold for liberty and no-claim, and likewise for the secondary jural positions. Similarly, Hohfeld believed the grey, diagonal lines represented a relationship of opposites. The opposite of a claim is a no-claim (and vv.), the opposite of duty is a liberty, and so on. 

While this table is a useful starting place, I believe it is not comprehensive. Given the assumptions of the two schools of thought I examine in this paper, I will present a more thorough explanation of the relationships to be found among the traditional Hohfeldian jural positions found in these tables. Further, I will argue that a slightly different set of tables offer an enhanced understanding of the jural positions. 

Hohfeld’s eight jural positions (or incidents) form a kind of language for describing various legal (and possibly moral) rights positions in which agents find themselves. How useful is this language? Hohfeld indicated that this language had a property of completeness, in the sense that these terms could express all legal rights positions.<<ref "4">> The completeness of such a language seems contentious. After all, we might wonder how this language could adequately express complex legal positions. I will not defend the completeness of the Hohfeldian language/framework, but I will work from the assumption that it is plausible.

We can think of Hohfeld’s eight jural positions as atomic jural positions.<<ref "5">> Various kinds of atomic jural positions can be combined to form complex or molecular sets of jural positions. For example, a molecular duty to a group of people could be reduced to a set of atomic duties to each member of that group.<<ref "6">> As another example, some kinds of rights seem to be clumped together as a molecule of different kinds of atomic jural positions. For example, a property right may include: (a) a claim against others interfering with your property, (b) a power to waive or transfer that claim right, (c) a liberty to use your property, and (d) immunity from others modifying your claim, power, and liberty rights to that property.<<ref "7">> On this view, any molecular collections of rights can be reduced to atomics.

The language of atomic Hohfeldian jural positions might plausibly be complete in its ability to describe all of the various kinds of legal rights positions. I will be formalizing these atomic jural positions into predicates of first-order logic, since they seem to be the building blocks we would use to formally describe more complex sets of rights.

After formalizing Hohfeld’s original jural positions, I will argue that there are actually eight kinds of primary jural positions (rather than the traditional four), and I will only temporarily argue there are four secondary jural positions. Further, I will show exactly what is analogous about the logical relationships between primary and secondary positions, and I will argue that they aren’t identical sets of logical relationships. I will also argue that the correspondence between these jural positions is not merely biconditional but actually a relationship of logical equivalence, and this should help solidify exactly what it means to call something a jural position. Lastly, I will show how the correlativity thesis of the Working Theory of Rights can be formalized, and I will show that the secondary jural positions are really molecules which can each be reduced to sets of two particular atomic, primary jural positions. In effect, I will demonstrate how the two schools of thought together yield a table of eight atomic jural positions, and further that what we traditionally think of as the secondary jural positions are really just a special class of rights-molecules which are reducible to and describable in terms of these atomic, primary eight.

''1.2 – Formalizing the Traditional Primary Jural Positions''

The first school of thought, Hohfeld’s correlativity thesis, can be formalized using four premises.<<ref "8">> The first two premises claim correlative relationships between the primary jural positions, and the third and fourth premises claim correlative relationships between the secondary jural positions. We’ll examine the first two premises in this section.

Where φ is a particular behavior:

*“A has a claim that B φ” is translated as Claim(A, B, φ) 

*“B has a duty to A to φ” is translated as Duty(B, A, φ)

*“A has a liberty to φ with respect to B” is translated as Liberty(A, B, φ)

Premise 1: 	“A has a claim that B φ iff B has a duty to A to φ”

*Claim(A, B, φ) ↔ Duty(B, A, φ) 

Premise 2: 	“A has a liberty to φ with respect to B iff it is not the case that B has a claim that A ¬φ”

*Liberty(A, B, φ) ↔ ¬Claim(B, A, ¬φ)

Transitivity will enable us to logically interrelate claims, duties, and liberties. Since we have assumed a biconditional relationship between claims and duties (premise 1), and we have assumed a biconditional relationship between liberties and claims (premise 2), we can establish a biconditional relationship between liberties and duties. Essentially, since we know: 

*¬Claim(B, A, ¬φ) ↔ ¬Duty(A, B, ¬φ)

And, since Liberty(A, B, φ) just in case ¬Claim(B, A, ¬φ), then we know:

*Liberty(A, B, φ) ↔ ¬Duty(A, B, ¬φ)

The rule for converting a duty into a claim (and vv.) is simple – replace the predicate and switch the first two arguments. The rule for converting a claim into a liberty (and vv.), however, is slightly more complicated – replace the predicate, negate the entire sentence, switch the first two arguments, and negate the third argument. The rule for converting a duty into a liberty (and vv.): replace the predicate, negate the entire sentence, and negate the third argument. With these rules in mind, we can convert any one of these three primary jural positions (claim, liberty, or duty) into either of the other jural positions.

''1.3 – Eight Kinds of Primary Jural Positions''

Given our rules, we can generate the following eight sets of unique jural relationships:

[img[hohfeld-2.png]]

This is the extended table of all possible jural positions between A and B regarding φ and ¬φ. Note that the grey, vertical line shows a relationship of opposites. The black, horizontal arrows show the biconditional, correlative relationship. 

Each box shows three jural positions related by the correlativity thesis. A jural position implies two others. Take the top-right box: a claim, Claim(A, B, φ), has both a corresponding duty, Duty(B, A, φ), as well as a no-liberty, ¬Liberty(B, A, ¬φ). The same is true for the other sets. 

As I will argue later, these sets aren’t really three different yet correlated jural positions, but rather each set of relationships is one atomic jural position with three different expressions of the same semantic content.<<ref "9">>
 
Only three predicates are necessary, but there are many combinations to consider. The table above suggests there are actually eight kinds of primary jural positions. I submit that there aren’t simply four kinds of primary jural positions. If “no-claim” is really a genuine kind of jural position, then so are “no-liberty” and “no-duty,” and this is true in both directions, from A to B and from B to A, regarding both φ and ¬φ, hence eight unique kinds of jural positions.

In a footnote, Hohfeld provides some perspective on the notions of correlatives and opposites. He explains:

Note that in dealing with the correlatives, we are looking at the same situation from the point of view of first one and then the other of the two persons involved, but that when dealing with jural opposites we are looking at two different situations from the point of view of the same person, i.e. in one situation he has, for example, a right, in the other, “no-right.”<<ref "10">>

The opposite of Claim(A, B, φ) is ¬Claim(A, B, φ). According to Hohfeld, the opposite jural positions must be understood from the point of view of the same person. We might think of Claim(A, B, φ) from the point of view of agent A, in some sense, and the opposite or negation of it, ¬Claim(A, B, φ), also from the point of view of agent A. They are opposites because they use the same atomic sentence, just one is negated and the other isn’t. Employing this exact same reasoning, we can see that the direct opposite of Duty(A, B, φ) is ¬Duty(A, B, φ), and the opposite of Liberty(A, B, φ) is ¬Liberty(A, B, φ). The extended table above shows this.

Hohfeld’s traditional table does not clearly show the opposite relationships for duties and liberties. From the traditional table, the opposite of duty, Duty(A, B, φ), is a liberty. What is this liberty though? If it is from the same point of view, agent A’s, regarding B and φ, then the traditional table may falsely lead us into thinking the opposite of Duty(A, B, φ) is Liberty(A, B, φ). Hohfeld is actually claiming, however, that the opposite of Duty(A, B, φ) is Liberty(A, B, ¬φ). Note how the correlative liberty is regarding ¬φ, not simply φ. The traditional table does not make this clear, but the extended does.

The extended table shows that the opposite of Duty(A, B, φ) is ¬Duty(A, B, φ), and ¬Duty(A, B, φ) implies that Liberty(A, B, ¬φ). Since the Hohfeldian opposites rely upon negating entire jural positions, and given the his correlativity thesis, we can see from the extended table how the opposite of duty implies a particular kind of Liberty, not about φ from A’s point of view, but rather about ¬φ from A’s point of view.

The extended table presents Hohfeld’s argument more clearly than the traditional table. Essentially, with the extended table, we can both apply the reasoning from the quote above, which shows that opposites rely upon negations of the entirety of jural positions, and we can cleanly account for Hohfeld’s negations of φ regarding liberties (given the correlativity thesis).

Regarding Hohfeld’s notion of correlativity, we will also find that extended table more clearly presents Hohfeld’s argument more so than the traditional table. Both the traditional and extended table show that Claim(A, B, φ), from the point of view of agent A, is correlated to Duty(B, A, φ), from the point of view of agent B. Likewise for the other direction, Duty(A, B, φ) and Claim(B, A, φ). However, when we consider liberty, Liberty(A, B, φ), the traditional table may falsely lead us into thinking the correlative jural position is ¬Claim(B, A, φ). Hohfeld’s argument, however, is that Liberty(A, B, φ) is correlated to ¬Claim(B, A, ¬φ). Just as in the case of opposites, the correlatives hinge upon negating φ, which the extended table shows and the traditional does not as clearly. 

Further, the extended tables have more fully developed each position. A situation in which someone has a claim, Claim(A, B, φ), is not just correlated to a duty, Duty(B, A, φ), but it is equally correlated to a no-liberty, ¬Liberty(B, A, ¬φ). The traditional table does not make this as clear, partly because no-liberty and no-duty aren’t included in the traditional table. 

Ultimately, I’m inclined to think there eight kinds of primary jural positions because agent A can be legally positioned to B regarding φ or ¬φ in exactly eight distinct ways. 

''2.1 - Formalizing the Traditional Secondary Jural Positions''

The remaining two premises of the first school of thought, Hohfeld’s correlativity thesis, are examined in this section.
Where ψ is a particular primary or secondary jural position:

*“A has a power over B regarding B’s ψ” is translated as Power(A, B, ψ)
*“B has a liability under A regarding B’s ψ” is translated as Liability(B, A, ψ)
*“A has immunity from B regarding A’s ψ” is translated as Immunity(A, B, ψ)

Premise 3: 	“A has a power over B regarding B’s ψ iff B has a liability under A regarding B’s ψ”

		*Power(A, B, ψ) ↔ Liability(B, A, ψ)

Premise 4:	“A has immunity from B regarding A’s ψ iff it is not the case that B has a power over A regarding A’s ψ”

		*Immunity(A, B, ψ) ↔ ¬Power(B, A, ψ)

Transitivity will enable us to logically interrelate powers, liabilities, and immunities. Since we have assumed a biconditional relationship between powers and liabilities (premise 3), and we have assumed a biconditional relationship between immunities and liabilities (premise 4), we can establish a biconditional relationship between immunities and powers. Essentially, since we know: 

*¬Power(B, A, ψ) ↔ ¬Liability(A, B, ψ)

And, since Immunity(A, B, ψ) just in case ¬Power(B, A, ψ), then we know:

*Immunity(A, B, ψ) ↔ ¬Liability(A, B, ψ)

The rule for converting a liability into a power (and vv.) is simple – replace the predicate and switch the first two arguments. The rule for converting a power into an immunity (and vv.), however, is slightly more complicated – replace the predicate, negate the entire sentence, and switch the first two arguments. The rule for converting a liability into an immunity (and vv): replace the predicate and negate the entire sentence. With these rules in mind, we can convert any one of these three secondary positions (power, immunity, or liability) into either of the other jural positions.

''2.2 – Four Kinds of Secondary Jural Positions''

Similar to the primary jural positions, we can generate the following four sets of relationships:

[img[hohfeld-3.png]]

This is the extended table of all possible power, liability, and immunity relationships from A to B regarding ψ. Note that there is no ¬ψ, hence there are fewer combinations of secondary jural positions to consider.  From this table, we can see that the opposite of Power(A, B, ψ) is ¬Power(A, B, ψ), just as the standard Hohfeldian opposites shows. Further, the opposite of Liability(A, B, ψ) is ¬Liability(A, B, ψ), which just is correlated to Immunity(A, B, ψ).

Here, we can agree with the standard Hohfeldian analysis. From what we have now, I’m inclined to think there four kinds of secondary jural positions because agent A can be legally positioned to B regarding ψ in exactly four distinct ways.<<ref "11">>  

''2.3 – Comparing and Contrasting the Logical Relationships of Primary and Secondary ''

There are some interesting similarities between the logical relationships amongst the primary jural positions and amongst those of the secondary jural positions.

The translation of the primary jural positions to first-order logic (FOL) predicates has a similar structure to the translation of the secondary jural positions to FOL predicates. They all employ ternary predicates. These predicates all demonstrate a relationship from agent A to agent B regarding some behavior or jural position, φ or ψ. 

Further, the transitivity of each set of jural positions is virtually identical. The highly parallel argument structures (1.2 and 2.1) make that very clear. The only major difference I find is that the primary predicate conversions require a negation on φ, when converting from a liberty to the claim or duty (and vv.), while secondary predicate conversions do not require a negation on ψ, when converting from immunity to power or liability. This had impact on the quantity of combinations we had to consider.

The relationship between the predicates liberty/claim/duty, regarding agents A and B with respect to φ, is not perfectly analogous to the relationships between the predicates immunity/power/liability, regarding agents A and B with respect to ψ. Albeit, the transitive relationships are basically identical. The result of this was that I concluded there were eight primary jural positions, but still only four secondary jural positions.

''2.4 – Logically Equivalent Positions''

So far, I’ve carefully stated these relationships as mere biconditionals (which is what I’ve run into in the literature), which is not as strong a statement as claiming that they are logically equivalent. Just to be clear on the difference, consider a world in which c is a small Tetrahedron. These three sentences are true:

*Tet(c) ↔ Small(c)	    
*Cube(c) ↔ Medium(c)	  
*Small(c) ↔ ¬¬Small(c)

The first two sentences are true in our world, but they aren’t logical truths because they aren’t true in all possible worlds. The last sentence, however, is a logical truth. If a biconditional is true in all possible worlds (i.e. true in every model) – and is, therefore, a logical truth – then the biconditional results in a logical equivalence. Since Small(c) ↔ ¬¬Small(c) is a logical truth, then Small(c) ⇔ ¬¬Small(c). 

Take another biconditional example: P is larger than Q iff Q is smaller than P. Syntactically, these are different sentences:  Larger(P, Q) and Smaller(Q, P). Semantically, however, they are the same. These sentences are just expressions of the same relationship between P and Q. Since Larger(P, Q) ↔ Smaller(Q, P) is a logical truth in virtue of the meanings of the predicates, then Larger(P, Q) ⇔ Smaller(Q, P). These are logically equivalent sentences. The same thing, however, is occurring in conceptual analysis of the predicates of Hohfeldian jural positions.

I am claiming that our biconditionals have been too weak and inexpressive. Since we are performing conceptual analysis, these relationships are stronger, and we should really claim that these are logically equivalent. Consider this kind of jural position:

*Claim(A, B, φ)  	↔ Duty(B, A, φ) 
* Duty(B, A, φ)  ↔ ¬Liberty(B, A, ¬φ) 

We might think of them as being three different jural positions, one position for A and two for B, which simply correspond to each other. If they really are three different jural positions instead of one, then we should continue to express these relationships as biconditionals. Yes, the biconditionals are true; these sentences do share the same truth values. But, given the meanings of these predicates, I believe the relationships are stronger (analogous to the Larger and Smaller example). These sentences have the same semantics, which is why they are logically equivalent. Part of what it means for A to have a claim that B φ just is for B to have a duty to A to φ, which just is that B has a no-liberty to not φ with respect to A. The members of this claim/duty/no-liberty trio are conceptually bound to each other, and it doesn’t make sense to separate these as different jural positions. They are three different ways of expressing the same fundamental jural position shared between A and B regarding φ. 

Essentially, I believe there isn’t a possible world in which the biconditionals are false, which would mean those biconditionals are logical truths. Hence, my claim is stronger:

*Claim(A, B, φ)  	⇔  Duty(B, A, φ) 
*Duty(B, A, φ) ⇔ ¬Liberty(B, A, ¬φ)

The same kind of reasoning holds for all the other kinds of jural positions outlined in the final tables of sections 1.3 and 2.2. Thus, it should be much clearer as to what we call a jural position, and why. Each set from our tables is really just one jural position with three expressions. Hence, there are eight primary jural positions and, tentatively, four secondary jural positions.<<ref "12">>
 
On a side note, one of the results of regarding these biconditionals as equivalences is that ψ, in the case of our secondary jural positions, is a not as simple an object as we thought. A particular ψ does not belong to any one individual, but rather to two agents. Thus, when we say “A has a power over B regarding ψ,” we must recognize that it is not simply B’s ψ, but a jural position of B and some other agent. That jural position is their jural position together – we may have three expressions of that jural position, but it has the same semantics.

''3.1 – Correlativity Thesis of the Working Theory''

We now pass on to the second school of thought, the correlativity thesis of the Working Theory of Rights, which posits another set of logical relationships between the primary and secondary jural positions. Again, I will not be defending this position, but I will formalize it, demonstrating how the secondary jural positions can be reduced to a specific set of primary jural positions. We have the tools to make the Working Theory of Rights’ claims perspicuous. 

You will note that I didn’t offer any detailed semantics to our predicates so far. For example, I never fleshed out exactly all of what a claim-right means, even though I considered how it is logically related to the other primary jural positions given our commonly agreed upon premises. One nice thing about presenting the logical relationships in this way is that we don’t need to have agreed upon exactly all of what counts as a claim-right in order to understand certain things about these jural positions. Maybe some theories of claim-rights have additional details or definitions of exactly what counts as a claim-right. This may be okay though.  Just as long as we agree to Premises 1-4 (which many people seem willing to do) and the logical equivalence argument in section 2.4, then the rest of my argument falls out of it. Hence, I’ve been able to overlook some of the defining characteristics of these jural positions. In order to juice our intuitions about the Working Theory of Rights’ reduction, however, I will need to briefly add some semantic meat to the bones of these predicate symbols. 

3.2 – Power, Atomic and Molecular

Hohfeldian power is the legal capacity to introduce, extinguish, or change some primary or secondary jural position. For example, you have the power to revoke my (hypothetical) liberty to not leave your home. You have the power to change our shared jural position. You can extinguish a liberty I had to not leave your home, revoking Liberty(Me, You,¬LeaveYourHome), and instead introduce a no-liberty for me to not leave your home, ¬Liberty(Me, You, ¬LeaveYourHome). Note our equivalences:

*Liberty(Me, You, ¬LeaveYourHome) 	⇔  ¬Duty(Me, You, LeaveYourHome)  ⇔  ¬Claim(You, Me, LeaveYourHome)

*¬Liberty(Me, You, ¬LeaveYourHome) 	⇔  Duty(Me, You, LeaveYourHome) ⇔  Claim(You, Me, LeaveYourHome)
	
When you exercise your power, our first jural position is extinguished, and the second is introduced to us. Note how the exercise of this power is just one behavior. Since P v ¬P, if you extinguish P, then you introduce ¬P. At least for now, we can think of this as an atomic power, although later, I will show that even atomic powers are really molecular jural positions (when they are reduced to primary jural positions).

Interestingly, while atomic power can’t be broken down into two different acts in this case, there may be cases where certain things we might initially think are atomic instances of power are actually molecular, and they can be broken down into more atomic parts. For example, if I exercise the power to change how much money you owe (let’s say I make it so you owe me 50% less, but it could have been 1%, 2%, etc.), then I’m extinguishing P, but introducing Q (rather than merely ¬P). Hence, this power is already molecular, since introducing Q implies extinguishing P, it seems that a power to introduce Q is molecular. 

It may be even more molecular, depending on how we want to think about it. We might claim that I have an extinguishing power paired with some introduction power for making you owe me 50% less money. But, I also have an extinguishing power paired with some introduction power for making you owe me 1% less money. The same is true for 2%, and so on. Hence, my so-called power to change how much money you owe is really molecular, and it can be broken down into a tightly knit molecule of a great many number of atomic powers. Hopefully this elucidates how there are cases of what we took to be atomic powers which turned out to actually be molecular powers, and it showcases the expressiveness of Hohfeld’s language. 

The Working Theory of Rights claims that this legal capacity is a liberty to modify our jural position. Essentially, on this theory, if you have a power, then you have the liberty to introduce, extinguish, or change a particular jural position. Note that this is still speaking in terms of atomic jural positions. 

One counterexample to this correlation between liberty and power could involve conflicting powers and duties not to exercise those powers in a certain way by the Supreme Court. Let us say SCOTUS has the legal power to make rulings – that is, to change jural positions for a great number of agents. Supposedly, included in this power is the ability to make a bad ruling, to modify some jural position in a bad way (whatever the standard of badness may be). Now suppose they also have a legal duty not to make a bad ruling. Thus, SCOTUS won’t have a liberty to use that power in a certain way – that is, they don’t have a liberty to make a bad ruling. Thus, it doesn’t appear that power is always a liberty. This may be paradoxical for the Working Theory of Rights, as if this conceptually possible power and duty combination can’t be explained if we agree to the claim that power is a liberty. 

The correlativity thesis of the Working Theory of Rights, if it is correct, suggests this counterexample has employed a molecular set of jural positions, but acted as if it was atomic. If we assume the Working Theory of Rights correlativity, then what is really going on in this example is that SCOTUS has a very large set of atomic powers, but no member of that set is a power to make a bad ruling or interpretation. They only have the powers necessary to make good rulings. Any of the ruling powers SCOTUS has, given our assumptions, is such that it will be not be a power to make a bad ruling. This is not paradoxical, however, for the Working Theory of Rights. SCOTUS has liberties to make certain kinds of modifications of jural positions, just as long as they are not bad modifications, in this case. Conversely, SCOTUS doesn’t have liberties to make modifications of jural positions which are bad. The Working Theory of Rights seems capable of expressing the legal positions of SCOTUS. The reduction from power to liberty may be plausible.

It is important to see that, on the Working Theory of Rights, we are often mistaken about the nature of power; many things which people are tempted to treat as atomic powers are not, in fact, atomic – they’re molecular. But, as we will see, given the reduction, we will find that even atomic powers are not really atomic jural positions in the same way as the primary jural positions.

''3.2 – Preliminary Relationship Between Primary and Secondary Jural Positions''

If the correlativity thesis of the Working Theory of Rights is correct, then power is reducible to a particular liberty to introduce, extinguish, or change a jural position.

Additionally, assuming the Working Theory’s correlativity thesis, Hohfeldian liability requires that the liable agent must abide by whatever changes someone makes to his jural positions, just as long as the agent who made the change had the legitimate power to do so. In our example, if you have the power to introduce a duty to me to leave your home, then I am liable to you regarding the changes you could make to our shared jural position. Essentially, I have a duty to abide by your modification of our jural position. I have a duty to abide by your changes stemming from your power – I must obey you in this respect. 
Since we can flesh out the semantics of power in terms of liberty to modify and liability in terms of duty to abide, let us formalize the logical connection between the primary and secondary jural positions as set out by correlativity thesis of the Working Theory of Rights.

''3.3 – Formalizing the Relationship between Primary and Secondary Jural Positions''

Maintaining our previous translations and predicates, and where X(ψ) is the act of introducing, extinguishing, or changing ψ, and where Abide(X(ψ)) is the act of abiding by the results of X(ψ):

Premise 5: 	“A has a power over B regarding ψ ⇔ A has the liberty to X(ψ) with respect to B”

	*Power(A, B, ψ) ⇔ Liberty(A, B, X(ψ))

Premise 6:	“A has a liability under B regarding ψ ⇔ A has a duty to B to abide by B’s X(ψ)”

	*Liability(A, B, ψ) ⇔ Duty(A, B, Abide(X(ψ))

Note the logical equivalence, which is stronger than a biconditional. The claim is a controversial one; the semantics of “A has a power over B regarding ψ” are the same as “A has the liberty to X(ψ) with respect to B,” and similarly for liability. This gives us a strong bridge between the primary and secondary jural positions. We can speak about power in terms of a specific kind of liberty. This liberty can be equivalently expressed as a no-duty or no-claim. Further, we can speak about liability in terms of a specific kind of duty, which can be equivalently expressed as a claim or no-liberty.

Given such a strong correlation between the primary and second jural positions in these premises, we can see a reduction of power, liability, no-power, and no-liability down to specific primary jural positions.  

*Power(A, B, ψ) 	⇔ Liberty(A, B, X(ψ))		⇔ ¬Duty(A, B, ¬X(ψ))	⇔ ¬Claim(B, A, ¬X(ψ))	
*¬Power(A, B, ψ)	⇔ ¬Liberty(A, B, X(ψ)) ⇔ Duty(A, B, ¬X(ψ)) ⇔ Claim(B, A, ¬X(ψ))
*Liability(A, B, ψ) ⇔ Duty(A, B, Abide(X(ψ))	 ⇔ Claim(B, A, Abide(X(ψ))	⇔ ¬Liberty(A, B, ¬Abide(X(ψ))	
*¬Liability(A, B, ψ) ⇔ ¬Duty(A, B, Abide(X(ψ)) ⇔ ¬Claim(B, A, Abide(X(ψ)) ⇔ Liberty(A, B, ¬Abide(X(ψ))	


This is a table of the reduction of power, liability, no-power, and no-liability, as secondary jural positions, to an equivalent set of primary jural positions. It isn’t, however, complete. The problem is not that we’re missing immunity and no-immunity, as the semantics of Immunity(A, B, ψ) are captured by ¬Liability(A, B, ψ), and ¬Immunity(A, B, ψ) by Liability(A, B, ψ). The reduction of immunity and no-immunity to primary jural positions would be identical to the reduction of no-liability and liability. What is missing, however, is the fact that Power(A, B, ψ) is equivalent to Liability(B, A, ψ). Hence, Power(A, B, ψ) is not just Liberty(A, B, X(ψ)), but it is also Duty(B, A, Abide(X(ψ))). The following should make that point clear:

*Power(A, B, ψ) 		⇔ Power(A, B, ψ)	⇔ Liberty(A, B, X(ψ)) ⇔ ¬Duty(A, B, ¬X(ψ)) ⇔ ¬Claim(B, A, ¬X(ψ))
*Power(A, B, ψ) 	⇔ Liability(B, A, ψ)		⇔ Duty(B, A, Abide(X(ψ)))⇔ Claim(A, B, Abide(X(ψ)))	⇔ ¬Liberty(B, A, ¬Abide(X(ψ)))

Thus, power is reducible to the two specific primary jural positions:

*Power(A, B, ψ) 	⇔ Liberty(A, B, X(ψ))	⇔ ¬Duty(A, B, ¬X(ψ))	⇔ ¬Claim(B, A, ¬X(ψ))				
*Power(A, B, ψ) 	⇔ Duty(B, A, Abide(X(ψ))) ⇔ Claim(A, B, Abide(X(ψ)))⇔ ¬Liberty(B, A, ¬Abide(X(ψ)))

Clearly, the opposite, ¬Power(A, B, ψ), would be reducible to two distinct primary jural positions as well (just throwing around negations). In fact, in the same manner, each of the secondary jural positions can be reduced to two distinct primary jural positions, one where φ = X(ψ), and another where φ = Abide(X(ψ)).

''3.4 – Implications and Conclusion''

First, the reduction shows just how remarkably versatile and expressive the primary jural positions can be. Second, formalizing the reduction demonstrates that the secondary jural positions are not actually atomic but, rather, molecular. The semantics of secondary jural positions can be reduced to two atomic, primary jural positions. 

To me, this signifies that the real heavy lifting in this conceptual analysis is born upon the backs of the primary jural positions. Those may be the only real kinds of jural positions. What we call the secondary jural positions aren’t really kinds of jural positions, after all – they are just important classes or subsets of the various possible primary jural positions. We only give these particular classes/subsets names because it useful for quickly describing and understanding various legal arguments. 

These two schools of thought, the correlativity theses of Hohfeld and the Working Theory of Rights, may or may not be correct. If they are correct, then some interesting conclusions fall out of their premises: there are eight combinations or kinds of atomic, primary jural positions; the logical relationship found between the traditional primary jural positions ends up not being identical to the logical relationship found between the traditional secondary jural positions; each of these jural positions have three logically equivalent expressions (using the predicates claim, duty, and liberty); and, lastly, the traditional secondary jural positions are really molecular positions which are reducible to a specific set of atomic jural positions.

----------------

<<footnotes "1" "Hohfeld, Wesley N. 'Some Fundamental Legal Conceptions as Applied in Judicial Reasoning.' //The Yale Law Journal// 23, no. 1 (November 1913): 16-59. http://www.jstor.org/stable/785533. ">>
<<footnotes "2" "I will provide a more detailed set of premises which define this correlation later in the paper.">>
<<footnotes "3" "Steiner, Hillel. 'Working Rights.' //In A Debate Over Rights//, by Matthew Kramer, Nigel Simmonds, and Hillel Steiner, 233-300. Oxford: Oxford University Press, 2002.">>
<<footnotes "4" "Corbin, Arthur. 'Forward.' //In Fundamental Legal Conceptions as Applied in Judicial Reasoning//., by Wesley Newcomb Hohfeld and Walter Wheeler Cook. New Haven: Yale University Press, 1964. pgs. 27 and 64.">>
<<footnotes "5" "Later, I will go into more detail about what it means for a jural position to be atomic, and I will eventually deny that the traditional secondary jural positions are atomic.">>
<<footnotes "6" "It remains a point of contention about whether or not a collection of individuals can form an agent said to be participating in an atomic duty, claim, liberty, etc. Hohfeld may have aimed for jural positions to be exclusively between two individuals. I’m not sure how much it matters though, and so I will set that aside for now. ">>
<<footnotes "7" "Even these may be molecular and can be broken down into atomics. E.g. maybe (b) is the really a combination of two different atomic powers.">>
<<footnotes "8" "I’ve presented the correlativity thesis in terms of premises because they are debatable (and hence might be false), but also because a valid argument based on these premises will demonstrate what logically follows if we assume the premises to be true (which a significant portion of moral and political philosophers seem to do).">>
<<footnotes "9" "Hohfeld may have held this view himself, but I am not sure.">>
<<footnotes "10" "Hohfeld, Wesley Newcomb, and Walter Wheeler Cook. Fundamental Legal Conceptions as Applied in Judicial Reasoning, and Other Legal Essays,. New Haven: Yale University Press, 1923. pg 10, n. 13.">>
<<footnotes "11" "My conclusion, however, will deny that this is truly an atomic jural position like the primary jural positions.">>
<<footnotes "12" "Again, my conclusion will argue that what are normally called the secondary jural positions aren’t atomic jural positions at all, but, rather, molecules. It isn’t clear to me that they deserve to be called a kind of jural position in the same way as the primary jural positions.">>

----------------------

Bibliography

Corbin, Arthur. "Forward." //In Fundamental Legal Conceptions as Applied in Judicial Reasoning//., by Wesley Newcomb Hohfeld and Walter Wheeler Cook. New Haven: Yale University Press, 1964.

Hohfeld, Wesley N. "Some Fundamental Legal Conceptions as Applied in Judicial Reasoning." //The Yale Law Journal //23, no. 1 (November 1913): 16-59. http://www.jstor.org/stable/785533.

Hohfeld, Wesley Newcomb, and Walter Wheeler Cook. //Fundamental Legal Conceptions as Applied in Judicial Reasoning, and Other Legal Essays//,. New Haven: Yale University Press, 1923.

Steiner, Hillel. "Working Rights." I//n A Debate Over Rights//, by Matthew Kramer, Nigel Simmonds, and Hillel Steiner, 233-300. Oxford: Oxford University Press, 2002.
The goal of Darwall’s distinction between Appraisal Respect (AR) and Recognition Respect (RR) is to bring us closer to understanding the moral “respect to which all persons are entitled,”<<ref "1">> which I will refer to as Respect for Persons (RfP). Darwall believes RfP is some form of RR “owed to all persons,”<<ref "2">>  and that RfP is categorically not a form of AR. According to Darwall, RfP occurs when we “take seriously and weigh appropriately” the property of personhood found in “persons in deliberating about what to do.”<<ref "3">> That matches many of our intuitions. Indeed, Darwall makes a few fundamental distinctions which have to be right; however, he goes on to bend his conceptual analysis in ways we should not accept. My goal is to reveal the bare metal of these concepts and highlight concerns or questions surrounding them.

Darwall offers many definitions of RR.<<ref "4">> To have RR is “to weigh appropriately in one's deliberations some feature of the thing in question to act accordingly.”<<ref "5">> RR is “giving appropriate consideration or recognition to some feature” of an object in deliberation “about what to do.”<<ref "6">> For example, I would take the fact that a dangerous bull is charging me as a salient fact for my deliberations for action, and assuming no other facts outweighed my prudential desires, I would flee for cover. I have RR for the fact that the bull is charging me when I weigh that fact and act.

Unfortunately, Darwall often refers to RR as an attitude or a disposition (technical terms in philosophy), but this is an unnecessary layer and perhaps an ad hoc limit to place on the concept of RR. Charitable interpretations of Darwall should lift this restriction, since it is obvious that the concept of RR can accommodate more diverse mental descriptions of this phenomenon.

Darwall emphasizes the psychological aspects of RR (intention and motivation are obviously key), but it is clear that he also aims for action to be an integral component of RR.<<ref "7">> RR is an action resulting from or motivated by the appropriate deliberation concerning some target fact with some other facts.<<ref "8">>  

A complete instance of RR consists in a pair: an action and a reason for that action which must be generated in a particular way. If we break apart an instance of RR, we find an object, a perceived feature/fact of that object, a weighing or deliberation of that perceived fact against other perceived facts, at least one subjective standard for weighing (which itself is a special kind of fact from the agent’s perspective), and the action which results from deliberation. Exactly what could count as a standard isn’t clear (the moral law, prudence, or many subjective standards seem to be viable candidates). Darwall emphasizes the feature of the object as the target of RR rather than the object itself.9 Exactly how and which targets of RR are selected is not obvious.<<ref "10">>

It remains unclear to me whether targets of RR must ultimately modify or constrain the action of RR (a strong requirement), or if this fact need only be merely a factor with some (but not necessarily efficacious) weight in deliberations (a weak requirement). If a fact doesn’t have any real effect in weighing, if it isn’t the reason for acting, then can it be a viable target of RR? Darwall appears to imply this strong requirement. For example, he says, “to have recognition respect for something is to regard that fact as itself placing restrictions on what it is permissible for one to do.”<<ref "11">> Maybe, but it isn’t obviously true, and there might be exceptions.<<ref "12">>

Most significantly, Darwall tailored RR with voluntary deliberation and action. RR is the category of respect for which we can possibly be directly, morally responsible (that is not to say that all cases of RR are moral cases). This paves the way for RfP, as a kind of RR, to be morally required of us. Exactly how voluntariness plays out in RR, however, is quite unclear.<<ref "13">> Darwall floods his paper with vague normative language. Darwall gives us a section on moral RR, and it seems as times that he is tempted to collapse the concept of RR into moral RR. Even if that isn’t the case, Darwall leaves behind odd breadcrumb statements about RR, such as, “any fact which is something that one ought to take into account in deliberation is an appropriate object.”<<ref "14">> I worry Darwall wishes to place an objective “ought” filter over what counts as a viable target for RR. Further, in trying to tailor RR as a voluntary kind of respect, Darwall often slips into his murky “appropriateness” language.<<ref "15">> In charity, I take Darwall to be using a shotgun approach to defining RR, and only some of the expressions of RR should really stick in the final analysis. Despite my reservations, I think Darwall is quite right to emphasize the moral possibilities of RR. The voluntariness built into the concept of RR categorically separates it from AR. 

Broadly, AR is a kind of attitude or judgment in which one holds an object in high regard without necessarily “having any particular conception of just what behavior from oneself would be required or made appropriate” by that object's “having the features meriting such respect.”<<ref "16">> AR doesn’t take features, facts, or characteristics of an object to be factors in deliberations concerning action; rather, an object is esteemed to some degree as a consequence of evaluating some set of its features against some standard of merit. For Darwall, the target of AR is the object rather than the features of the object.<<ref "17">> AR is an esteem or awe for an object judged to be excellent or judged to have excellent features. This esteem is subjectively considered by the respecter to be merited or deserved.<<ref "18">> For example, when I evaluate Nelson Mandela as a moral agent or person, I consider certain features/ facts about him in measuring his moral virtue, and the result is my esteem for him. Those facts don’t necessarily cause me to act in any particular way. I have AR for him when I simply judge him to be a person of moral merit, when I hold him in high regard or esteem because of how he measures against my subjective standard of what counts as being a good moral person.

AR seems to have a lot in common with the attitude or belief formation of doxastic involuntarism. This lack of voluntariness of AR distinguishes it from RR in a strong manner. It is not clear that AR is something for which one can be morally responsible. There is a possibility, however, that I am overstating the involuntariness of AR. For example, esteem might be understood differently, where I consider the hypothetical situation in which it was possible and morally permissible for me to choose between an object existing as P or Q, where all else being equal, P has more merit. I would choose for the object to exist as P. I worry that even appraisal has a kind of hypothetical action built into it. If this is correct, then perhaps the distinction between AR and RR is not as clear as I had hoped (I’m not sure).

While Darwall doesn’t phrase it this way, we can think of AR as an attitude or belief formed from evaluating to what degree a particular token satisfies what the agent subjectively takes to be the standard of the good of its type.<<ref "19">> Esteem for a token object requires the respecter to have in mind some kind of standard which she uses to evaluate the token object. Presumably the respecter employs what she believes is the standard of the good of the type of the token. An instance of AR consists in a judgment formed by evaluating a token against the perceived standard of the good of its type.  Like RR, AR has an object and some set of features of the object, and a standard; unlike RR, AR uses its standard against which to measure the merit of an object’s features, rather than weighing features, and this results in a judgment (rather than an action).<<ref "20">> 

Vexingly, Darwall posits an artificial limitation on the concept of AR: the “appropriate characteristics” to be evaluated in AR are “those which are, or are based on, features of a person which we attribute to his character.”<<ref "21">> He says AR is “a positive appraisal of a person or his character-related features.”<<ref "22">>  He claims the only viable targets of AR are persons, and the only viable features available for judgment are the moral characteristics of a person. He does not present a real argument for this limitation, although he does claim that AR “for a person assessed in a particular pursuit seems to depend on features of this character (or his excellence as a person) in at least two ways.”<<ref "23">>
 
First, Darwall considers a tennis player who “may be widely acclaimed as one of the best players in the world and not be widely respected by his fellows.”<<ref "24">> On his view, the tennis player’s moral character is a necessary component of being an excellent tennis player, and he won’t be judged as deserving AR if he is considered vicious. This fails to capture the everyday phenomenon of AR as we ordinarily experience it.

It seems to me that the tennis player is receiving AR as a tennis player given our standard of good of a tennis player, even if he doesn't receive AR as a person given our standard of good of a person. There are various ways in which we can have AR for a token object, and that is because an object can have many types, and we may employ a different standard of good for each type. We can view an object with different type-lenses, and we can employ different standards in evaluating an object. We can evaluate the object as a token of the type tennis player, or as a token of the type human, or as a token of the type person, or as a token of the type husband, etc. He might be a good a tennis player given the appropriate standard, he might even be a decent token human specimen, but then he might turn out to be an awful husband or terrible person.<<ref "25">>
 
Darwell further claims that “purely 'natural' capacities and behavior manifesting them are not appropriate objects of appraisal respect...even in the context of a fairly narrowly defined human pursuit.”<<ref "26">> This is just another way of saying that the scope of AR is persons and their non-natural moral characteristics. I don’t see why we should agree. He also says, “there may well be characteristics of human beings which are regarded as human excellences but which are not appropriate grounds for appraisal respect.”<<ref "27">> He doesn’t offer a real argument for it. Even if he wanted to claim that we should focus on AR for persons (which is an interesting idea), to the exclusion of human excellence not involved in non-natural moral character, or any other type of excellence, it is obvious that AR is conceptually capable of targeting and evaluating other non-person types of objects, non-moral characteristics, and natural capacities.

A few examples can easily demonstrate why AR is more conceptually capable than Darwall claims. When I stand before Goliath, his natural gargantuan size (perhaps as a soldier in close-combat) fills me with awe. Goliath’s size is a natural capacity, but I can still be filled with AR for him when regarding him as a naturally gigantic soldier. When I see a particular tree flourishing according to the standard of the good of its kind, I evaluate it and appraise it as an excellent tree – a tree of merit. It deserves the title I give it because it meets the requirements set out by the standard of the good of trees. Even Darwall’s bank heist example is best understood by considering that the virtue of the practice of bank robbing and a vicious enough standard of morals (to be willing to steal and commit violent acts) are the standards one would use to reach AR for a particular bank robber. It is still a case of AR, even if it is an odd one. We have evaluated someone with a morally bad character as a good robber, according to the standard of what makes a good bank robber. Darwall’s definition and ad hoc limitations are a mistake.<<ref "28">>
 
In his zeal to reveal how we can simultaneously fail to have RfP, a kind of RR, and succeed in having AR for the same person, Darwall has unnecessarily embedded moral notions into his definitions and bent his conceptual analysis. His goal is a good one, but he made a mistake in his analysis. We can arrive at this revelation without placing the ad hoc limits that Darwall adds, and indeed we shouldn’t agree to these limits. It is quite unclear why we should believe AR (or RR, if Darwall meant to go that far) is conceptually linked to morality, or moral character, or restricted only to persons as objects. 

We are forced to generalize Darwall’s definitions of the concepts of respect which he has over-specified and artificially limits. What is necessary and sufficient? What should we eliminate? What matches our intuitions and our experiences of these phenomena? The bare metal notions are compelling. Darwall started out with kernels of truth, but then he took us down a rabbit hole.<<ref "29">>

I think Darwall’s overall project is generally right, and he gives us a useful framework for appreciating the various ordinary language uses of respect. The real goal, of course, is to better understand RfP. That is the sort of respect that matters the most. The claim that RfP is a kind of RR and not AR seems right. Honestly, I have no idea how to further define RfP, other than to claim it is simply being moral. I have no idea how to separate being moral from respecting persons in any significant way. I think it boils down to talking about two sides of the same coin. Define and explicate being moral, and I think you’ve defined and explicated RfP.

------------------

<<footnotes "1" "Darwall, Stephen. 'Two Kinds Of Respect.' //Ethics// 88, no. 1 (1977): 36">>
<<footnotes "2" "Ibid., 38">>
<<footnotes "3" "Ibid.">>
<<footnotes "4" "Unfortunately, Darwall leaves gaps in his definitions and explanations which are too large. Charity requires us to build some technical bridges to achieve an adequate understanding of his concepts. In the spirit of charity, I feel reluctantly forced to put words in Darwall’s mouth to make clearer what he likely means (or should mean). I will try to be charitable in my exegesis, and ultimately, I will walk away with definitions which may be different than Darwall intended, but I believe these concepts are much more useful, and don’t carry the same baggage.">>
<<footnotes "5" "Ibid. ">>
<<footnotes "6" "Ibid. ">>
<<footnotes "7" "Ibid., 39">>
<<footnotes "8" "Darwall often ambiguously injects an objective notion of “appropriateness” into RR, and it blurs his analysis. What is this objective appropriateness? I will take “appropriate” to mean that the agent is rational in his weighing the facts against his subjective standard – that the agent makes the appropriate, rational inferences given the facts and subjective standard used in deliberation. I worry that Darwall is often tempted to inject an objective moral notion of appropriateness into RR, especially since he later adulterates his definition of AR with an artificial conceptual limitation based on morality. If he meant that, then it is a mistake, especially since several contradictions immediately arise in his examples. Take my paper as either giving him the benefit of the doubt of not making that mistake or attempting to salvage a viable analysis despite that mistake.">>
<<footnotes "9" "The breakdown I’ve given is an atomic instance of RR, which is what I believe Darwall is arguing for. Of course, in many cases, an agent weighs multiple features of multiple objects, and essentially, we might conceive of these cases of deliberation and action as really a molecular set of atomic instances of RR. The crucial aspect of an atomic instance of RR is that it targets a single feature. The atomic components of a molecular instance of RR share the same action and deliberation, but they do not share the same targets: one feature, one atomic instance of RR.">>
<<footnotes "10" "How do we select our targets for RR? Don't we need a reason for picking them out? Isn't targeting a fact for RR a kind of mental action which is the result of some subsequent instance of RR? I fear a regress.">>
<<footnotes "11" "Ibid., 40">>
<<footnotes "12" "For example, it is possible that there are many features/facts of the moral law which are viable targets of RR, even when they are not deciding factors. It is possible these features can and should weigh in all my deliberations (hence, no deliberation should ever be an atomic instance of RR), even in those deliberations where these features ultimately have no impact on or in no way constrain what I can or should choose. The features of moral law, after all, do not always restrict my action (sometimes the moral law does not obligate or restrict any available choice in a circumstance), but I might want to say they can (and should) be viable targets of RR. ">>
<<footnotes "13" "What choices are possible in the various instances of RR? Can we choose our standard(s)? Can we choose whether or not to rationally weigh or how we apply the standard? Can we choose to disregard the results of that weighing? Can we choose whether or not to take a feature of an object as a factor in our weighing? Can we choose the weight of that feature and/or the other facts? ">>
<<footnotes "14" "Ibid. 40">>
<<footnotes "15" "Sometimes his language of “appropriateness” seems to imply an objective moral standard, but I don’t think we have to take him that way. In our conceptual analysis, it seems obvious that a vicious person, like his crook example, can have RR using a vicious standard. The standard the crook employs is not objectively, morally appropriate at all.">>
<<footnotes "16" "Ibid., 39">>
<<footnotes "17" "No argument is given for this switch in target types. Careful examination may reveal that the real target of AR is still the feature of an object and not the object itself.">>
<<footnotes "18" "I find the locution, 'when we speak of someone as meriting or deserving our respect, it is appraisal respect that we have in mind' on pg 39 somewhat odd. I think people merit or deserve our respect in the recognition sense as well. We can untangle this by realizing that appraisal 'desert' is judged via a standard of the good, while the recognition 'desert' is required by the standard of the right (the moral law).">>
<<footnotes "19" "Note that in some cases the agent could be using the wrong standard. A vicious, irrational, or simply mistaken agent may employ subjective standards which do not correspond to objectively correct standards.">>
<<footnotes "20" "Darwall’s explanation of RR implies an atomic/molecular perspective, but his analysis of AR doesn’t suggest a similar atomic/molecular perspective. Whether or not the concept of AR is capable of admitting atomic/molecular instances is not obvious to me.">>
<<footnotes "21" "Ibid. ">>
<<footnotes "22" "Ibid., 41">>
<<footnotes "23" "Ibid.">>
<<footnotes "24" "Ibid.">>
<<footnotes "25" "Note that human eudaimonia, as a standard, is significantly broader than the standard of moral virtue. Human excellence includes more than the moral excellence of being a person. A starving saint may be an excellent person, but not an excellent human.">>
<<footnotes "26" "Ibid., 42">>
<<footnotes "27" "Ibid., 43">>
<<footnotes "28" "I worry that Darwall then goes on to try and make a similar mistake with RR. He says on pg. 45, 'Recognition respect for persons, then, is identical with recognition respect for the moral requirements that are placed on one by the existence of other persons.' We might take him to be talking about RfP, in which case he might be right. I want to point out that not all RR for persons is necessarily the same as RfP though. Why can’t RR for persons be based upon some standard of fear for the harm that other persons may cause us? RR for persons is broader than RfP. Hiding or killing other persons out of fear is a case of RR for persons. It just happens to be a case where the standard isn’t the moral law.">>
<<footnotes "29" "Admittedly, RR seems to be far simpler than Darwall implies. The crux of the concept of RR is just a weighing of facts and an action resulting from that deliberation. If I take a fact to be salient for deliberation or weighing concerning my action, then that fact is the target of my RR. RR seems to be that simple and that broad, although the mechanics underlying it may be complex.">>
In this paper, I analyze Derek Parfit’s position on whether or not the requirement to treat others never merely as a means is a sufficient criterion of moral permissibility.<<ref "1">> Parfit seems to employ his own definition of treating people merely as a means, and that heavily influences his discussion of Kant and permissibility.<<ref "2">> I worry his criticism of Kant is not as strong as he thinks, but I’m partial to the motivational component which Parfit embeds in treatment of persons as mere means.

Parfit begins by considering the Mere Means Principle (MMP1), which is the claim that treating anyone merely as a means is morally impermissible.<<ref "3">> Before he can dissect MMP1, Parfit must distinguish treating as means (TM) from treating merely as a means (TMM). Indeed, this is a key question: what does Parfit mean by TM and TMM?<<ref "4">> He starts with the notion of use. In the Scientists example, both are said to treat the animals as means. He explains, however, that the second scientist does not treat the animals as merely means because “her use of them is restricted by her concern for their well-being.”<<ref "5">> For Parfit here, TMM is an act/reason pair, where the way we regard an object is part of our motivation for acting in a particular way.<<ref "6">>
 
In analyzing the first rough definition of TM, Parfit distinguishes “doing something to someone as a means of achieving some aim” from “treating this person as a means.”<<ref "7">> I don’t understand this distinction. In the Broken-Rib example, I believe the intuitive claim should be that the doctor’s use of my body is TM, but not TMM, which is why it could be morally permissible.<<ref "8">> Parfit doesn’t think this is even a case of TM, although he provides little evidence for this claim.

Parfit moves on to providing a rough definition of TMM, a conjunction of TM and regarding someone’s well-being and moral claims as completely irrelevant.<<ref "9">> In responding to Kamm’s criticism and the example of the slave-owner who gives only the slightest weight to the well-being of his slaves (which is not strictly TMM), Parfit essentially claims that the rough definition of TMM is not wrong, but rather MMP1 isn’t effective enough. It seems as though Kamm and Parfit are looking for a bi-conditional criterion of impermissibility – roughly: TMM ↔ Wrong – which MMP1 isn’t fit for in the first place, since it only goes one direction.<<ref "10">> While he doesn’t phrase it this way, Parfit seems to be agreeing here that TMM (as he defines it) alone, is too weak an antecedent for the bi-conditional, which is why he spends so much time strengthening it in this chapter.<<ref "11">>
 
In order to wrestle with the wrongness found in the Slave-Owner example, and attempting to be charitable to Kant, Parfit expands MMP1 to MMP2, which adds a clause of coming close to TMM.<<ref "12">> The coming close clause increases the burden of motivation, where we are required to not only not totally disregard a “person’s well-being or moral claims,” but also to not give “too little weight” to them.<<ref "13">> MMP2’s form is roughly: (TMM ∨ ComeClose) → Wrong. Since the slave-owner comes close, this principle condemns his choice.<<ref "14">>

Parfit goes on to flesh out the semantics of ¬(TMM ∨ ComeClose), namely “we do not treat someone merely as means, nor are we even close” if (1) “our treatment of a person is governed or guided in sufficiently important ways by some relevant…direct concern for the well-being or moral claims of the person” or (2) employing a policy wherein we would “choose to bear some great burden for this person’s sake.”<<ref "15">> We can understand MMP2 as saying: ¬Wrong →  ¬((1) ∨ (2)), which, again, is only a one-directional criterion.

The slave-owner who never whips his slaves because he believes it would wrongly give him sadistic pleasure isn’t properly motivated, and thus might still be accused of TMM according to (1).<<ref "16">> In examining the Scientists again, Parfit temporarily assumes that “cruelty to animals is wrong because it dulls our sympathy.”<<ref "17">> He goes on to claim that if this were the sole motivation of the second scientist, she would be guilty of TMM according to (1) because she wasn’t relevantly worried about their well-being.<<ref "18">> He also limits the coming close clause with the Chinese Bandits example, wherein he is inclined to believe bandits did not even come close to treating his mother as a mere means by robbing her of only half her belongings.<<ref "19">> I find this odd, since to my eyes, they obviously gave too little weight to her well-being or moral claims.<<ref "20">>
 
Here we see that, for Parfit, TM is clearly about an act (whatever reason there is for the act doesn’t really matter), when he claims that “whether we are treating someone as a means depends only on what we are intentionally doing.”<<ref "21">> Conversely, TMM depends on our “underlying attitudes or policies,” particularly regarding counterfactuals of “what we would have done, if the facts had been different.”<<ref "22">> The focus of TMM is not the act, but the reason or policy for that act. TMM is TM with the wrong motivation or policy. 

Parfit claims that Kant implies that “it is wrong to regard any rational or sentient being as a mere tool,” which assumes that motivation is an object of permissibility, and Parfit agrees to this claim.<<ref "23">> I’m not sure if that is an accurate portrayal of Kant, but it makes sense that Parfit would agree because his definitions of TMM revolve around reasons to act, but not so much the acts themselves (just as long as the acts are cases of TM). Kant, according to Parfit, implies TMM is necessarily a case of “acting wrongly.”<<ref "24">> This is likely the heart of the disagreement. He seems to be arguing that he and Kant and have different definitions of TMM; for Kant, TMM is a wrong act, and for Parfit, TMM is a wrong motivation. 

Admittedly, it is odd that Parfit at the same time believes Kant takes motivations to be an object of permissibility, but also that TMM is necessarily and conceptually linked to wrong acts. In particular, since Kant seems to agree to the bi-conditional, TMM ↔ Wrong, and since for him TMM is a wrong act, then all cases of impermissibility boil down to wrong acts. But if that is true, then why should Parfit think that Kant would agree to motivations as being objects of permissibility?  

Parfit shows there are choices which are morally wrong, even cases of TMM, which don’t rely upon a wrong act, but rather a wrong motivation. The Gangster who takes up a policy of treating a coffee seller as a vending machine, as a mere means, as someone whom he doesn’t kill only because it is easier to acquire coffee the usual way, is said to be wrong solely because of “his attitude to this person,” but “he does not act wrongly.”<<ref "25">> Similarly, the Egoist who saves a drowning child motivated solely by reward, hasn’t acted wrongly, but has simply had the wrong motivation.<<ref "26">> These examples also cry out to my intuitions as cases of TMM, and what makes these choices wrong are the motivations, not the acts. If Parfit reads Kant correctly, then I think Kant is wrong about the requirements of TMM, since I would disagree with him about the objects of permissibility.

To save Kant from the Gangster and Egoist examples demonstrating TMM without acting wrongly, Parfit tentatively adds (3) to (1) and (2), where TMM is not the case when we know “our acts will not harm this person.”<<ref "27">> By using (3), the Gangster and Egoist, who know their acts will not harm, are not to be accused of TMM. The motivational component of TMM still matters, but it is simply honed (in an arguably ad hoc manner). Even (3) does not save Kant, according to Parfit. The Mutual Benefit example, where Green marries Gold instead of murdering him because marriage is the easiest way to get some of Gold’s wealth, would not be condemned by (3).<<ref "28">> Parfit still thinks this is a case of TMM. Unlike Parfit, I don’t quite see a relevant difference between the Gangster/Egoist examples and the Mutual Benefit example. 

Speaking of Green, Parfit says “we should not claim that these acts are wrong,” but rather “given this man’s self-interested motives, his acts do not have what Kant calls moral worth.”<<ref "29">> Again, I take Parfit to be arguing that Green’s motivation is morally impermissible (this explains the wrongness), while his act, in itself, remains permissible.<<ref "30">>
In an effort to help Kant not condemn the acts of the previous examples, Parfit expands MMP2 to MMP3. MMP3 conjoins an “if our act will also be likely to harm this person” clause with the antecedent of MMP2.<<ref "31">> MMP3 is of the form: (LikelyHarm ∧ (TMM ∨ ComeClose)) → Wrong. At this point, Parfit, by his own admission, is entertaining too strong an antecedent for determining if never treating persons merely as a means is a sufficient criterion of moral permissibility or worth.<<ref "32">>
 
By his own definition of TMM, Parfit has clearly shown examples where someone has done wrong but wasn’t strictly treating anyone merely as a means.<<ref "33">> Essentially, Parfit believes moral impermissibility is not sufficient for TMM, i.e. ¬(Wrong → TMM). Equivalently, we can say that Parfit believes that not treating anyone merely as a means is not sufficient for moral permissibility, i.e. ¬(¬TMM → ¬Wrong).<<ref "34">> 

Unfortunately, I fear something unintentionally underhanded has occurred in the way Parfit has deployed his own definition of TMM against Kant. I can’t quite put my finger on it though. Parfit spends a lot of time on his own definitions of TMM. Does Parfit give Kant’s definition of TMM a fair shake? That remains unclear to me. I strongly agree with Parfit, however, on the claim that “it is wrong to regard anyone merely as a means.”<<ref "35">> 

It is clear we don’t have a choice over what acts are available to us. Most of us, however, would be willing to buy the claim that we choose how to act from the set of acts available to us. Much of moral philosophy surrounds the question of how persons ought to act, and rightly so, since we have a choice in the matter. Further, it is unclear if we have a choice over what motivations are available to us (arguably, we don’t). Even if we don’t, however, it seems as though we also have a choice over what motivates our acts. Is there an ought for motivation? I assume so. 

To be clear, when I claim one ought to be motivated to act in a certain way, I’m claiming that it is morally impermissible not to be motivated to act in that way. That’s just what ought means. To say one ought to act from duty is to say it is morally impermissible not to act from duty. We might take Kant as claiming that moral permissibility is acting in conformity with the moral law, while moral worth requires not only our act to conform to the moral law, but also to be correctly motivated by the moral law to act in that way. Moral permissibility, on this view, only makes demands on how one ought to act, while moral worth makes demands both on how one ought to act and be motivated. If that is an accurate portrayal of Kant’s position, then I believe Kant’s notion of moral permissibility is incomplete. Moral worth normatively extends Kant’s moral permissibility. What we really ought to choose isn’t simply an act, but rather both the right act and the right reason for it. On my view, the conditions of moral worth are the conditions of real moral permissibility. Essentially, the moral law governs choices of acts and motivations.

Moral permissibility is about choosing the right kind of act/reason pair. Some act/reason pairs might be wrong regardless of one’s reason (e.g. destroying the universe with a doomsday device). Conversely, any act/reason pair with an act not done for the right reason is impermissible. There are multiple ways for a particular act/reason pair to be morally impermissible, and that appears to be the heart of Parfit’s disagreement with Kant on the topic of mere means.

If I use Parfit’s definition of TMM, then I’m convinced that it isn’t a sufficient criterion of moral permissibility. What I like about his definition is that it captures the permissibility of motivation. It isn’t clear to me that Parfit’s definition is the right one, though. Surely there is more to treating people as a means than he has suggested. 

-------------------------

<<footnotes "1" "Parfit, D., & Scheffler, S. (2011). //On what matters: Volume one//. Oxford: Oxford University Press: 212-232">>
<<footnotes "2" "Parfit slow-rolls his audience with a detailed examination of a staggering sequence of principles and cases. He engages in a hypothetical dialectic with Kant, where he takes up what he believes is the Kantian position, then he shows a flaw, then he tries to improve the Kantian position, then shows a flaw, and rinse and repeat. I cannot do justice to all the details in this chapter. Getting at Parfit’s ultimate argument is not simple; charitably interpreting his argument-style requires meticulous parsing. There are a thousand moving parts in his argument, and it is difficult to hold them all.">>
<<footnotes "3" "Ibid., 212. ">>
<<footnotes "4" "He does not clearly define these terms from the outset. We must slowly piece together what he thinks. Oddly, he doesn’t much discuss Kant’s definitions.">>
<<footnotes "5" "Ibid.">>
<<footnotes "6" "Parfit seems to be implying that TM has to be a kind of act, while the reason for the act remains irrelevant. We should note that Parfit sometimes uses the word treat to mean more than simply act, particularly in the case of TMM.">>
<<footnotes "7" "Ibid., 213">>
<<footnotes "8" "Ibid.">>
<<footnotes "9" "Ibid.">>
<<footnotes "10" "Conversely, a bi-conditional criterion of permissibility would roughly be ¬TMM ↔ ¬Wrong. Unfortunately, MMP1 is only TMM → Wrong.">>
<<footnotes "11" "Oddly, however, this is not how he designs the principles, despite his argument moving in that direction in many cases. I regret that I may not fully understand the method to Parfit’s madness (or genius).">>
<<footnotes "12" "Ibid., 214. Parfit is strengthening the antecedent so that it captures more cases, and so that it may serve as the antecedent of the bi-conditional.">>
<<footnotes "13" "Ibid.">>
<<footnotes "14" "He says, on 214, 'condemns this man’s acts.' I read Parfit as taking MMP2 to condemn the motivation and not simply the act. The reason MMP2 can nail the slave-owner while MMP1 can’t is ultimately due to the slave-owner choosing the wrong motivation or policy from which the act springs. The reason MMP2 succeeds in condemning the slave-owner where MMP1 fails is a result of strengthening the motivational requirements.">>
<<footnotes "15" "Ibid. Condition (1) seems to be the real issue at stake.">>
<<footnotes "16" "Ibid.">>
<<footnotes "17" "Ibid.">>
<<footnotes "18" "Ibid., 214-215">>
<<footnotes "19" "Ibid., 215">>
<<footnotes "20" "It is sometimes difficult to draw the line, to know precisely when (1) is satisfied or not. For my intuition, this case so clearly crosses the line that I worry I’ve misunderstood Parfit’s point.">>
<<footnotes "21" "Ibid. There is a reason for the act, since that is part of the definition of an intentional act, but it doesn’t matter what the reason is.">>
<<footnotes "22" "Ibid.">>
<<footnotes "23" "Ibid.">>
<<footnotes "24" "Ibid., 216">>
<<footnotes "25" "Ibid.">>
<<footnotes "26" "Ibid.">>
<<footnotes "27" "Ibid., 217">>
<<footnotes "28" "Ibid.">>
<<footnotes "29" "Ibid.">>
<<footnotes "30" "I’m not convinced this is the best way to think about moral permissibility, but it seems to be the way Parfit rolls.">>
<<footnotes "31" "Ibid.">>
<<footnotes "32" "Ibid. I only have so much room in this paper. I have to find a stopping place. There are more moves going on later in this chapter, but they aren’t absolutely necessary to answering the question (or if they are, I certainly don’t have space to show it).">>
<<footnotes "33" "Ibid. 232">>
<<footnotes "34" "Whether or not TMM is a necessary condition of moral permissibility is another matter. ">>
<<footnotes "35" "Ibid.">>
Christine Korsgaard believes we owe respect to certain animals.<<ref "1">> She argues that we share in common with certain animals the morally significant attribute of the awareness of things being good or bad for us, and that when we employ her interpretation of Kantian ethics, this fact results in obligations towards certain animals. The problem I have with her argument is that she has several under-argued or perhaps even unjustified premises. She helps herself to a rich foundation and walks away with a significant claim concerning an obligation to non-persons; however, her argument style only works if you already agreed to her foundation. 

Korsgaard begins by explaining how humans share a history, a story, a context, and certain mental states with other animals.<<ref "2">> Both humans and other animals tend to have some similar needs, experiences, and purposes. Korsgaard channels an Aristotelian teleological account of the good for each species, and perhaps even for each individual specimen.<<ref "3">> Alongside humans, she attributes to a seemingly broad swathe of non-human animals the capacity to experience the world as good or bad for themselves.<<ref "4">> This common experience is vital to her end argument, and she considers it to be a morally significant factor or attribute in determining our duties to other organisms. 

For her, awareness (a term she employs broadly) is something like being conscious of or alert to one’s telos and the conditions of flourishing specific to oneself – what she calls the “natural good.”<<ref "5">> Awareness requires that an organism must have a teleological perspective of the world, where aware organisms experience things as being good or bad for themselves.<<ref "6">>  What she means by the “for” is not entirely clear, and that is unfortunate, because it is such an important condition in her argument.<<ref "7">> Ultimately, it seems as though she believes we have obligations towards other aware animals because we as humans share with them the experience of things being good or bad for us – i.e. they have rights because we all share the phenomenon of possessing a teleological perspective. 

While channeling Aristotle, Korsgaard seems to be either building on top of or offering a new interpretation of Kant’s arguments (or both). In this paper, she passes off  much of the justificatory work in her argument to her previous interpretations of Kant’s account, and this makes it difficult to see why we should be convinced by the argument she leaves us. She sees herself as explaining why Kant’s theory of reciprocal moral relationships between rational humans bears the fruit of our obligations towards (and corresponding rights for) other aware animals.<<ref "8">>

Korsgaard seems to agree to Kant’s differentiation between humans and other animals.<<ref "9">> Unlike the other animals, humans have freedom and reason, and hence we are moral creatures with the ability to legislate moral law.<<ref "10">> Humans can be morally obligated, but the other animals can’t. She parts with Kant, however, on what kinds of objects or beings can be the target of obligations. Unlike Kant, Korsgaard believes non-rational, non-moral beings can be rights-bearers, even if they can’t claim those rights or reciprocate. She claims that participating in this reciprocating community, which only free and reasonable beings can, is not the only way in which one can be owed obligations.<<ref "11">>
 
The reciprocity theory claims morality is “a system in which human beings mutually impose obligations on each other,”<<ref "12">> where  “for one person to make a claim on another, they must be under common laws that spring from their own shared authority: laws that they make—that they autonomously will—together.”<<ref "13">>
 
Korsgaard fleshes this theory out further with the notion of conferring value. She claims, “When we take our own concerns to be important and worth doing something about, we take ourselves to be capable of conferring objective value on our ends through rational choice.”<<ref "14">> On Korsgaard’s interpretation of Kant, valuing is “an act of legislation: you make it a law for yourself and everyone else that what is naturally good for you should be taken to be objectively good,” whereby “you make it a law that every other person must regard it as a good end—and so as a source of reasons—that you should achieve what is naturally good for you.”<<ref "15">> She takes the valuing of our own natural goods to be embedded in this reciprocity theory. She claims that since “we need to have reasons for what we do… we find those reasons in the things that are naturally good for us,”<<ref "16">> and we “treat what is naturally good for us as normatively and objectively good.”<<ref "17">> She explains that, “just by the act of making a rational choice, you confer normative value not only on the end that you choose, but also on yourself.”<<ref "18">> This is part of the crucial move in her argument, since she distinguishes the participants from the targets in the reciprocity process. Korsgaard argues that each human has two selves; one of our selves confers value on the other.

Korsgaard claims that the autonomous self confers value on the aware-animal self, the self for which things are naturally good.<<ref "19">> It seems as though there is a two-way (perhaps circular) relationship between each of our dual selves, whereby the natural good perceived by our aware-animals selves is a source of reasons to our autonomous selves to act and be obligated in certain ways, and in the other direction, our autonomous selves confer value on what is naturally good for our aware-animal selves. Further, by conferring value on the natural good for our aware-animal selves, Korsgaard believes we confer value on our aware-animals selves.

In subjectively conferring value on and respecting both what we perceive to be our natural goods and our aware-animal selves, we legislate that all creatures which have this kind of self and what they perceive to be their natural goods are objectively valuable and worthy of respect for the reciprocating community. Since the other aware animals are beings for whom there is a natural good, like us as humans, and since “our legislation is universal,” then “it follows that we will that all animals are to be treated as ends in themselves.”<<ref "20">> The community of autonomous selves together legislate obligations to the selves of all aware-animals. Therefore, Korsgaard believes we are obligated not only to aware humans, but to all aware animals.<<ref "21">>

The general problem with Korsgaard’s argument is that she assumes and relies upon a foundation of fairly unintuitive premises which require a significant amount of explanation and justification. First, Korsgaard assumes a schizophrenic view of our identity. Why should we agree that we have multiple selves? It is far more intuitive to think of my self has having multiple parts rather than me being a collection of multiple selves.  Does it hurt her argument to deny multiple selves? Maybe. Her argument looks artificially purer if she can pull apart our rational self from our animal self, since then she has a clean and easy target on which to confer value, and then analogize to the monolithic selves of the other animals. To deny multiple selves, and to accept that our single, whole selves are made up of many parts, may muddle her argument. If I value some part of my self, that doesn’t necessarily mean I should value any object which has such a part. She needs to explain and justify this issue further for her overall argument to work.

Secondly, she seems to ignore what human natural good is really like, and perhaps she has assumed a different understanding of the human good (but didn’t explain it). Part of our evolutionary story is that we: eat the meat of animals, defend ourselves against and attack other aware animals, and use other creatures as mere means. That may be part of our natural good of humans. To respect my own natural good may require engaging in behavior that prevents me from respecting the other animals in the ways Korsgaard implies. Perhaps very wealthy, modern humans can personally get by without such things, but most humans through history haven’t and can’t. Part of the telos of humans is using other animals – we have strong evidence to believe so from biology and history. Our natural good is in conflict with the natural good of other animals, and Korsgaard needs to explain how this works in her theory.

Thirdly, why is awareness or having a perspective of one’s telos or natural good morally significant and something to be valued in the way Korsgaard describes? Note there is a difference between having a perspective of what is good for you, and having an objectively accurate perspective. An organism could be deeply irrational, having an extremely inaccurate awareness of its natural good or telos, and yet would still qualify.

Accurate awareness seems useful and interesting, but insufficient for generating strong obligations beyond not causing pain for trivial reasons. I can see some intuitive force behind obligations being generated from the fact that an organism has a natural good, but I don’t see why the appended condition of awareness matters so much. It is the natural good which has the real force behind it, not awareness. Korsgaard has under-argued a foundational premise to her theory. 

I worry that Korsgaard has unintentionally added this awareness condition because her argument would border on the absurd if she didn’t. Namely, if we remove the awareness condition, and we simply value that we are the sorts of objects that have a natural good or telos, regardless of awareness, then when we universalize that move, her argument would require that we value all objects which have a natural good or telos. It would result in having obligations to lower animals, plants (which she doesn’t find plausible), and if we follow Aristotelian reasoning, even inanimate objects like chairs, hammers, and houses (which few, if any, would find plausible).

Even if she could explain why we should take into consideration how awareness increases our obligations to certain beings, it isn’t clear that it buys all that much. I reckon the best reason for thinking awareness is a morally significant attribute rests upon consequentialist grounds, but Korsgaard seems to boldly reject that move. She needs to explain why employing an experience machine (like The Matrix) or heavy anesthetics on animals we want to kill or use is a moral problem. She takes herself as having done this, but there isn’t an argument for it. We might make an argument that such processes impede our moral life (which could be morally wrong), but it doesn’t seem as though there is a moral life for animals. The condition of awareness may not be sufficient for obligating us to not use animals, by and large. 

Lastly, just because we take or assume or wish something to be objectively good, right, or valuable doesn’t make it objectively good, right, or valuable. Perhaps she is relying upon previous arguments of her interpretation of Kant to make that move, but I see no reason to think she is allowed to help herself to that claim. Now, we can sneak through the back door and claim that if the authentic self just is conceptually defined as a special flavor of reason (which is what I call begging the question), then what the authenticated “we” take to be objectively good or right just so happens to be objectively good or right by definition. However, you have to take on faith that we have that reason, that we are constituted that way, that what we take ourselves to really be is like that. That is not satisfactory. People who already agree with the groundwork she takes for granted may be convinced by the rest of her argument. The question, for me at least, is whether or not that groundwork and the rest of her under-argued premises are actually correct.

As to my own views, I’m not sure I can offer much. I think we are first and foremost obligated to the moral law (whatever that moral law may be). All claims on us trace their origins to the moral law. It is the fundamental source of normativity; it is the source of all other obligations. Even our obligations to other people are derivatives of our original obligation to the moral law. I also think that if there is a moral law, then it is conceptually independent of the existence of people. The same is true of any obligations we have to other animals. It is our job to figure out the contents of the moral law. Do we have obligations to the other animals? 

Probably. I don’t know what they are. Virtue theoretic accounts of “what kind of person should I be” may offer the most coherent requirements. “Don’t be cruel” entails “don’t be cruel to animals.” Beyond that, I just don’t know. My inabilities in this regard cause me great sympathy for what Korsgaard is trying to accomplish. I want to have solid reasons not to eat my cat or Korsgaard’s, and so does she. Unfortunately, I think neither of us can put forth a solid theory of why we are obligated to abstain from such behavior.

-------------------------------

<<footnotes "1" "Korsgaard, Christine M. 'Interacting with Animals: A Kantian Account.' //The Oxford Handbook of Animal Ethics. //Uncorrected Proof. Oxford: Oxford UP, 2011.">>
<<footnotes "2" "Ibid., 91">>
<<footnotes "3" "Ibid., 111-112, Footnote 4">>
<<footnotes "4" "Ibid., 92. Throughout the paper, I fear Korsgaard continuously anthropomorphizes a broad swathe of non-human animals without enough justification or subtlety. She may be exaggerating the analogy of the phenomenon of our human conscious experience with the minds of non-human animals. Much of her argument rests upon theories of mind which she neglected to flesh out for us.">>
<<footnotes "5" "Ibid., 92">>
<<footnotes "6" "Ibid.">>
<<footnotes "7" "It would be helpful for her to clarify this position, and to make clear for us exactly what theory of mind is necessary for awareness. I feel uncomfortably forced to guess.">>
<<footnotes "8" "We will get to this theory in a bit.">>
<<footnotes "9" "Although, at least in this paper, she seems open to the possibility that the traditional highest animals might possibly have freedom. I don’t read her, however, as suggesting this.">>
<<footnotes "10" "Ibid., 106-107">>
<<footnotes "11" "Ibid., 107">>
<<footnotes "12" "Ibid., 104">>
<<footnotes "13" "Ibid., 105">>
<<footnotes "14" "Ibid., 106">>
<<footnotes "15" "Ibid.">>
<<footnotes "16" "Ibid., 108">>
<<footnotes "17" "Ibid.">>
<<footnotes "18" "Ibid.">>
<<footnotes "19" "Ibid.">>
<<footnotes "20" "Ibid., 109">>
<<footnotes "21" "While Korsgaard argues we owe something to all aware animals, it isn’t clear what she thinks we do owe to them. The precise requirements or contents of these obligations remain unclear, but presumably they regard protecting and enabling the flourishing of aware animals. Admittedly, I can’t expect Korsgaard to solve everything. I’d be satisfied with just a middle-ground framework for beginning to think about animal rights, which seems to be what she attempts in this paper. At the very least, Korsgaard is arguing against the killing for eating of aware animals.">>
<<footnotes "22" "">>
Intellectual property (IP) rights are an increasingly vital area of philosophical inquiry in a global society dependent on information and intellectual labor. This paper investigates the challenges faced by a quasi-Lockean IP theory used to determine, explain, and justify moral, private IP rights. The status quo of legal IP rights, or something quite like it, is sometimes defended on quasi-Lockean moral grounds. This paper describes significant challenges for such an account, and provides reasons to think the status quo of IP rights, or similar states of affairs, may not be justified on Lockean grounds. 

I begin this paper by providing context and laying some groundwork to show where this extended IP theory is positioned in a general landscape of property concepts and theories. We will consider the basic and foundational quasi-Lockean theory for physical property and examine the standard Lockean IP extension built on top of that foundation. From there, I will offer a series of objections to this extension. In particular, I disagree with Lockean IP theorists about the targets of IP rights, the need for a property theory regarding non-rivalrous objects, the coherence and viability of rules and mechanics for IP acquisition, and the soundness of domain selection for IP rights. The standard quasi-Lockean IP theory may lack the explanatory qualities we should require for agreeing to the limitations on our freedom that it would impose. Ultimately, I advocate a non-interference right rather than private IP rights. In considering an alternative view, I will explore the possibility that discussions of IP have been too narrow and offer possible exceptions to this right of non-interference.

''Groundwork Property Concepts and Narrowing Our Focus''

IP is a hotly contested topic in philosophy, law, political science, library science, and perhaps other disciplines as well. Generally, the topic of IP is approached as a set of legal rights resulting from laws constructed by a legal system. Naturally, philosophical discussions of IP tend to revolve around political philosophy more so than ordinary moral philosophy. Granted, even in these discussions, IP laws are often justified on moral grounds. The normative force of an IP right generated by positive laws, however, isn’t necessarily based solely on moral grounds. Further, the construction of positive laws may often require certain kinds of pragmatic sacrifices which moral laws need not make. Depending on how we approach these issues, positive and moral laws can differ widely in many respects, and IP is no exception. 

This paper will focus on a modern quasi-Lockean framework for moral IP rights employed to justify and maintain the status quo of legal IP rights (or something similar) found in many Anglo-American nations.<<ref "1">> Before we dive in, we need to lay a basic groundwork. The topic of property is plagued with problems of definitions and challenging conceptual analysis, and we should briefly consider what we mean by property right. 

Generally, a property right is a bundled set of rights for some set of people concerning the access, use, or control of some set of objects. The origins of these rights are usually a set of rules (positive laws, moral laws, etc.). These rules bind a certain society or population. Property rules generate property claim rights for some set of people and corresponding obligations toward the rights-holder(s) regarding that property for another set of people. There are different classes of property rules and rights, including private, common, and collective. We will focus on private property.

Private property rights are often what we have in mind when we think of property rights. Broadly, some private entity (an individual or corporation) has some set of rights to access, use, or control some set of objects. The bundles of control, access, and use rights tend to clump together with a similar scope for private property rights. To a very significant extent, the control over private property belongs to the private property rights-holders.<<ref "2">> Of course, private property rights don’t necessarily have to include absolute control over some set of objects.<<ref "3">> 

Legions of philosophical perspectives surround the theory and practice of property rules and rights. The view I will dissect in this paper aims at moral, private IP rules and rights. This narrows the discussion considerably, since much of the literature on property focuses either on a legal realm or on traditional objects of property rights (e.g. land and other strictly physical objects). In this paper, we will see a tension between proponents of private IP rights and what I believe is the more intuitive and defensible position: a non-interference right which enables us to use our minds as we see fit.<<ref "4">>

There are different kinds of philosophical accounts and justifications for the lineage and development of moral, private IP rules and rights. Outside of Hegelian accounts, we generally hear two kinds of arguments today in favor of moral IP rights: utilitarian arguments concerning incentives and quasi-Lockean stories involving entitlement to the fruits of intellectual labor. 

As we shall see, Lockean IP theorists need a convincing story which explains the metaphysical and physical relationships between objects and owners. In contrast, utilitarians don’t necessarily need to provide that sort of story. Utilitarianism can demand national holidays for Cthulhu or require other ostensibly bogus obligations or rules, and that would be fine if it maximized utility. Utilitarians need to tell us a potent epistemic story. Lockean theorists, however, need to present us with a potent ontic story.<<ref "5">> Many of us may already buy the Lockean ontic story for the usual sorts of private physical property, but it is unclear whether a clean, relevant, and comprehensive ontic story can be told for intellectual property.

We will focus on a modern, quasi-Lockean perspective.<<ref "6">> The basic quasi-Lockean story for private physical property seems to have the ring of truth to it for most people. At least for physical objects, this account sketches a genealogical distribution and justificatory story which many of us take for granted. That foundational story, on which the IP story is built or extended, goes approximately like this:

Objects generally start out as being unowned, with the exception that we own ourselves to some significant extent. We have a basis for thinking that objects (since we are objects) can be owned. Further, we have practical reasons and needs for the use of resources and objects. Many objects are finite, and we assume there must be moral rules which govern how these unowned objects are appropriated and/or distributed.<<ref "7">> 

Barring some set of conditions, when someone becomes the first to occupy or fittingly mix his labor with some unowned object, many of us have the intuition that he appropriates that object.<<ref "8">> Roughly, he appropriates this object because he owns himself and his labor, and therefore he is entitled to the suitable fruits of his labor. In particular, his entitlement to the fruits of his labor only applies to labor upon objects he already owned, or unowned objects.<<ref "9">> Somehow, his labor imbues an object, perhaps becomes part of that object, and since he owns his labor, he appropriates the object. Exactly how this plays out is not clear. There could be many ways to explain this particular part of the story.

What we have here, then, is some set of some set of moral rules which we believe generate some set of private property rights for him with regards to the object he appropriates. Unless there are some intervening reasons or moral obligations, he will have a bundle of moral, private property rights to that object. Applying this process over and over, and in conjunction with the valid transfer of acquired properties (consensual trading, selling, giving, bequeathing, etc.), we see the skeleton of a broad genealogical picture of moral, private property rights and a basic justification.

There are many objections one might raise to this Lockean story, particularly regarding labor mixing. The notion of imbuing unowned objects might sound mystical to certain folks. Further, it isn’t clear precisely what rights resulting from mixing one’s labor ought to be included in the overall bundle. However, I’m not trying to debate the merits of this foundational, unextended quasi-Lockean perspective for physical objects. Many people at least see some merit in the notion that we own the fruits of our labor to a large extent. There seems to be a common sense notion that when you chop down an unowned tree and build a chair from it, you own that chair. Let’s assume the story works.

The quasi-Lockean IP theorist claims we can extend this basic theory for physical objects to intellectual objects. Can and should this story be extended to include intellectual property? Intellectual labor is a kind of labor, after all. At the very least, you surely own your thoughts, which is a kind of fruit of your intellectual labor. What other possible products of intellectual labor are you justified in morally, privately owning?

''Extending the Physical Property Framework for Intellectual Objects and Labor''

As far as I can tell, there isn’t a thorough, well-articulated, soup-to-nuts account of the IP extension of the Lockean physical property theory. What I have found is a loose collection of generally agreed upon assumptions and claims surrounding a sketch of an extended ontic story.<<ref "10">> It seems many IP theorists take such an account for granted and work from these assumptions; they are more likely interested in broader issues and questions which arise from or before such an account rather than the mechanics and internals of the account itself. That’s fair, though, since we have to start somewhere in the dialectic. What follows is my attempt to charitably construct an outline of this standard account. I will eventually argue that when we take a closer look under the hood, such an account is unintuitive and lacking in explanatory power, but I want to do my best to present their case.

For the standard Lockean IP extension, a litany of activities is thought to fall under the umbrella of intellectual labor, including inventing, innovating, writing, recording, systematizing, creating, and discovering. What are the fruits of intellectual labor? Beyond our mere thoughts and the physical objects we create, the standard answer is some sort of abstract idea, a metaphysical object or entity, often referred to as an intellectual object. 

We are forced to ask, then, what is an intellectual object? This is a tricky question, and the standard approach generally tries to evade talking about the critical metaphysics underpinning an answer. We seem to assume some robust sort of metaphysics in asserting the existence of these intellectual objects, although it doesn’t have to extend all the way to an extreme framework like Platonism.<<ref "11">> The answer to this question is not clear, and that’s okay. It may be difficult to defend a robust, systematic position in metaphysics (especially if you focus on ethics and political philosophy). The standard approach jumps ahead and answers a different question: What objects are the IP rights targeting? If we can answer this question, perhaps we can begin to clarify the fruits of our intellectual labor.

There seem to be two paths one could take. One path, the intellectual object thesis, is the claim that an IP rights-holder has a bundle of property rights targeting the intellectual object which has been created or discovered. This path entails the possibility that metaphysical entities or artifacts can be owned; they are themselves the targets of IP rights. The other path, the manifestations thesis, is the claim that an IP rights-holder has a bundle of rights concerning the use and distribution of humanly-made physical manifestations or expressions of an intellectual object. On this view, IP rights target the physical instantiations of intellectual objects, not the intellectual objects themselves. 

If the Lockean IP extension is built on the intellectual object thesis, it has a targeting mechanism quite similar to the underlying physical theory. Essentially, the fruits of intellectual labor are intellectual objects, and those objects are the targets of IP rights. The initial difference between this version of the extension and the underlying account can be found in what type of objects are targeted by the property rights. Directly owning metaphysical entities, like intellectual objects, is a significant departure from the physical theory. The targeting principles of this extended theory seem to parallel the unextended account, but the ontic story may be a bit different and more complicated because the type of object targeted is so dissimilar.

If, on the other hand, the IP extension is built on the manifestation thesis, it does not depart from the unextended account in terms of the type of object targeted by property rights. Property rights from both this extension and the underlying theory exclusively target physical objects. The manifestation thesis based extension radically departs from the unextended theory in the targeting mechanism. 

For unextended physical property rights, the object with which you mix your labor is what you directly own. According to an extension built on the manifestation thesis, however, you don’t own what you’ve created or discovered precisely, which in part is thought to be the intellectual object; rather, you have property rights to the corresponding humanly-made physical manifestations of that intellectual object.<<ref "12">> As Adam Moore explains it:

Rights do not surround the abstract non-physical entity, or res, of intellectual property; rather, intellectual property rights surround the control of physical manifestations or expressions… Intellectual property rights are rights that surround control of the physical manifestations or tokens of ideas.<<ref "13">>

This shift in targets may not be without reason. First, dealing with physical manifestations has far less mystique about it. This shift in targets grounds the discussion for folks who want as little do with metaphysics as possible. Secondly, when it comes to enforcement (which isn’t necessarily something a moral theory has to be concerned with), it may be more practical to target the physical instantiations. Lastly, some people might be persuaded by this case: if an intellectual object were directly owned by someone else, then I might be violating his rights simply by thinking about that object. This would be intolerable to many of our intuitions, and might lead someone to say the intellectual object isn’t directly owned, but rather the physical objects corresponding to it are the targets of IP rights.<<ref "14">> 

What it means to create a physical manifestation of an intellectual object can be non-obvious. Here is a fairly straightforward example: when you compose your own piece of music, you have created or discovered some intellectual object specifying a series of sound waves. The abstract specification or configuration of sounds waves is the intellectual object you’ve created or discovered.<<ref "15">> The corresponding .wav file on your hard drive is a physical expression of that intellectual object. If I were to code, record, compose, or copy that precise series of sound waves onto a CD, I would have created a physical manifestation of the intellectual object you labored to create or discover.

Given the extension built using the intellectual object thesis, you own the intellectual object directly. That specification of sound waves is yours. I’ve violated your IP rights by not getting your consent to use your intellectual object. On the extension built on the manifestations thesis, however, you own the physical manifestations, including the CD I burned. Presumably, if you had IP rights surrounding the physical manifestations of that intellectual object, then I’ve trampled on them. 

What if I created an adjusted manifestation, whereby I changed just a tiny bit of one of the sound waves? Overwhelmingly, and regardless of which thesis is selected for the extension, IP theorists believe I’m still violating your rights. My adjusted manifestation is considered a derivative of your work. That my manifestation was similar enough to your manifestation or the corresponding intellectual object is sufficient for claiming I’ve violated your IP rights. 

We can flesh out this view in at least two ways. It is possible that when you create or discover an intellectual object, you’ve really created or discovered a family of them which are sufficiently similar. Every manifestation would then directly correspond to some mirror-image intellectual object. The intellectual object thesis might lean in this direction. Another possibility is that you’ve only created or discovered a single intellectual object, but there are families of manifestations similar enough to the original, mirror-image manifestation.<<ref "16">> The manifestations thesis may be in a better position to adopt this view.

Eventually, however, there comes a point where I have made so many adjustments to the series of sound waves that I have a different song entirely, and, essentially, an intellectual object which you didn’t create or discover. 

While unstated, it may be assumed that intellectual property rights do not exist until there is some kind of humanly-made physical manifestation of the intellectual object. Presumably, this is for a practical reason: how else would we know someone had come up with or discovered an intellectual object? Technically, however, a moral theory isn’t conceptually bound to such practicalities.

Vitally, and regardless of the thesis selection, IP theorists believe the domain of protected objects is a limited subset of all intellectual objects. This domain is comprised almost entirely of works of copyright, patents, trade secrets, and trademarks. Each subdomain is generally associated with a different bundle of rights.

Those are the essential background points. There are numerous other factors and possibilities we could take into account. For example, some Lockean IP theorists may wrestle with possible proviso considerations, such as a spoilage or waste proviso, a charity proviso for those in extreme need, or the standard “enough, and as good left for others” sufficiency proviso.<<ref "17">> Other theorists may appeal to a more strictly historical Lockean perspective, attempting to ensure supreme and detailed compatibility between historical Lockean theory and an IP extension.<<ref "18">> I’ve set aside these kinds of considerations since I’m simply after the core and most widely accepted stance.

Given this standard background, the story of this quasi-Lockean IP extension for intellectual objects and labor goes something like this:

Someone intellectually labors; she creates or discovers a previously non-existing or undiscovered intellectual object. If the intellectual object falls into one of the protected subdomains, then either the humanly-made physical manifestations of that intellectual object are candidates for IP protection (manifestations thesis) or the intellectual object is a candidate for IP protection (intellectual object thesis). Using the manifestations thesis, the current and future humanly-made physical manifestations of that intellectual object will be the targets of her IP rights. Using the intellectual object thesis, her IP rights will target the intellectual object.

Since she owns herself, and she owns her labor, including her intellectual labor, then she will appropriate either the intellectual object or the humanly-made physical manifestations corresponding to the intellectual object she intellectually labored to create or discover. 

Barring some set of conditions or intervening moral obligations (presumably analogous to the unextended physical property theory), she will have a bundle of private, moral IP rights to either the intellectual object or the physical manifestations of this intellectual object, wherein the exact bundle is specific to the subdomain of the intellectual object. This bundle includes property rights to derivatives. 

At first glance, this seems like a reasonable story and a fairly appropriate extension of the Lockean theory for physical property rights. Many people seem to buy it. Creators or discoverers of intellectual objects are compensated for their intellectual labor. It feels like justice has been served when that occurs. While that is alluring, we must ask: Does this IP story work? Does it satisfactorily extend the initial physical theory? Do we need this theory? 

Almost everyone would agree that when you chop down an unowned tree and build a chair from it, you own that chair. IP stories, however, don’t seem as intuitive as this chair story because there are significant differences, glitches, and gaps. The rest of this paper is devoted to examining problems with this sketch and considering the space of arguments and dialectical moves available to the quasi-Lockean IP theorist to rebut these challenges. 

''Non-Rivalrousness and the Manifestations Thesis''

There seem to be at least two exceptionally compelling and intertwined reasons for wanting moral, private property rules and rights.<<ref "19">> First, many vital resources are finite, and we want a moral framework to account for fair and legitimate appropriation and private ownership of those scarce resources.<<ref "20">> Second, barring some intervening considerations, you should own the fruits of your labor, lest society verge on mass theft and possibly some form of slavery.<<ref "21">>
 
Generally, for physical objects and properties, both reasons matter. However, it is not clear that both reasons are relevant enough to intellectual objects and labor to result in IP rules and rights. In particular, intellectual objects are widely considered non-rivalrous. I can use an intellectual object (e.g. thinking about it or creating a physical manifestation of it) without directly impairing anyone else’s ability to use that intellectual object. 

An intellectual object can’t be consumed or destroyed. We can all simultaneously use it. Unless we have really good reasons showing otherwise, shouldn’t everyone have fair and complete access to non-rivalrous objects? Do we need a private property theory for non-rivalrous objects? It doesn’t seem like we do. 

Consider the number 2. This is an intellectual object. We can’t consume or destroy it. We can all simultaneously use it. We can all think about it at the same time. We can all concurrently create physical expressions of it by writing the numeral down on a page. We can all employ it in counting our thumbs without impairing each other. Like all other intellectual objects, its consumption is non-rivalrous. It is radically different from any physical object, since only a finite set of people can use a physical object in any given period of time.  The number 2, unlike physical objects, is available to everyone for all time.

At least to my intuitions, the obvious starting place for non-rivalrous objects, such as intellectual objects, would be no property rights, or perhaps a general right to non-interference concerning the access and use of those non-rivalrous objects.<<ref "22">> Fair and unlimited use is always possible. We need fantastic reasons to justify limiting the initial freedoms of people, and it isn’t easy to see why we need to put restrictions on the use of and access to non-rivalrous objects.<<ref "23">> 

I am not claiming that IP rights are irreversibly or conceptually illegitimate because intellectual objects are non-rivalrous.<<ref "24"> Rather, the non-rivalrous aspect of intellectual objects are significant prima facie reason against private IP rights, one which may be overcome with an effective argument. The non-rivalrous nature of intellectual objects shifts the burden of proof onto the Lockean IP theorist regarding why these non-rivalrous objects can and should be privately owned, particularly via labor-mixing acquisition.

Note, however, a Lockean IP theorist could rely upon the manifestation thesis, and in doing say claim that intellectual objects aren’t directly owned. On the manifestation thesis, IP rights target the physical manifestations of intellectual objects. Physical objects, however, are finite and rivalrous. Thus, one path available to the IP theorist for avoiding the issue of justifying the private ownership of non-rivalrous objects is by claiming the objects at stake here are actually rivalrous – namely, the physical manifestations.

Assuming we buy the manifestation thesis, if the only objects which are owned in this IP story are physical objects, then why do we need an IP story at all? We already have a theory to explain how physical objects are acquired. Why doesn’t the unextended Lockean property theory already explain the phenomena? The IP theorist relying on the manifestation thesis must offer a convincing argument for this. 

Here is an example of how the unextended quasi-Lockean property theory for physical objects might operate:

Let’s say you take the time to paint a fantasy landscape. You labored on physical objects previously unowned or owned by you, and the result is a painting you now own (which just so happens to correspond to a particular intellectual object). You then proudly show me your painting, and I love it. Later on, I paint my own fantasy landscape identical to yours (corresponding to the same intellectual object). I labored on physical objects previously unowned or owned by me, and the result is a painting I now own. That these paintings share the same intellectual object borders on irrelevant to the matter at hand. On the unextended theory, we each own our paintings that we labored to create. We both receive the actual fruits of our labor, the physical objects we each created, and that seems to be the end of the story. 

The same kind of story could be told in countless different ways, whether it’s about making a hat for ourselves, farming, or making a fire by rubbing sticks together. Any kind of human labor is going to require intellectual labor, and the correspondence to intellectual objects just isn’t relevant to the resulting rights. If we take the quasi-Lockean IP argument to be claiming that one owns the physical manifestations of intellectual objects, rather than the intellectual objects themselves, then it isn’t clear why we need to extend the basic, physical Lockean story. True, your labor required some intellectual labor, but what kind of labor doesn’t? 

Further, why should I not receive the fruits of my labor? The IP theorist must provide a compelling case. We need to see why it matters, in terms of ownership rights, that I’ve duplicated your work.

The IP theorist may be tempted to argue that you put forth more effort to create your work of art than I did, and so it isn’t fair that we both arrived at owning identical objects. There are at least two problems, however, with that claim. First, the results of our labor are not necessarily identical. For example, you owned your piece of art before I owned mine (many differences in results may follow from that). Second, even if the results of our labor are identical, is it really morally relevant in a Lockean framework that you worked harder for your results? 

Not everyone finds themselves in equal conditions genetically or circumstantially, and sometimes it takes differing amounts of labor to arrive at the same results. If the foundational Lockean perspective is actually going to drive the extension, it would be improper to dock people for having intellectual advantages which were outside their control. That simply isn’t what the Lockean perspective is about. I had a circumstantial advantage you did not have in creating my painting, but that wasn’t entirely up to either of us, and I don’t see why it should affect either of our ownership rights in a strictly Lockean story. 

The IP theorist may be tempted to fight back and claim that I’ve stolen your labor, even if only indirectly. But, how? Did I, to any degree, take anything from you or extract labor from you without your consent? No. You consented to everything you did. I didn’t take your painting or labor from you. I took nothing from you. It is up to the IP theorist relying on the manifestations thesis to demonstrate the theft occurring in this case which motivates an extension of the basic Lockean account. 

I agree with the intuition that there is something cosmically unfair about our labor/results ratio. A Lockean account, however, is the wrong story with which to argue about the type of unfairness found here. Fairness in the Lockean story alone is about being entitled to the appropriate fruits of one’s labor and preventing slavery, and not really the end distribution of ownership rights given how much we’ve labored.

Assuming we buy the manifestations thesis, the IP theorist needs to provide us a good argument for why we need to extend the basic Lockean story for physical objects in the first place. The IP theorist needs to convince us that theft is occurring, and I don’t see how they can when they assume that only physical objects are owned. Essentially, the path to avoiding the justification of the ownership of non-rivalrous objects, via switching the targets of ownership from intellectual objects to the corresponding physical objects, is fraught with challenges. 

A Lockean IP extension built on the manifestations thesis is likely unacceptable for at least two reasons. First, we don’t have a good argument for why we should switch targets. If we assume the fruit of intellectual labor is the intellectual object, then why isn’t that the target of IP rights? Surely it would be the obvious choice. Second, we say you “use” an intellectual object when creating a physical manifestation of it. The rights which prevent me from creating a physical manifestation of the intellectual object you created or discovered are rights concerning the use of that intellectual object in a particular way. But that seems to imply direct ownership of the intellectual object.  

The best version of the Lockean IP extension seems to rely upon the intellectual object thesis rather than the manifestation thesis. For the rest of the paper, then, I’m going to assume the path of the manifestations thesis is not taken. Instead, I take the quasi-Lockean IP theory to be concerned with the ownership of intellectual objects themselves.<<ref "25">> But, if we take up the intellectual object thesis, then we go back to the initial problem with the private ownership of non-rivalrous objects. The burden of proof is on the IP theorist to demonstrate how and why a non-rivalrous object could be privately owned to any degree.<<ref "26">>
 
Perhaps the claim that laborers are entitled to the appropriate fruits of their labor might justify the private ownership of these non-rivalrous objects. If so, then it is up to the IP theorist to demonstrate why the reasons for entitlement are so potent they override our initial non-interference rights to non-rivalrous intellectual objects, enabling the private ownership of these non-rivalrous objects via intellectual labor mixing. 

It makes sense why we want a property theory for being entitled to the fruits of our labor regarding rivalrous objects. When someone steals the taco salad I’ve made, they’ve stolen my labor. In contrast, when someone builds an identical taco salad after watching me build my mine, I still have my taco salad. My labor hasn’t been stolen from me. Maybe building his taco salad was easier for him, but so what? I could have just kept my taco salad, construction techniques, and recipe a secret, but I didn’t. In this situation, where has the theft occurred? More importantly, it isn’t clear why I should own a non-rivalrous object such as the intellectual object of a taco salad. We need reasons to justify a property theory for objects which don’t intuitively seem to need one.

''Unexplained Intellectual Objects, Derivatives, and Mechanics of Appropriation''

Since the IP theorist cannot or should not employ the manifestations thesis, then he must instead argue that one owns intellectual objects themselves. Justifying the private ownership of non-rivalrous object alone is an uphill battle. However, a Lockean account of IP is open to a network of other challenges as well. There are significant gaps to the operation of this ontic story which need to be explained because limiting our freedoms via private IP rights requires a worthy and comprehensive justification.

The standard account generally doesn’t specify many elements of the metaphysics in the ontic story. I sympathize with the desire to minimize the reliance upon metaphysics, but it seems reasonable to ask for a clearer account of the nature of intellectual objects and how the process of appropriation of these abstract objects functions. 

The fact is that intellectual objects are less understood than, and very different from, trees and chairs.'<<ref "27">> To arrive at private IP rights, a significant amount of work needs to be done to show how the analogy between the physical and the intellectual or abstract honestly holds, but that requires understanding the nature of intellectual objects and how ownership could possibly operate in the first place.

We don’t know if an intellectual object is actually a single intellectual object or if it is really a collection of many intellectual objects. We don’t know how intellectual objects relate to each other, either. It is unclear where derivatives end and original works begin. We don’t know how or why to draw lines of similarity and define derivatives. 

Science provides us a clean causal story for physical objects, and the unextended Lockean theory seems to add only a pinch of metaphysics to the ontic story. Lockean IP stories, by comparison, aren’t as clear (perhaps unacceptably so). Intellectual objects don’t have a nice timeline; we are much less capable of understanding their beginnings and ends. We might not even know precisely on what we intellectually labor. We have a fairly clean ontic story for physical objects and property, in which we work on unowned physical objects or objects we already own. We don’t have a similarly clean story for intellectual objects and labor. 

We can’t just bypass or merely guess at how these concerns work out. It is crucial to have some understanding of these sorts of issues in order to justify and know our various IP rights and obligations. The IP theorist needs to show he isn’t making it up as he goes; we need to see why the practical IP rules he enshrines aren’t arbitrary.

We need to know what counts as violating IP rights. For example, duplicating a modern Mona Lisa is a violation, but it isn’t clear if duplicating just a quadrant of the Mona Lisa is a violation (or why). It isn’t clear what principle we would use to determine how many particles must be duplicated or unaltered before a tribute to the Mona Lisa is a violation. 

Similarly, from our music example: at some point, I can speed up your song enough that it is a new intellectual object. We don’t know how much I need to speed up the song before it is no longer under your umbrella of protections. What rule governs this distinction? Further, we don’t really know why it is acceptable for me to play 5 seconds of your song on the radio without your consent, but not 50 seconds.<<ref "28">> For whatever rule we might use, it is hard to see how the rule itself could be defended on strictly Lockean grounds.

Unfortunately, IP rules and rights tend to generate conflicting intuitions all the time. Consider a case in which I’ve removed 50% of the sound waves from the original piece of music; surely that isn’t a protected derivative. Precisely how much is necessary to remove in order to avoid generating a derivative is another issue, but let’s assume 50% is fine. What if I’ve removed 50% of the sound waves, but none of the removed sound waves were in the range of frequencies which humans can hear? Or, consider the fact that our auditory systems are scientifically known to play tricks on us (filling in the gaps); what if I made radical alterations to the sound waves (producing many gaps), but humans couldn’t sense the difference? Suddenly, many IP theorists would be inclined to go the other direction and claim infringement. We need good rules that draw bright lines to answer these questions.

If you make a detailed mural on a wall, and I duplicate it in a tiny bitmap image, I’m still thought to be violating your rights. Lossy-compressed works of art are still derivatives of the original. Is there a point at which I’ve made such a tiny, compressed image of your mural that it is no longer considered a violation of your rights? I don’t know how or why we can draw that line. It can go the other direction too. If I make a tiny bitmap image first, and then you make a detailed mural on a wall which just “fills out” the details, you seem to be violating my supposed rights. Why and how?

IP theorists accept that computer generated objects are protectable under IP rules. This is interesting because it allows for a brute force thought experiment which applies to most kinds of IP. For example, it is extremely common for images and music to be computer generated today. What if I systematically create all possible previously unowned pieces of music and image bitmaps on a supercomputer?<<ref "29">> It seems like I would have an incredibly extensive set of IP rights. Anyone making any sort of music or image would be violating my IP rights. This is intolerable to the intuitions of most IP theorists, but they have to give reasons why I wouldn’t have appropriated all of these corresponding intellectual objects.

Consider a case in which you invent the combustion engine, a 2-stroke engine which can only use 91 octane gasoline as fuel. Do you have an IP right to the very general notion of a combustion engine or only a specific kind? To some intuitions, it would seem like I’m still violating your IP rights if I build an almost identical combustion engine which can only use 85 octane gasoline as fuel. What if I built a 4-stroke engine? What if I built a similar engine for diesel or even a non-petroleum fuel altogether? It is unclear when progress in the arena of engines is no longer a violation of your IP rights, but rather something counted as my invention. An effective IP theory requires justified principles or rules which draw these sorts of lines.

Or consider the case of the wrap dress. Diane von Fürstenberg designed the wrap dress in 1974. Despite the fact that von Fürstenberg is still living and still designing fabulous clothes, the wrap dress pattern, an intellectual object, is not considered to be her IP – anyone is free to buy a knock-off version or create their own. Why isn’t that intellectual object protected like other sorts of designs? It isn’t clear why Fürstenberg hasn’t acquired IP rights in these cases, and why these knock-offs, which appear to be derivatives of Fürstenberg wrap dresses, aren’t considered actual derivatives or duplicates.
  
As far as I can tell, all intellectual properties have these sorts of problems. These cases demonstrate how our understanding of intellectual objects and derivatives is filled with guesswork. My gut instinct is to claim derivatives are actually different intellectual objects entirely, and if the Lockean IP theory works at all, it should only grant IP rights to the original, but none of the derivatives.

If we don’t have effective reasons to include derivative objects under the umbrella protections of the original intellectual object, then all that is left are ownership rights to the original intellectual object. Depending on how detailed we take an intellectual object to be, that could mean IP rights are much slimmer than we thought. If these objects are detailed enough, it is possible that only one physical expression could correspond to an intellectual object, but then, by definition, no duplicate would really correspond to the intellectual object.<<ref "30">> Defending derivatives is likely crucial to the IP theorist’s view, but it is not obvious why we should buy into the notion that there are derivatives.

Even if we were to get past some of these line-drawing metaphysical problems, the actual mechanics of appropriation and the resulting IP rights aren’t clear, either. For example, what if multiple people independently create/discover an intellectual object?<<ref "31">>  Many timeframe and epistemic issues arise from this which fuzzes our understanding of IP rights and appropriation. 

If I’m the first person to create or discover an intellectual object, then supposedly I’m the owner. It is quite unclear why my creating or discovering an intellectual object at some point in time and place should result in rights which have anything to do with your independently creating or discovering the same intellectual object at some other point in time and place. An IP theorist could claim that we both somehow deserve shared IP rights, although it isn’t clear what those rights should look like (nor how we might know there was another creator/discoverer who also had shared rights). 

There are also many categories of intellectual progress which require stepping-stones to advance. Consider a case in which I’m inventing the car. It seems like I’m relying upon numerous other intellectual objects which I don’t own. I’m standing on the shoulders of giants.<<ref "32">> Am I allowed to invent the car if you own the wheel? Even if I can invent it, why would I own it? Almost any creation or discovery of an intellectual object relies upon a web of other intellectual objects (which supposedly may be owned). It is not clear if such creations or discoveries should result in IP rights, and even if they did, it is unclear what the bundles of IP rights should be, how they are distributed, and why. 

Further, is it enough that I simply dreamt up the basic notion of a car in order for me to own that intellectual object?<<ref "33">> That might not be enough. How much of the schematic do I need to have generated before I’ve really created or discovered the car? It would seem odd to require a working prototype; many patents are granted without one.  We need to know how much and precisely what kind of labor is necessary and sufficient for acquiring an intellectual object. 
 
For example, very recently, a nature photojournalist David Slater was in Indonesia when a Macara nigra monkey swiped David’s camera and took a famous selfie.<<ref "34">> Who has the IP rights to this photograph? Some people think Slater performed an appropriate kind and amount of work to have acquired the rights simply by venturing into the jungle of Indonesia, taking pictures, and accidentally earning this prize experience. Others think his luck just isn’t sufficient; after all, David didn’t take the picture, the monkey did. The IP theorist has to provide a theory comprehensive enough to draw the appropriate line and justify it.

These are many gaps in the ontic story which the quasi-Lockean IP theorist needs to fill in order for us to even understand what it means to be entitled to the fruits of intellectual labor. Without knowing what it really means to be entitled to the fruits of intellectual labor at this practical level, it is hard to see why we should agree there is any entitlement.

''Unexplained Domains of Protected Intellectual Objects''

Not all intellectual objects fall into the domains protected by IP. These kinds of domains are generally codified in Anglo-American laws, but they also happen to be, by and large, what IP theorists are trying to defend and justify.<<ref "35">> Unfortunately, it isn’t clear how to provide strictly Lockean arguments in favor of these particular domains and their various quirks. 

The different domains of IP each come with a different bundle of rights. For example, a copyright is associated with rights and obligations quite different from trade secrets or patents. In a utilitarian theory, we might be able to provide significantly dissimilar utility stories for intellectual objects divided into domains of copyrights, trademarks, trade secrets, and patents; hence the differences in the bundles of rights associated with these domains might be justified. Unfortunately, it isn’t clear how the differences in the domain-specific bundles of rights can be justified on exclusively quasi-Lockean grounds. Additionally, this may be a disanalogy with the unextended physical property theory where, unlike the IP extension, instances of private appropriation of physical objects generally result in a highly similar kind of bundles of rights.

These domains are accompanied by some odd bundles of rights which aren’t easily explained. There is a tradition of upheaval precisely at the point of identifying which bundle of rights is awarded for each domain; IP theorists and practitioners disagree on the correct bundles. A copyright, for example, hasn’t always been a lifetime property right (alternatively, some copyrights only extend for a certain number of years beyond the life of an author), nor is it necessarily a kind of property right which can be transferred to others indefinitely.  That you own something only for a limited period of time, and that you have impaired or limited control rights is odd. If there are Lockean IP rights, why would the ownership durations and control rights of these properties vary? It requires an explanation. We can justify these quirks with incentives-based utilitarian reasons for creative expression, but it isn’t clear how the strictly Lockean IP theorist can defend such quirky limitations on bundles of private property rights. 

Consider patents, which award a powerful monopoly over all expressions and implementations of an intellectual object for decades. Eligibility for the bundle of rights afforded by patent protection requires non-obvious novelty and usefulness. Maybe we can quickly defend novelty in terms of differentiating intellectual objects and ensuring a new intellectual object has actually been created or discovered.<<ref "36">> What rule draws the lines for usefulness and non-obviousness, and why should we agree to it? Even if we could provide this on Lockean grounds, we also need reasons why usefulness and non-obviousness are necessary for these IP rights. 

Trade secrets can have quirky bundles of rights, as well. For example, trade secret rights lapse when the owner communicates the secret to the public. But why should that communication matter? I can’t think of another kind of property in which my telling you about my property results in the lapse of my ownership rights to it.<<ref "37">>  We can see the word “secret” is in the name of this domain, but the Lockean IP theorist has to give us reasons why concealment could be so crucial for having and maintaining an IP right in the first place. 

I have sympathy for trade secrets. For any intellectual object which I alone know about, there is a natural pseudo-monopoly to that intellectual object. If I discover the recipe to the greatest hot sauce of all time, and I only make it for myself, and I never allow others to know about it, then it seems to result in something like an IP right. It would be immoral to torture me to release my secret information or to hack into my computer for my secret recipe.  Of course, the wrongness of these acts has little or, indeed, nothing to do with violating my supposed IP right. This natural pseudo-monopoly doesn’t need to be explained in terms of a real property right. If you aren’t precluded from figuring out the recipe for yourself and making your own hot sauce, then my secret is just a secret, and not obviously an IP right. An IP right should preclude you from discovering the recipe and making your own hot sauce. It isn’t clear why, on Lockean grounds, a trade secret should result in an IP right rather than just a natural pseudo-monopoly.

Trademarks are no exception to this unexplained quirkiness either. Trademarks are restricted by common, everyday language. You can’t own a word or symbol (or any other object which communicates semantics) which is an ordinary expression. What rule defines ordinary everydayness? What if trademarked words or symbols become ordinary expressions? We need clear rules and, vitally, justifications for those rules. While I can see how the utilitarian position might explain and justify these issues, I don’t see how the Lockean position can.

Admittedly, I am very sympathetic to the notion that people are morally obligated not to lie about who they are or who produced a product in the vast majority of circumstances. For example, I wouldn’t want Blackwater Security Consulting masquerading as UNICEF or the Red Cross since BSC and its various agents, services, and products don’t deserve the kind of respect or trust earned by entities like UNICEF and the RC. At first glance, that does seem like a trademark issue. These kinds of obligations not to deceive, however, aren’t necessarily tied to intellectual labor-mixing or anything which the Lockean IP extension provides.<<ref "38">> We can give other moral reasons not to deceive. 

Going back to the painting example, if we replace the painting with some other object, let’s say a chair (which also has a corresponding intellectual object), the IP theorist would surely claim no theft has occurred when I duplicate your chair. The chair could be a piece of art and/or an invention (I suppose it could technically fit any of the domains), but the IP theorist doesn’t think it can be covered by either copyright or patent protections (even if you were the first person to create a chair or a chair like that one). Why is the intellectual object corresponding to the physical painting ownable, but not the intellectual object corresponding to the physical chair? We can fabricate a utilitarian argument for this difference, but it is not obvious how the quasi-Lockean IP theorist can offer an effective argument for why certain intellectual objects which initially appear to fall under the protected domains end up not being protected. 

More problematic, and broader as well, the IP theorist needs to give a clear and effective argument for why only certain domains of intellectual objects are protected in the first place. This division needs an explanation; else the targets of IP protection seem arbitrary. What is the domain creating rule?  Why should only certain kinds of fruits of intellectual labor be open to ownership? These domains which are assumed to be protected require justifications.

I worry the quasi-Lockean IP theorist is forced to inject utilitarian justifications into his argument. In most IP discussions, this is generally how the domains are justified. I’m not against a mixed-method approach to justifying IP rights. The problem, however, is that this injection sullies the Lockean approach. The Lockean approach is interested in applying principles of justice, not utilitarian distributions. Once you bite the bullet in employing utilitarian justifications, why not stick to utilitarian arguments for IP? So many problems disappear when you do that.<<ref "39">> I’m going to set this aside since I’m investigating the merits of a purely quasi-Lockean account. Unfortunately, I don’t see how this justificatory and line-drawing work can be accomplished without utilitarian reasons.

There may be strictly Lockean paths for justifying domains, but they aren’t easy to provide. Consider the domains of mathematical equations, numbers, and other logical intellectual objects. These domains of intellectual objects are resoundingly rejected as being ownable. Why is that? It is common sense to us, but we need reasons for why numbers and equations don’t fall into the domains of privately ownable intellectual objects if there are somehow other intellectual objects which can be privately owned. 

The Lockean IP theorist may respond that these intellectual objects predate us.<<ref "40">> We merely discover them. One path available to the Lockean IP theorist is to claim intellectual objects like numbers and equations can’t be owned because they are discovered and aren’t created. Between the intellectual objects corresponding to a painting and a number or equation, it seems somewhat plausible to think that the painting’s intellectual object is created while the number or equation is discovered. Perhaps the distinction between discovered and created intellectual objects is a relevant way to cordon off the privately unownable intellectual objects from the privately ownable. But, even this view may generate conflicting intuitions for the IP theorist.

There is a world of questions and problems which arise from the philosophies of mathematics, information science, and computer science that bears upon the problem of domains for IP. For example, many assume computer programs are the kind of intellectual objects which can be owned. But, depending on your stances in these philosophies, you may be forced to concede that intellectual objects such as computer programs are mathematical objects. If mathematics can’t be owned, then computer programs couldn’t either. A host of similar problems can arise. Justifying boundaries for domains in Lockean IP theory requires an enormous set of controversial views on ontology.

In any case, an abundance of problems surround the formation and execution of these domains. So much rides on these unanswered issues. If IP theorists can’t provide a good reason for the domains, then it seems more likely that either all non-rivalrous intellectual objects can be privately owned or none can. Since the Lockean IP theorist already agrees that most numbers, equations, and the chair’s intellectual object can’t be privately owned, then none of them can be privately owned on Lockean grounds.

''Non-Interference Right and Exceptions''

I agree we own certain fruits of our intellectual labor. The physical manifestations we create are byproducts of our intellectual labor, and the unextended quasi-Lockean theory for physical objects makes sense of this appropriation. Our thoughts are products of intellectual labor, and we own those (even if we don’t own the corresponding intellectual objects), and that probably has something to do with self-ownership rights. We don’t own all the fruits of our intellectual labor, though. I deny that we own the intellectual objects which we create or discover via intellectual labor. 

Private IP rights acquired via labor mixing mistakenly limit our liberty. These obligations prevent us from creating, discovering, learning, experiencing, copying, building upon the work of others, and using our minds in the ways we want to use them. I’ve tried to point out how quasi-Lockean IP theorists haven’t given us a functional framework of reasons for why and how non-rivalrous objects, particularly intellectual objects, could be owned. Lockean IP theorists haven’t given us sufficient reasons for restricting individual liberties.

Along the way, I’ve suggested an alternative view and what I believe is a more plausible starting place for the Lockean. On solely Lockean grounds, we should either deny IP rights altogether or claim a general non-interference right to use and access intellectual objects. I prefer to think of it as a right to non-interference. This view maximizes our personal freedom and protects our self-ownership. 

IP rights are usually thought of as private property rights, and discussions tend reflect a very narrow conception of what counts as an IP right. My claim that we have non-interference rights to access and use intellectual objects doesn’t fit the normal discourse on the topic. Depending on how we flesh out property rights, it is possible that even the generalized non-interference right to intellectual objects should be classified as a type of IP right, even though it isn’t anything remotely like the standard, private IP rights we usually talk about. If what we mean by an IP right simply is some sort of right to an intellectual object, then perhaps I’m arguing for a kind of IP right.

A non-interference right is basically the claim that it is almost immoral to prevent people from using and accessing intellectual objects. Perhaps we really do have moral duties toward each other to refrain from interfering with how other people use their minds. It’s a positive thing! Denying any and all IP rights fails to capture this obligation and protection. Hence, I prefer to think of my view as promoting our personal rights rather than denying there are any IP rights at all, because I think we generally have moral obligations not to interfere with how people use their minds and intellectual objects. 

Admittedly, I’ve raised a number of objections to private IP rights in this paper, and we might worry a few of them somehow stick to the non-interference right. I’m not convinced, however, that a general non-interference right requires we deeply understand the metaphysics behind intellectual objects. Most of the objections I’ve raised just don’t matter if we aren’t thinking about private IP rights. Essentially, a non-interference right seems far easier to justify and doesn’t seem to require nearly as detailed an ontic story as private IP rights.

Lastly, while I’ve insisted on a non-interference right, it is certainly possible I’m wrong, or that I’ve overlooked some important exceptions. Perhaps I need to take a step back, since there may be unorthodox cases in which intellectual objects can be privately owned, even if not acquired via labor-mixing. The reasons for the possible private IP rights, however, aren’t based on Lockean grounds (although these reasons may be compatible with Lockean thought). Again, these unorthodox cases aren’t usually thought of as being IP rights, but if an IP right is simply a right to an intellectual object, then perhaps these unorthodox cases count.

In taking a step back from my blanket claim of a non-interference right to intellectual objects, I am also going to push back against an overly narrow understanding of IP rights. Just as a non-interference right might not normally be considered a genuine IP right, the exceptional domains for private IP rights which I have in mind are not usually considered genuine IP domains.
 
Perhaps there are certain intellectual objects which no one should use. Consider a doomsday device which can destroy the universe. Maybe that is the sort of intellectual object for which no one should build physical manifestations or even schematics. Presumably, we all are morally restricted from using that intellectual object in some ways. At least on some moral theories (which quasi-Lockeans may accept), we might say that my obligation in this case corresponds to a claim right each other person has against me not to use the doomsday intellectual object in certain ways. That seems to be a very specific bundle of ownership rights to the intellectual object, and it seems to be an exception to a non-interference right.

Maybe only governments and their officials have certain ownership rights to intellectual objects for nuclear weapons. Perhaps nobody except vetted librarians and scientists (for the sake of knowledge alone) should use intellectual objects concerning smallpox. These might be instances of private property rights to intellectual objects, albeit these rights are acquired in odd ways. 

We might interpret certain kinds of personal privacy rights in terms of IP rights. If I had a moral right to have my medical information not used in certain ways by others, then maybe I have a particular kind of IP right. My private data or private intellectual objects are really mine, no matter which server they live on or the paper on which they are recorded. 

Perhaps even censorship, duties against child pornography, and plagiarism can be understood as unique strains of IP rights, even if they aren’t justified via labor-mixing acquisition. This expansion of what it means to have some bundle of ownership rights to intellectual objects isn’t well explored. So many rights and obligations we wouldn’t normally think of as IP rights may actually be IP rights. Depending on how we define property rights, and how we flesh out our various obligations and rights, it is possible that some private IP rights exist.<<ref "41">>

There may be some moral limitations to how intellectual objects can be used, accessed, or controlled, based on claim rights of specific agents, governments, or corporate entities. If there are cases of private bundles of ownership rights to intellectual objects, they don’t seem to be due to any sort of labor-mixing acquisition. These rights are likely justified on other moral grounds. I’m not defending the claim that there are any private IP rights. Assuming the metaphysical framework/story can be structured clearly and reasonably, however, I’m certainly open to the possibility.

In any case, these possible exceptions seem to neither demonstrate the viability of the standard quasi-Lockean IP theory, nor interfere with the claim that we all generally have a non-interference right to use and access intellectual objects. I’ve agreed to the possibility of IP rights, but they are justified on other grounds – specifically, non-labor-mixing grounds. From what I can tell, Lockean IP theorists have yet to offer a potent ontic and conceptual tale which would convince us that there are limits on our freedom of use and access to almost all intellectual objects.

''Conclusion''

Perhaps we can accept some version of the unextended quasi-Lockean theory for physical property rights. There’s just something about chopping down an unowned tree and building chairs you subsequently come to own which is just common sense.<<ref "42">> I don’t see, however, why we should accept the quasi-Lockean IP extension. The standard Lockean IP theory has too many unexplained, and perhaps unexplainable, challenges. We might be able to justify moral, private IP rights connected to intellectual labor via utilitarian or Hegelian accounts, but I don’t see how an exclusively Lockean account can succeed at this particular goal. 

Essentially, I don’t think the quasi-Lockean IP theory should be used to justify the status quo of IP rights (or anything like it). It’s more plausible to think we have a non-interference right to use and access intellectual objects, perhaps with some exceptions for other moral requirements.


-----------

<<footnotes "1" "I’ve done my best to extract the core moral arguments from what is traditionally a legal-oriented set of debates concerning IP. Perhaps not everything will pull apart nicely in this arena; some of the discussion inevitably is forced to borrow from legal perspectives, but we have to start somewhere.">>
<<footnotes "2" "This may sit in contrast to other kinds of property rights, such as common and collective.">>
<<footnotes "3" "I’ve had to paint in broad strokes here. It is important to realize there are, at least conceptually, numerous possible variations of bundles of rights which are species of private property rights.">>
<<footnotes "4" "Some folks might prefer to claim I’m denying IP rights entirely. I appreciate that perspective, although I’m worried it isn’t accurate enough.">>
<<footnotes "5" "This isn’t to say that Utilitarians don’t need to provide an ontic story or Lockeans an epistemic story. Each approach usually faces different challenges. That’s all I’m pointing out.">>
<<footnotes "6" "I say quasi-Lockean because this account is generally not a detailed or strictly historical Lockean account of property. Rather, we’re aiming for the more general and basic Lockean story that already intuitively grips a broader audience of people.">>
<<footnotes "7" "We should note that the Lockean story doesn’t seem to concentrate so much on the distribution itself, but more on what process or principles brought us to a distribution.">>
<<footnotes "8" "Exactly what counts as these barring conditions is an incredibly significant debate. For now, I will assume that the quasi-Lockean view is conceptually open to a wide range of possible conditions, including very stringent conditions that prevent almost any sort of acquisition. ">>
<<footnotes "9" "He can’t, for example, labor on something I own and claim he is entitled to it because he labored on it. From a moral perspective, he has lost his labor and possibly violated my property rights.">>
<<footnotes "10" "See: Himma (2005), (2012); Moore (2012); Mossoff (2012); Tavani (2005); Vaughan (1996)">>
<<footnotes "11" "Generally, IP theorists don’t appear to hold metaphysical nominalist positions or even simply thin views of metaphysics. ">>
<<footnotes "12" "See: Moore (1997); Spinello and Tavani (2005); Hughes (1988)">>
<<footnotes "13" "Moore, Adam D. 'A Lockean Theory of Intellectual Property.' Hamline Law Review 21.Fall (1997): 66">>
<<footnotes "14" "Technically, this isn’t a sufficient reason to be against the direct ownership of intellectual objects. Ownership rights are generally a bundle of rights, and perhaps that bundle simply doesn’t include a claim that no one can think about the object, whether physical or intellectual. That is certainly true of the unextended theory. Yet, this issue of owning and having freedom of thought may spark some intuitions against the ownership of the intellectual objects themselves.">>
<<footnotes "15" "Many intuitions would lean toward creation here, but that could be wrong.">>
<<footnotes "16" "These stories would require different explanations, but both would need to justify how we draw lines of similarity.">>
<<footnotes "17" "Merges, Robert P. //Locke Remixed ;-)//. UC Berkeley Recent Work. UC Berkeley: Berkeley Center for Law and Technology, 2007. http://www.escholarship.org/uc/item/0hs768m2:1256">>
<<footnotes "18" "Hull, Gordon. 'Clearing the Rubbish: Locke, the Waste Proviso, and the Moral Justification of Intellectual Property.' //Public Affairs Quarterly// 23, no. 1 (January 2009). http://www.jstor.org/stable/40441517: 72-78">>
<<footnotes "19" "I am not claiming that either reason is necessary or sufficient for moral, private property rules and rights. I’m open to those possibilities, but I just don’t know for sure.">>
<<footnotes "20" "I am not claiming that a Lockean theory of property is the ultimate explanation of the morally correct distribution of resources, but it may play a role.">>
<<footnotes "21" "These considerations need not be a thick set of barriers. There could many moral obligations which are so strong they override most instances of private acquisition or ownership. Interestingly, one strength of the Lockean approach is that almost any theory can accept this acquisition story, as long as certain constraints are met. This is analogous to how many moral theories can accept that certain ethics cases which meet appropriate constraints simply boil down to utility problems as the last deciding factor.">>
<<footnotes "22" "There are, of course, those who have different intuitions on this matter. Perhaps cultural and generational differences may largely explain the distinct intuitions regarding prima facie rights to non-rivalrous objects. Non-Anglo-American cultures often have strikingly different intuitions on these kinds of matters. Anecdotally, I find many digital natives are more sympathetic to my intuition (granted, that doesn’t necessarily make the intuition correct). In either direction, this is an important assumption. Unfortunately, it isn’t clear that any answer can be justified via arguments alone. While we may be able to continue asking 'why' into regress, at some point, I think we have to make the pragmatic move of putting our tent pegs down somewhere. I assume this is a fair place to do so. The result is that my argument is weaker for anyone who doesn’t share my intuition here.">>
<<footnotes "23" "Technically, even a general non-interference right imposes obligations which limit the freedoms of others. These obligations, however, are generally easy to swallow and aren’t nearly as imposing as the obligations corresponding to private IP rights. ">>
<<footnotes "24" "Himma, Kenneth. //Abundance, Rights, and Interests: Thinking about the Legitimacy of Intellectual Property//. UC Berkeley Recent Work. UC Berkeley: Berkeley Center for Law and Technology, 2005. http://128.48.120.176/uc/item/7r5654bd: 1.">>
<<footnotes "25" "Although many of the objections and challenges I raise will still apply to those extensions which employ the manifestations thesis.">>
<<footnotes "26" "A utilitarian argument from incentives might give us suitable reasons, but Lockean arguments will need something else.">>
<<footnotes "27" "Even the unextended ontic story has its fair share of problems. I see the problems for the IP extension, however, as being far more difficult to defeat. If Nozick pours his tomato juice in the sea, it doesn’t result in his acquisition of the sea. But, unlike IP rights, the unextended physical property theory at least has some clear cases which aren’t ambiguous. The IP theory suffers from far more systematic problems and ambiguities.">>
<<footnotes "28" "At least on strictly Lockean grounds, the whole legal concept of Fair Use requires a non-utilitarian justification.">>
<<footnotes "29" "Given sufficiently low requirements, particularly for lossy-compressible objects, this is a very real possibility. It may be easier to understand the bitmap example here, but similar compression and brute-force principles can be applied to sound as well. Further, almost any of kind of intellectual object or domain which the IP theorist wishes to protect may be subject to this sort of brute-force attack. For example, I could try to generate a database of all possible ownable yet unowned strings of English words, and I could copyright and publish each of them individually. Writers would supposedly violate my IP rights all the time in such a case. But, that is intolerable!">>
<<footnotes "30" "We also might have a regress of intellectual objects corresponding to other intellectual objects. This is all very messy! I don’t know the answers to these questions, but they are the kinds of questions for which we need answers in order to effectively justify and elucidate IP rules and rights.">>
<<footnotes "31" "The controversy of Leibniz and Newton concerning the discovery or creation of calculus is one of many examples. ">>
<<footnotes "32" "Almost any modern idea is the result of a massive memetic network.">>
<<footnotes "33" "Similarly, Jules Verne dreamt up solar sails over a century before a formal, working solar sail was being created.">>
<<footnotes "34" "Kravets, David. 'Monkey's Selfie at Center of Copyright Brouhaha.' Ars Technica. August 6, 2014. http://arstechnica.com/tech-policy/2014/08/monkeys-selfie-at-center-of-copyright-brouhaha/ ">>
<<footnotes "35" "Many of the discussions of IP center on merely modifying our current system to be better. It’s a lot harder to find radical disagreement with the concepts of and justifications for domains or intellectual property more generally.">>
<<footnotes "36" "We’ve essentially already covered some of the difficulties in establishing novelty.">>
<<footnotes "37" "Except maybe some very forced example of a specialized contract releasing my property rights into the commons, upon my communication.">>
<<footnotes "38" "This sort of issue will be handled later in the paper.">>
<<footnotes "39" "Although, in biting that bullet, you accept a different class of problems which arise from using utilitarian arguments, including potent epistemic requirements.">>
<<footnotes "40" "Again, the quasi-Lockean is likely forced out of nominalism and must take up a robust sort of metaphysics.">>
<<footnotes "41" "As far as I can tell, property rights may be a kind of medium to express almost any sort of right.  It might not be useful to translate or interpret almost any moral right into property rights. Property rights seem to lose their bite when we do this. Similarly, I worry IP rights may lose their bite if we were to continue re-interpreting others kinds of rights as IP rights. I’m not sure how and why we should draw many of these lines.">>
<<footnotes "42" "Common sense, of course, isn’t necessarily correct. Further, casuistry has its pitfalls in the dialectic. We have to do the best with what we have.">>

------------

''Bibliography''

Himma, Kenneth.// Abundance, Rights, and Interests: Thinking about the Legitimacy of Intellectual Property//. UC Berkeley Recent Work. UC Berkeley: Berkeley Center for Law and Technology, 2005. http://128.48.120.176/uc/item/7r5654bd.

Himma, Kenneth. "Toward a Lockean Moral Justification of Legal Protection of Intellectual Property." //San Diego Law Review// 49, no. 4 (Fall 2012): 1105-181.

Hull, Gordon. "Clearing the Rubbish: Locke, the Waste Proviso, and the Moral Justification of Intellectual Property." //Public Affairs Quarterly// 23, no. 1 (January 2009): 67-93. http://www.jstor.org/stable/40441517.

Hughes, Justin. "The Philosophy of Intellectual Property." //Georgetown Law Journal //77.287 (1988): n. pag. Web.

Kravets, David. "Monkey's Selfie at Center of Copyright Brouhaha."// Ars Technica//. August 6, 2014. http://arstechnica.com/tech-policy/2014/08/monkeys-selfie-at-center-of-copyright-brouhaha/.

Merges, Robert P. //Locke Remixed ;-)//. UC Berkeley Recent Work. UC Berkeley: Berkeley Center for Law and Technology, 2007. http://www.escholarship.org/uc/item/0hs768m2.

Moore, Adam D. "A Lockean Theory of Intellectual Property." //Hamline Law Review// 21.Fall (1997): 65-108. Web. 09 Nov. 2014.

Moore, Adam D. "A Lockean Theory of Intellectual Property Revisited. (2012 Editors' Symposium)." //San Diego Law// Review 49, no. 4 (Fall 2012): 1069-103.

Mossoff, Adam. "Saving Locke From Marx: The Labor Theory Of Value In Intellectual Property Theory." //Social Philosophy and Policy// 29, no. 2 (2012): 283-317. doi:10.1017/S0265052511000288.

Tavani, Herman T. "Locke, Intellectual Property Rights, and the Information Commons." //Ethics and Information Technology// 7, no. 2 (2005): 87-97. doi:10.1007/s10676-005-4584-1.

Spinello, Richard A., and Herman T. Tavani. //Intellectual Property Rights in a Networked World: Theory and Practice//. Hershey, PA: Information Science Pub., 2005. Print.

Vaughan, Richard E. "Defining Terms in the Intellectual Property Protection Debate: Are the North and South Arguing Past Each Other When We Say "Property"? A Lockean, Confucian, and Islamic Comparison." //2 ILSA Journal of International & Comparative Law,// Winter 1996, 307.

Dear Mom and Dad,

If we sum up the time that we will spend together over the course of the remainder of our lives, I might guess we have 30-40 weeks of time left.<<ref "1">>  I want to make sure our precious time together counts. I want us to look forward to our visits together. I want us to enjoy them. I want them to be some of the highlights of our lives. I know you do too. I write [[this letter|About this Letter]] to extend an olive branch to you in the hope that we can achieve this happiness together.  

Our last conversation was a catastrophe. It weighs heavily on me.<<ref "2">> It haunts me. It kills me to see our relationship dying.<<ref "3">> I have spent a great deal of time and energy soulsearching, researching, and contemplating a solution.<<ref "4">> Problematic to resolving our issues: I don’t want to be hurt, and I don’t want to hurt you either.<<ref "5">> Attempting to fix this relationship feels like a high-stakes risk. Paradoxically, I think we both feel we are in a "lose-lose" position. It appears<<ref "6">>  as though there's no way to "win" and be happy together, as though all the roads we share lead to pain. So, why take the risk?

Here's why: I'm not sure I can be happy if we fail to mend our relationship. I'm not sure you can either. That isn't to say we can't live on without each other, but in doing so our lives will be disfigured and unfulfilled.<<ref "ns">> Hence, this risk is worth taking.

I think we are both hurting a lot, and success here would make us happier. We love each other, and I believe we both strongly desire to resolve our tension. I want to build healing bridges over the gulf that grows between us.

I don't know what it will take to heal our relationship, to whatever degree we can, and I realize we may not salvage it. In any case, I desperately need our next visit to work (or at least be a giant step in the right direction). To that end, I have worked hard to respond to you as best as I can in this letter. I hope you will take my claims seriously and with maximum charity; they are hard-won. I seek to be delicate and yet directly honest with you. I'm seek to be as neutral and objective as I can in my analysis.<<ref "x">> I seek to address our problems with kindness and [[empathy|Empathy]]. In empathy, I believe we both have good intentions, and I hope we have the tools (or the tools to acquire the tools we need) to build these bridges.<<ref "7">>

Here is where I'm going to start (re)building: I deeply love you, and I always will. I am truly sorry I hurt you. I wish I could go back in time and undo the damage I've caused. That's not who I'm trying to be. I wish I had the wisdom, understanding, and foresight to know how to do it right. I wish I had the resources and awareness to never have been in this position in the first place. This sucks. I'm [[doing the best I can with what I have|Doing our Best]], and that has not been sufficient. I'm sorry. Please forgive me. 

Of course, none of us are [[perfect|The Good]]. We are fallible, finite, and limited; we all fall short; we are blemished and defective. We each have emotional conflicts and logical dissonance in ourselves.<<ref "8">> On top of that, we are all vulnerable, [[intelligent|We are Intelligent]],<<ref "9">> and highly sensitive<<ref "10">> human beings who happen to have radically divergent and often incompatible experiences, journeys, memories, inferential-styles, values, goals, projects, desires, feelings, and points of view. We have different modes toward and systematic understandings of ourselves and the world. In other words, we have different [[reality maps|Reality map]], and finding a harmony for our fragile relationship is fraught with unique challenges.<<ref "11">> 

Our reality maps are critically incongruent; we have [[fundamental disagreements|Fundamental Disagreement]].<<ref "y">> Of course, disagreement is normal (and can be a vital, good thing), especially for imaginative and intelligent people. Many disagreements can be passed over without any real analysis or major resolution.<<ref "12">> Diversity in beliefs should often be celebrated or even understood as being evolutionarily adaptive. Unfortunately, for practical reasons, some kinds of disagreement require resolution.<<ref "13">> Resolution doesn't necessarily mean we radically change each others minds (although that happens once in a while), but it does require we find a way to make ourselves compatible with each other.

Right now, we aren't compatible; we can barely sit in the same room with each other.<<ref "14">>  We are just hurting each other. If we can't find a way to stop it, then it is clear that we can't have a significant relationship.<<ref "15">>

I recognize that the significance of our [[friendship|Friendship]] comes in degrees. We may never be perfectly close, even though we want to be.<<ref "16">> If all else fails, if we somehow couldn't make a significant relationship work with each other, then we could always fall back on a distant, hollow, merely polite relationship with each other.<<ref "17">> We would ask each other "how have you been?" and the other would respond with a hollow "great, thank you for asking" alongside whatever minimal information or banalities we would be required to provide in the context. We'd get together when necessary and help each other when asked, but we wouldn't really engage in meaningful bonding beyond that. We wouldn't really //be with// each other to the degree that we really crave. We wouldn't really get to know each other, and we wouldn't really be walking together in the journeys of our lives. Our interactions would be reduced to social niceties and etiquette. Our relationship would be tedious and merely a chore we fulfill in order to maintain basic social ties. It would be joyless duty. It would be a form of mere instrumental social networking and tending to social capital we've built in each other. It would be a lie. It would be repulsive. It would be dreadful. It would be heart-breaking, and because it would be so crazy painful, I hope failure is not an option. I can't bear to imagine going down that road.

Suffice it to say, we need compatibility bridges between our reality maps instead of galactic rifts and clashes between them. We must come to a mutual, shared, and more secured understanding between our reality maps if our relationship is going to have depth and meaning. I believe we can eventually and hopefully effortlessly pass over much of our disagreement, but only after we have a better grasp of what we disagree on (even if we can only get that picture painted in broad strokes).<<ref "18">> This gives us vital information for not stepping on each others toes or pissing in each others' pools.<<ref "19">> Essentially, by cultivating our empathy and working towards mutual understanding (even if only an understanding of our disagreement), we will be better positioned to know what not to say or do in front of each other. We will able to see the contours of our conflict and avoid collision where possible.<<ref "20">> If we're lucky, we may even be able to accept our disagreement so thoroughly that we just laugh about it together and enjoy each others company without reservation.




My struggle with you is deeply entangled with struggle with myself. Part of you who are, your reality maps, is deeply embedded in me. I am at war in myself, and by proxy, I am at war with you.








I believe this is the epicenter of our conflict:

This isn't about being right now. It is not about finding the truth. It is not about trying to convince each other of our reality maps or even defend our reality maps against each other in any significant way. 

I think my autism is something you believe I should overcome and not something that should be embraced. 


We don't seem to agree on the moral rules of the social game (whether or not the game is fundamental to our existence is another question, one which we both desperately try to support) we are participating in.  

Let me straight up grant that you have a right to believe what you want to believe (assume I take up moral relativism for your position, but not mine). So, only I might have moral duties, and you either don't or I have nothing to say about it. I don't take you to be morally culpable for who you are, and I'm fine with you being whoever you want to be (that doesn't mean I won't change my behavior with you). 

I feel like I've journeyed logically and emotionally deep existential, philosophical, religious territory. Note, our disagreement doesn't make you wrong, but it 


 I reasonably have a right to feel and think what I do.

I have earned my right to think differently than you on crucial matters. We are going to disagree, which is totally fine. But 


Here's the ugly fact: I can't be who you want me to be. I don't think that makes me immoral. I don't think that makes me irrational. I don't think that means I lack integrity. I don't think you should //otherise //me because I believe so fundamentally different from you, and I owe the exact same token of respect to you. This is agreeing to disagree. 

Problematically, agreeing to disagree is an oversimplification of the process. There are networks of inferences that branch off disagreement, and recognizing how and where it branches off is required for us to fully agree to disagree on the implications of our starting disagreement. I really do think I understand the set of inferences which result from your starting place; I see the implications of your point of view to a significant extent. I do not think the same can be said for you of me. 

Obviously, you can't have experienced and thought everything I have; you aren't me. But, you do have to try harder to understand why it is that I think what I do. You don't have to "revolve" around me like this. I think, however, that's what being a parent is really like sometimes. It means you have to develop an appreciation for who your children really are. They're really different from you, they have different minds than you, they have different reality maps from you in radical ways, and that means you'll have to spend more time learning to empathize with them than other parents with their children.

We have to get past judgement. We can't be cynical about each other. If we are, we'll both just hate each other. 

Let's be clear here: I'm ridiculously judgmental. This is pot calling kettle black. I judge you to be less judgmental than me. Judging and making arguments which passed judgement from experts is what I did as a vocation. I think you have and do much the same as a vocation.

 Making judgement calls is what we're forced to do. At the bottom of our hearts, we both know how awful human beings really are. You have hope for them, and I do not. Not having hope for people, in a predictive sense, is not the same as saying I won't have empathy for them. It just means I know longer empathize with the people who you hope they really can be. I'm no longer working to help that person because that person won't actually exist (here's where prediction matters).

Can we co-exist without judging each other? 


I forgive you for whatever mistakes you have committed against me because I legitimately think you are good people who honestly seek to do the right thing. I think you are addicted to being moral <and I don't think that a bad thing> I think trying to be moral rules your life. I think you are extremely good at it in certain ways, I think you aren't as rational in your pursuit of morality as you would hope. I think I'm the exact same way. I think in our pursuit of being moral, we've come to understand the very concept of Virtue differently. What it means to be excellent persons is different for us. We both think the other is incredibly wrong about some of the most important things in the world, the things which define who we are to the core. The cores of reality maps, the most fundamental questions and assumptions we take up, have some differences. We both took a handful of existential questions and answered them the same in some ways, but differently in others. Even tiny differences at the beginning core of our reality maps will result in a tidal wave ripple of differences throughout a network of wildly chaotic fractal of inferences made surrounding that core.

I've had to find my own way. And, I can see, I will continue to need to do that. I feel burned by the authorities I have accepted in my life. I now must strongly buffer and reflect upon who and what I take to be authoritative. It is our plight, in this deep epistemic existential center of who we are, of what our freedom is, of the 

Don't you hear two people in this document? Don't you see in these words that there is an internal cataclysm between the Red Pilled Man and Kant's Agent fighting within me? Don't you see the Kantian Crossroads!? Don't you fucking see the Road to Damascus!!! Neitzsche, that piece of shit (regardless of whether he's right or wrong), is sitting on the sidewalk laughing his off. I'm being driven to madness at the crossroads. 

Why can't you accept that I am just a mortal man at the crossroads deciding who I will be here? Why can't you empathize with that man? Why would you begrudge him any pathways to happiness, especially when they are rational? Do you not understand him, do you think he is confused, or do you really think he's just evil? 

Can you live with the fact that our reality maps are very different in important ways? Can you accept what that means? Can we be close again despite these differences?

I definitely have respect for people who have different opinions than me. I couldn't have been shaped as radically as I have been over the past 30 years if I didn't take others seriously.  


Don't you see that I'm at The Crossroads? Don't you see that I wandered deep down a path that started at this crossroads, and I was deeply and systematically wrong at an epic level. My starting choice at central Crossroads of my reality map may have been wrong. I clearly have been wrong about so very much. I can't trust anyone, not even myself. 

Who and What can I trust? Well. Reason seems amazing. Even if reason is just the constructed thing, a set of social rules and memes in our society which define "how to think," where we play a public game in shaming those who don't reason well and worshipping those who reason well (where each contestant comes with their own definitions of what is reasonable).

I don't have miracles. I don't have authority besides myself at this point. The real me is a naked, weak, broken man at the crossroads, yet again. It is like Groundhog Day againness. I can't keep doing this. It is the true meaning of purgatory. I am caught between a heavenly way and the way of the hellian. Problematically, they both look like hell, but oddly, the hellian way at least gives me reasons to live. I can't be a slave anymore. I care about myself too much to accept my slavery. I have dignity. Ah, is this a slip into the dark triad or actually practicing empathy for myself?

I think you take yourselves to be excellent psychologists and students of human nature. I think you are very much so in certain ways. I've also seen you be wrong too often on these topics to trust you much on them. 



I think you are reasonable enough that if you experienced what I have experienced, you would agree with me. I think that if you were transplanted out of your soul and into where mine has been, and you walked observingly on my lifepath, with empathy, where you saw what you saw and didn't see what you didn't see, where you had the billions of choice-time-slice-instances (and many choices to choose from in each instanst) in front of you every day

I think if you were the ideal epistemic agent, an agent of maximum possible empathy, flying above me the forest of my lifepaths, you'd see that I did the best I could with what I had, that given my reality map at each choice timeslice-instance, I made the best, most rational choice I could have at that instance. It is almost certainly not the objectively best choice given the ideal epistemic agent's truly objective reality map. But, I didn't have that reality map to work with. I had my shitty, hilarious, almost farcical map that I've cultivated over time (just like the rest of us). 

 the reality map I have w with while journeying on this path



I'm interested in being authentic. In being myself. I see now why I can't trust authority. Many times I have thought that, and now I re-understand what it means to not trust authority. There are many levels and kinds of authority. 





I have to trust myself. If I don't then we can go nowhere. How much should I trust myself? 

The man who is wrong about the Red Pilled road 













Reaching a point where we aren't stabbed by the pain of our disagreement may not be easy. We see each others' reality maps as being desperately wrong, as dangerous, as a significant cause of much of our personal pain. 

I think we both worry the other has completely nixed the other's map in their map. Like we both might somehow be thinking the other is completely off their rocker, doesn't have all they'remarbles, that their missing the bigger picture so strongly that it's insane. 












From your point of view, unless some miracle happens, unless the Potter can successfully reshape His lump of clay, unless I somehow reshaped my reality map, or unless God judges by some other standard than what you accept, I'm going to hell. My short life on this Earth will translate into eternal damnation; that's God's justice for me. 

That is a powerful point of view to have. It shapes your reality map in dealing with me very strongly. 


You have spent your lives trying to convert people, and by your own standard, you have failed with your sons. Can you stoically accept my fate and just be with this sinner as he sins? Can you do without judgment? Can you let it go? I assume not. It is deeply ingrained in you. It is your vocation and purpose. 


[[Your Faith and my Lack thereof]]


 I'm okay with the fact that we have different reality maps. I think there are asymmetries in our relationship that need correction. Namely, I think I understand your reality map (I've experienced it) a lot more more than you understand mine. I think the key to our compatibility is two fold:

Being explicitly okay with each other having different reality maps.
Understanding what we disagree on.

Understand my reality map is understand me. If you don't want to understand me, to empathize with me, to see if my shoes, then I'm not really convinced you care about me. 


 


Do you want to me say you've thrown your life away? That you are making a gigantic mistake in your irrational, addicted pursuit of faith? Do you want me to groan at every thing you say, to be pissed at the causes and consequences of the beliefs that led to your words and actions? No. I expect the same from you.



I think this document is worth studying. I’m not looking for you to grade my paper (which wasn't ultimately why I sent you my papers ; I was trying to give you breadcrumbs to my reality, to have the content to interact with me [I eventually just stopped, since I saw it wasn't working]), but I am hoping you will listen to me because I will listen back. 





[[Mom]]

[[Dad]]

[[J.R.E.]]

[[A.I.R.]]



[[Freedom]]

[[Humanity]]

Some beliefs might have to change for that to occur. Some notion of what we ought to do and why might have to change. Understanding how to wisely and politely have fundamental disagreement is not easy. 



[[Whine like a Baby|The "Whine like a Baby" Section]]

[[A son's thank you|Thank you]]


[[Charity]]

We have other impediments to consider. Importantly, we are not as articulate as we wish. Even if we have the right intentions and ideas, it is hard to find the right words (particularly in the moment) to unlock our relationship.

[[medical treatment|Medical Treatment]]

[[my depression|My Depression]]

[[my recovery|My Recovery]]

[[my friend M.B.A.|M.B.A.]]

I believe your reality map has brought about significant pain in my life. You have such a coherent view that it can be intoxicating. It took me a long time to peel away from it. 

Despite our differences, we obviously share plenty of beliefs in common. 

[[where I am Now|Where I Am Now]]

[[Meme]]. Meme video.

[[Roots]]

 In addition to our conflict, I'm dealing with a network of other crucial issues. I would say I have disintegrated, and I am trying to find a way to integrate myself. 


We all think we are right. We find it hard to act on the assumption that we aren't. It is our plight as humans to both know our fallibility and at least temporarily assume we aren't in our calculations and choices.


Do you remember when I was 11, and I decided not to speak to H.O.E.?

Do you remember when I moved to college? We had a falling out.


The happiness and well-being of my children may be an impediment. They are not a bargaining chip, a tool, or a social totem for us to dance around. We have conflicting views on what is best for my children. Let there be no mistake, J.E.W. and I call the shots. 


In all likelihood, we will not dispel our fundamental disagreements. That's okay. Hopefully, we share enough common ground that we can build bridges across our gaps.



Admittedly, I have unhappy memories of your relationships with all of my grandparents, except [[B.B.C.|Betty Boop]]. This is not what I want for M.S.N. and I.M.F.. I want them to know you and experience joy with you. Unfortunately, I don't want you to infect their reality maps (which I'm sure I have already damaged - as is the nature of fallible, human parenting). 



As to your qualms with my self-medication, I hope you will in time see that I have done the best I could with what I had. There are not many viable resources available to me. I also think I have been justified in my mistrust of others and my willingness to be my own advocate when no healer or remedy worked. I think you know very little about my journey and progress for mental health and happiness (this is not an assignment of blame). Were you to have an ideal, more objective, third-personal view of my experience, I think you would find I did you proud. You have not been there for the countless conversations I have had with other family members about this issue. I have been positively scientific in my pursuit of stability and happiness. Problems are not solved overnight. 

Obviously, everyone wants unconditional happiness, and if medicine or drugs are conditional

I have found an incredibly helpful substance: Ketamine. It's literally magic for depression. I entreat you to research it. 

I have heard you say that you don’t feel like you can “win” with me. I think we both feel that way about each other. We don’t know the right words to say to each other. We don’t have the keys to unlock our compatibility.


This letter is densely packed, and I hope the scope and depth of it enables us to experience a quantum leap in our friendship.


If I were there, I'd hug you. I love you very much. 

I am listening.

Love,

Your son




-------------------------------------------

<<footnotes "1" "I could be wrong (hopefully it would be far more time), but it seems at least a distinct and realistic possibility. Of course, we may have distant interactions in between, but they seem categorically not the same. Here's hoping that at least this letter is an exception to the previous sentence. I may only write a handful of letters in my life that passionately matter to me, and I hope this one does the job we need it to do.">>

<<footnotes "2" "In addition to a number of other significant emotional and intellectual requirements of me.">>

<<footnotes "3" "That pain is part of my motivation to fix the problem. The happiness we can achieve together is another.">>

<<footnotes "4" "I have been in a deep think for many years now about a number of serious problems. That obviously doesn’t validate or show superiority in anything I’m saying, but I hope it demonstrates how seriously I take the task. Without a doubt, I am sure you have done the same.">>

<<footnotes "5" "Eliminating overwhelming pain (pain isn't always unconditionally bad) from my life is crucial to making my life worth living. I’m not sure I can effectively articulate the pain I have experienced. You have seen the signs of it though.">> 

<<footnotes "ns" "I think having a good relationship with your family is a necessary condition to the happiness of most people, even if it isn't sufficient.">>

<<footnotes "6" "Appearances can be deceiving.">>

<<footnotes "x" "But, no longer “whatever the costs.” Unfortunately, for too long I had dogmatically reflected upon this change in my stance toward to world (which amounted to a change in the epistemic algorithm of the rewards center of my brain ) as a kind of unacceptable, Camusian philosophical suicide, a move lacking in rationally justified integrity. My lust for certainty (which failed), and then later for mere confidence or acceptable justification has chipped away at me. In a way, I hated myself. The modernist in me hated my journey and reshaping. I was wrong though. The naked pursuit of truth is not always worth it. Some things are not worth thinking about. To be clear, I’m not looking to be perfectly happy; I’m after a semblance of eudaimonia. Flourishing human specimens must accept their bias and fallibility. Bias, in a terrifying way, is our plight, and a thing we must stoically acknowledge. At some point, we can't reshape our bias, we can only be enveloped by it. I want to flourish, and that means learning to be okay with and to live with my bias. There is the rationalization, if you seek one. I call it a practical leap worth taking.">>

<<footnotes "7" "We're xNTJs, so maybe we can figure this out. In my opinion, a strong habit and meme that permeates our family is having the wisdom+sensitivity to recognize how often and to what degree we’ve failed to be intelligent over the course of our lives. We evaluate ourselves and see our limits in an honest way that others often do not and very often cannot. Sometimes we are too critical, and sometimes we think too highly of ourselves or thoughts. In my opinion, having the humility to consistently recognize our mistakes and flaws has been one of our family’s greatest assets (and sometimes an incredible source of pain).">>

<<footnotes "8" "We are not perfectly constituted or [[integrated|Theory of Positive Disintegration]] selves.">>

<<footnotes "9" "It is unfashionable and lacking in (false) humility to imply or openly admit to being intelligent (particularly when you are). It causes others to have a kneejerk reaction to 'put you in your place.' Of course, who doesn't have the inescapable bias of acting on the assumption they are smart, or right, or the hero of their own story? You have to hide your intelligence in many ways, especially when you don't agree with others. I believe we simply have to own up to it in this conversation because it is part of the root of the complexity of our problem.">>

<<footnotes "10" "Sensitivity is the foundation of intelligence, a reason we see the world differently than others, and the source of some of our atypical pleasures and pains.">>

<<footnotes "11" "Unfortunately, in my opinion, we don't have access to an objective, ideal referee or guide to help us make sense of our reality maps, to disentangle our conflicts, to heal our wounds, or to clarify our common ground. I honestly believe that if this is going to succeed, we'll both have to work for it.">> 

<<footnotes "y" "For the record, even when we disagree, I know you are still some of the smartest people I’ve ever met. Listen: I strongly care what you think. Even without your approval or understanding, I respect you. I think about what you say, a lot (perhaps too much). When all else fails, I try to think about what you would say. Before we get all weepy-eyed at that critical admission which supposedly no 'self-respecting' offspring would ever utter, I will rescue myself: It’s a fact that offspring tend to be within 10 IQ points of their parents. I don’t count myself as an exception to that rule. Further, I (almost delusionally) take myself to be absurdly intelligent (go team arrogance!), and thus, I have excellent reasons to believe you are too. The bad news is that our brains are deteriorating, thinking is heavy lifting, and we’ve hit our peaks. At some point in our lives, there is an acceleration in the crystallization of our reality maps, and we become less agile and able to radically alter and reorganize our reality maps (in my experience, that process begins or becomes more noticeable around 25-35 years old for most adults [and, I'm no exception] -- roughly within the decade after our frontal lobes have finished developing). At which point, our mental growth tends to fit our reality map instead of fundamentally shaping it. I hope we can squeeze through this gap while we still have what it takes.">>

<<footnotes "12" "e.g. I think pepperoni pizza is better than sausage pizza. You might disagree. Practically-speaking, we don't and shouldn't really care about this disagreement (although, in a valuable theoretical way, I'm fully willing to entertain the possibility there are cases in which we should consistently care). Maybe it only matters when we have exceptionally limited shared resources, and then maybe we 'take turns' or select other ways to demonstrate that we still care for these lesser-kinds of disagreed-upon preferences of each other. In any case, this disagreement almost never matters and poses no serious problem to resolve.">>

<<footnotes "13" "e.g. It would not be useful or kind of me to confront, interrogate, or humiliate a relative in his 70's for watching Fox News or reading Facebook or Breitbart as his primary information sources. Our disagreement on our political and epistemic duties can't feasibly be resolved through careful argumentation. In fact, so much of our reality maps are so far apart that we can't even engage the normal game of public reasoning, of enjoying each others' reality maps, and rooting for each others' reality maps is over in that instance. We don't understand each other enough. Thus, we begin playing a different game, wherein we aren't strong or significant friends that can talk to each other (and never will be), but we hug and say a few nice words to each other.  If one asked the other for help, we'd gladly give it. We try to share in what little we have in common.We honestly wish the other well. We love each other, but we don't really like each other (or what we like about the person is really only a distinct set of slivers of their reality map). It sucks, but that's about the best resolution we can get. It was the best we could work for.">>

<<footnotes "14" "Which is not assignment of blame. If we enter a blame game, we are put into a defensive position. We might even move on the offense by pointing out the other's hypocrisy. In considering blame, I worry that we are forced to pit the metaethical regions of our reality maps against each other (regions we have both worked hard to cultivate, ground that neither of us are willing cede). This is may not be useful to us. It may not help us listen to each other. Unfortunately, no matter how much we cushion it, some minimal degree of understanding our blameworthiness (in each others' eyes) may be inescapable to our conflict resolution.">>

<<footnotes "15" "I'm not trying to draw a line in the sand (although, I'm sure each of us has our own personal line). I'm trying to point out that it isn't a practical option for us to continually hurt each other. It isn't the loving thing to do. I take your maxim, 'if you have nothing nice to say, then say nothing at all,' to be applicable here. Unfortunately, we have a rich enough history together and we know each other so well that facial expressions, body language, pauses, the way a conversation is steered, word choice, and other aspects of our circumstances impart enormous meaning to each of us (that doesn't make us good at communicating with each other, but it means that we are sensitive to each other in ways that we aren't to others). Problematically, those cases of needing to 'say nothing at all' require more than not saying 'words' for us. Finding a way not to communicate not nice things, which can be more than our flat words, is difficult for us. This may not be a solvable problem for either of us. Worst case scenario: let's try until we can't.">>

<<footnotes "16" "My default settings tend to have an all or nothing kind of attitude (which serves me well in some ways and terribly in others). It's particularly bad for the problem of friendship. I'm working on it.">>

<<footnotes "17" "A minimum that I've spectacularly failed to accomplish since our last meeting. I am sorry I haven't been able to give you even that.">>

<<footnotes "18" "Admittedly, I (arrogantly) believe I can put my finger on the problematic disparities between our reality maps. I have had the benefit of being able to study your reality map in great detail (which I believe has begun to crystallize, which is only natural). I still share much of your map. We share a legacy of continents together, and I think we still share a crucial core. Importantly, it's not your fault that you don't know many parts of my reality map, just as it's not my fault for not knowing or having traveled the unknown parts of your reality maps.">>

<<footnotes "19" "Ideally, strong relationships enable great latitude in this respect. We afford each other spaces to make these mistakes. We have the chance to be ourselves, screw up, and it ends up being okay at the end of day. We embrace each other warts and all. But, there comes a point where we can't, where the pain is simply unbearable.">>

<<footnotes "20" "I fear this is a prime target for dismissal, as though I'm asking us to 'revolve' around each other. But, that's just what friendship is. Maybe you don't want to be friends like that. We don't have to be. I'm not claiming you have to or should. I'm saying that it is the cost of being friends with such disparate reality maps. It's simply more work to empathize with someone with a radically different reality map than it is with someone with a highly similar reality map.">>


Dear Mom and Dad,

I love you.

Thank you for making Christmas so special for my children. They've been asking for/hinting at tablets/phones (any handheld touchscreen devices) for a while now (it is a yearly cycle in our household [I am trying to ensure that my children care about, plan for, identify with, and empathize with their future selves, in this case, enough so to make sure they do not break their tablets this year]). The child-protective covering will no doubt be useful (may the yearliness cycle end with persistent, cared-for devices that we take up as extensions of ourselves). Thank you. 

[[IMF]] and I are going to use the Minecraft stopmotion kit for homeschooling together. I'm not sure [[IMF]] immediately appreciated it (that's okay) since he was overloaded in the Christmas bonanza-feeling. He's going to enjoy it. I hope it will open up a cool world for him and allow him to cultivate theories of mind and a richer sense of the 4-dimensional stage of life. Imho, it is was a very well selected gift for an autistic child. I wish I had thought of it. 

[[MSN]] loves her Minecraft handbook collection. She has been exploring its metagame and the toolchains which surround its landscape. In a plain and non-ironic sense, it is a decorated embodiment of her project. Thank you for appreciating her project and putting the grandparent seal of approval on it. It's part of who she is. 

You chose your gifts well. It shows you understand my children well, and I appreciate your empathy. You made their day, and in virtue of that, you made mine. Thank you!

Thank you for being good parents and grandparents. You have done well with what you have, where you are, who you are, and your context. 

It's hard to have a conversation when we are both crying. If I could reach out and hold you, I would. These words are the only hug I am able to give you. I'm sorry, and I love you. 

I'm sorry I don't have a gift for you yet (I'm not sure how to describe it; I am trying to make us all happy).

We're very much looking forward to seeing you soon.

Love,

[[h0p3]]
* [[2017.01.05 -- Pipefitting Log]]
* [[2017.01.11 -- Pipefitting Log]]
* [[2017.01.12 -- Pipefitting Log]]
* [[2017.01.13 -- Pipefitting Log]] 
* [[2017.01.19 -- Pipefitting Log]] 
* [[2017.01.25 -- Pipefitting Log]]
* [[2017.01.26 -- Pipefitting Log]]
* [[2017.01.28 -- Pipefitting Log]]
* [[2017.01.31 -- Pipefitting Log]]
* [[2017.01.23 -- TPP]]
* [[2017.01.27 -- RNC's Impeachment of Trump]]
* [[2017.01.30 -- Early Warning Signs of Fascism]]
* [[2017.01.31 -- Open Shadow Government]]
After visiting the Pipefitters and Plumbers Union, I found out that the earliest I'd be able to join would be in 6 months. So, I decided to go back to the technical school. Serendipitously, I came on the day they started class. They still had my application from when we first moved here, and even knew me by name (which is impressive after only having met me once or twice). They just changed me from Machining (they didn't find a teach for this class until a couple weeks ago) to Pipefitting in the system, I paid for my tuition, and went straight to class. 

<<<
[[KIN]]: The fellows I'm working with are salt of the Earth. Poor misfits, rough living, etc. I fit in fine if I hide amongst them, which isn't really fitting in. I'm not very good at hiding. I hope defensively-positioned or preemptive kindness will be enough. My sense of humor, my appreciation of substances, an ability to be a librarian for them (which I am happy to do for people), listening without judgment, and perhaps the value they may see in networking with me will be enough to at least have positive relationships with most of them (can't please everyone). 
<<<

<<<
[[RPIN]]: My brother says I will be an alien among them. He is right, or at least partially right. I do not deny my weirdness. My goal will be to network, specifically ensuring I have the space and freedom I need in my life (political, financial, and social autonomy) without burning bridges. It will be difficult. Here I feel [[KIN]]'s pull very strongly. We both build on the Marxist ground (which is obviously practical; it is innately a Redpilled theory [which can be twisted for 'evil' prescriptions]). 
<<<

I barely slept (I was excited and had a lot on my my mind) last night. When I got there today, I was taken straight to a computer lab. I'm not even supposed to be in the shop without safety training (although, it seems to be an unenforced rule). Further, I have a ton of timesink busywork they've handed me on the computer. I'm smashing through it though.<<ref "1">> I've jumped ahead with pre-testing, but the rest of the work they let you do either in their lab or at home. I've figured out that they only care about your tests in the computing part, so that's what I'm gunning straight for. I work much faster at home, especially since I have music, a chair that doesn't kill my back, and more tools available to smash. 

Passing all the pretests in a day (or a few hours) is rare. Finishing the entire computer-based learning program in a weekend will be a record at the school. In addition to just catapulting me closer to the actual Pipefitting part of the education (which is why I'm there), I'm hoping it will put me in good graces with the staff (I see that it affects funding/scholarship options). 

My teacher is both made fun of (functional alcoholic who barely spends time in the shop) but also somehow respected by the students. It will be interesting to see how much he will be able to help me. I'm going to talk to him about a co-op situation where I get to work and goto school. I desperately need to start acquiring work experience in the field. Not only is it crucial practice at the trade itself, but a chance to network, build rep, feel my way out through organizations and the landscape. I do intend to try to get on with the union. I may need to feel out first how he even feels about the union. That said, I don't even know how much his reputation matters or what social capital he has. I have to assume, at least for now, that he is an asset to me ([[RPIN]]: "that is a planning issue, not an empathy one. Obviously, I'm looking to preserve my bridges and empathize with the man."). 

Two guys, Keith and another (don't know his name yet; I forgot!), go out of their way to talk to me. It's nice. One is brand new, the other has been an apprentice for 6 years(didn't move up though, and he says he needs to come back to school to do it [I don't know if this is true]). They've been guiding me about the structure and social norms of the shop and school. They are helping to orient me. I'm glad I have people that I can talk to there, and especially to have people who will try to answer my questions (I have so many that I have to hold it back; it annoys people when I ask too many). 

I may not be going tomorrow. Very likely snowday. Fridays are apparently very relaxed too (heard they just clean the shop and leave at noon). I hope that I will have the chance to push myself hard and become adept at the technical aspects (giving me time to figure out the non-technical aspects in the field with more attention). 



----------------------------------

<<footnotes "1" "Yay, my booklearnin' has been useful">>
We received your letter from October in the mail today. It was good to hear you again.

I also forgot to say thank you for the birthday presents for the kids. j3d1h says thank you for the GoPro. She said she wants to make piano videos with it. She's definitely interested in making content/art. 1uxb0x says he loves the marble racing kit (the kids spent the better part of two days making towers). Also, they made their first stopmotion video: https://www.youtube.com/watch?v=ErFFTa4NbXc (1uxb0x is in charge of directing and narrative, j3d1h setup the tech side [she'll still do the uploading/posting, but he now can create the videos himself]). Thank you for the making their birthdays special. 

It snowed two days ago. I haven't seen real snow in a while. Our home is warm though (we found some plastic that creates an air bubble insulation for our patio + windows), and we're doing normal mammal things together (yay, I love being a mammal). You guys may want to bring some warm clothes. 

I mean this literally: you are welcome to stay with us. 

[[LET and K]] found our place (understandably) claustrophobic on their first visit, so they stayed at a hotel on their last visit. It can be tricky having family over with a small place. I know I can't provide the space that you may need, so I want you to choose whatever will make you feel comfortable. I don't want you to feel you aren't welcome, because you are. I also don't want you to feel forced to stay in a cramped room, because you aren't. 

Whatever works, let's do that.

Love,

[[h0p3]]
<<<
Hey R,

Here is the site you are looking for:

https://h0p3.xyz

I suggest starting with the About wikipage.

Fun facts:

# h0p3 = hope (https://en.wikipedia.org/wiki/Leet)
#Traditionally, getting your computer to print "hello world" on the screen is the first program that every newbie writes in a programming language.
#The top-right hand corner has a double arrow to open the sidebar. You can see see recent edits there (among many other options/tools).

Let me know if you need anything. It is very much a work in progress.

You can reach me at this e-mail (or however you wish).

Sincerely,
h0p3
<<<

-----------------------------

<<<
Hi, h0p3.

Still reading. You are a brilliant writer. And you are boldly honest. I appreciate that. It is rare.

I see your struggle. I will understand more as I get deeper into it, I am sure, but I am not offended or angry at all. Our perspectives are different, but I respect your willingness to chase the truth. I also see the despair that is chasing you. Keep ahead of it, and send out a clear signal if you sense it closing on you. We are here, and we will help.

I know that you worried on some level that I would break contact with you out of shock. Worry less. I am right here and I am not going anywhere. Lean this way when you need to lean. I choose to believe that the faith you lost will find you. I know you won't deny me the comfort of that belief, even if you find it highly unlikely.

Thank you again for trusting me with this level of transparency. More Later.

Love you! 
R
<<<

-----------------------------

<<<
Hey R,

(I'm sorry, I didn't know the last half of your first name was capitalized.)

Thank you. I don't have the words to tell you how much it means to me that you are listening and talking to me about this. It is encouraging to not be so alone on this path.

Love,
h0p3
<<<

Much has transpired since my last log. I'm learning how little we (the students) know. Our teacher is very qualified in multiple fields, has a huge list of contacts, and a lot of experience in teaching. We talked for an hour or so. I think we will get along just fine. He can see I'm chomping at the bit, and I think he will help me get where I'm going. 

I have not yet finished all of my computer work, but I'm close. I'm finally doing some bookwork too. I aced the safety exam (the welders were vexed at the difficulty of our exam that the pipefitters take). I'm going to smash the math exam (I have to take a surprising number of these, despite already demonstrating my competency). I want to cruise through the "core" book which all tradesman must complete so that I can get onto the actual pipefitting. The teacher suggests I take electives as well, so I will. 

What I lack in practical construction experience I will make up for (at least in the beginning) with raw memory, computational skill, and intense practice. I need to build a good reputation (which, at this point, amounts to a form of manipulation that I find sufficiently morally acceptable by necessity). I'm looking for portions of the job that are worth memorizing; I do have a good memory when I'm not depressed (it used to be godly before puberty). I need to first understand where the real analysis and spatial reasoning occurs. My teacher explained that planning, measuring, and blueprint/modeling is what makes a successful pipefitter. I think these will fit me very nicely. 

Our first real shop experience (whenever it eventually comes) will be pipethreading. I've been reading through our first pipefitting book and looking through our blue books (everyday carry kind of manual for the field). Fellow students have walked me through it as well. I'm excited to try my hand. 

I spoke with a 3rd-party institution which helps fund students who need it. I do, and I have a lady who has really gone to bat for me (despite the fact that I have 10 years of postsecondary education, which is normally grounds for denial of help). She is my advocate. We've gone through testing and a lot of paperwork (and apparently she had to argue with her boss), but I think there is a reasonable chance that my second and third trimester's tuition will be paid for, and I will get a bunch of tools, work clothes/glasses, books, and possibly travel expenses paid for. This is the break I need. I find out in the next two days if my application is accepted at the state level. If not, my lady says she'll appeal the decision. She gets my predicament.

The more I understand about pipefitting, the more I like it. I think this is an excellent path.




I hate to say it, but the school appears disorganized and staff incompetent in many ways (at least in my experience with schools). I have now found out the truth. I have only finished the testing requirements for the school. I actually have to pay to take "fake" certification tests (I do not respect the content of these tests) necessary to join the union or a few other companies. I'm going to take them immediately, since they may easily open local doors for me which I desperately need. The elective tests might actually be disappearing (the test makers are doing away with it). I'm not sure if they will be worth my time/money. I think I may anyways, just in case.

Be voracious and humble. Your genetic + memetic background is functionally (not morally) superior, and your competence will shine. Do it amiably and kindly. As IASIP's Dennis is unfortunately correct about, in his redpilled assessment, I must demonstrate my value to these people (only, I'm going to be empathic in the way I do it). 
AB&T's grant came through for me. My tuition (except this trimester), tools ($750 worth), boots ($200), optometrist visit, prescription safety glasses, other supplies (they call it "the bucket"), and even gas money are paid for. I am ecstatic! I wasn't sure how we were going to pay for it, and it is a huge relief to know I don't have to. I'm very lucky, and I have extensively thanked my advocate. She has made it possible for me to succeed.

Time to feel cocky (and then reign it in):

My teacher thinks I'm a high-functioning rainman or something (apparently, after hearing his stories, he has worked with couple autistic savants in his decades of pipefitting). I can perform mildly complex arithmetic and basic algebra fairly quickly in my head, and so I can snap answers back to questions he expects his students to take several minutes to solve. The trig aspects are of the job are so standardized that they can just be straight up memorized. I regularly hear praise such as "nobody has ever done it that fast" or "nobody...on the first try" etc. from him (I appreciate the praise, but that's not why I'm doing it); the other students look at me with a mix of awe and disgust (except my friend Nash [nickname for him], who started the program with me). My spatial reasoning is where I believe I'm going to blow him out of the water though. I rock blueprints, transforming objects in my head, etc. In time, with practice, I expect to do much of this CAD, self-made isometric drawing (he prides himself on this), and miniature modeling (they use wire) work in my head instantly.<<ref "1">> It is convenient to instantly understand some things. Hopefully, with hard work and a carefully balanced attitude, I can make up for my many practical deficiencies.

 I actually might do all of the work in 6 months if I can keep up my blistering pace. Unfortunately, I am bottlenecked by Nash. I'm not allowed to progress through certain modules without him at the moment. That means I have to teach Nash as we go along (help him pass his tests and assignments) so he can keep up. Nash seems okay with it though. I like the kid. He has a checkered past for someone his age, but it's fine. It was weird realizing that when I got kicked out of school, he was being born. I feel like an old man. Hell, I am an old man in this class.

It might be better to go for the full 12 months though. I might try to go for all 4 books instead of the standard 2 for the class. I want to soak up as much as I possibly can while I still can. I could also practice welding. 

I need something like 8k hours to hit journeyman. With hefty overtime (which is par for the course, apparently), I might be able to squeeze the 5 year apprenticeship into 2.5 years. Regardless, I've heard you test into being a helper, and that high-end helpers can make $26 an hour + per diem. That would be sick. 

My teacher loves my idea of using a van (or trailer, or whatever) if I'm traveling for work. 




--------------------

<<footnotes "1" "//So modest!...// /s, but for real, I believe I will accel in this area. It's also considered the hardest part of the job, which may be good for me. Being a good planner and doing the abstract work effortlessly may give me serious upward mobility. I hope to be someone they desperately need. Keep dat marketability and demand as high as possible.">>
<<<
Good morning. I trust you are well today.

In reading your entries I am working hard at finding the underlying feelings feeding into them and generated by them. I believe that is what you are asking of me, and I believe that is what you most need. I want the connection between us here to be one of mutual compassion. You have been in a lot of pain for a long time. That isn't really news to me. You don't broadcast your pain, but you don't exactly mask it, either.

I will not pretend to understand everything that you say. I am tech-challenged and my training has moved in different realms. But I do understand a great deal of what you share, and have wrestled a few of the same arguments, though with different outcomes. I respect your process.  

Let me ask you how you are dealing with some practical issues. (I ask out of concern, not judgment.) In most of the programs I have encountered, there is a screening policy. Have you thought about that, and how you will cope with it if it is a part of the program in which you are participating? Of course I am also concerned for your safety. I don't know what machinery you are handling, but please take great care to be alert and maintain a good reaction time. It is hard to be objective about personal balance. There are good reasons for professional monitoring of the balance between desired and side effects. You need another set of eyes on that with you.

Networking is good, but it does not replace forming friendships. Remember to find a space in your life for friendship. It is harder work than networking, but it is more durable and more valuable. Networks are useful, but friendships are more formational. You don't need a lot of friends, but life is easier when you have a few.

Fresh air and sunshine are more than elements of a walk outside. A friend is someone who brings the social, emotional and spiritual equivalent of fresh air and sunshine into your life. I pray for a friend to come alongside you to open windows to possibilities you have not discovered.

Love always,

Me [R]
<<<

-----------------------------

<<<
Hey R,

I am doing well today. Thank you for asking (it is important to ask). To be specific: I've been feeling better since I feel like I have more direction in my life. Even if the plan isn't perfect, I have goals and a vision now. I wake up in the morning with a mission. I finally have a fire in my belly again. I hope I am not too polarized by and addicted to that mission, purpose-filled, vocation feeling. I am watching myself. Also, my sleep schedule has normalized (woot!).

How are you doing? I hope you don't think I'm out of place to ask, and you shouldn't feel compelled to answer. You are my counselor+friend+family, and it might be weird for you to reply with substance (you won't offend me). Rest assured, your response here will be redacted from my posting. I am privacy conscious (and I can see even in your word choice that you are as well). My posts are sanitized (yet honest).

If I understand you correctly, I think you are right about what I need. I'm trying to isolate the causes of these underlying feelings, which I take to be a set of beliefs (conscious or subconscious) which aren't coherent together or may be incorrect in themselves. I hope writing about these feelings and beliefs will help me change. Of course, I'm not always sure what I need to be writing about. I've been taking a shotgun approach to the problem. I write about whatever pops into my head, whatever my gut is telling me (since I think my gut/intuition is where the problems reside). Reading my spaghetti might be frustrating. Feel free to prompt me with a topic or area you want me to think about and write on. If you want me to clarify something for you or myself, please tell me. I make many mistakes. 

I also want mutual compassion. To be clear, you have been compassionate. I hear your voice as I read your letters. Conversely, I also know there is enormous anger (and sometimes insanity) in my writing here. I hope you don't take it personally (I know you have spoken to this already). I don't mean it as an attack on you at all. My mind can be dark and messy, and I'm sorry for that. I'm not good at hiding things, and I'm not sure if it would be a good thing to try and whitewash it. Unfortunately, I lack tact, and my honesty is destructive even when I don't intend it to be (I am working to be more empathic, especially in my delivery; it is not an innate skill of mine). If I'm not being compassionate, please call me out on it in the manner you see fit. I appreciate your taking the time to be my accountabilibuddy. I am listening to you, and I will do so with charity.

Your practical questions are important to me (keep them coming). I appreciate your concern. It is important to ask me! In this case, I have thought about these problems for a while. 

The program does not screen. To be clear, they couldn't have a program if they did. The class is a wonderful group of misfits, felons, and substance users. So, no problems on that front. However, you are correct that the screening process can be a real barrier in the job market. It would not be wise to close doors or burn bridges. 

Ketamine is the most valuable of medicines for treatment-resistant depression. It and its analogues are fairly uncommon substances to use illegally (recreationally or medicinally). None of the standardized drug tests actually test for ketamine. There are some extended panel lab tests which check for ketamine metabolites, but these are rare (although, I saw one study that showed some tests will give false positives for phencyclidine). Regardless, the half-life of the substance is 3-7 days, taking between 1-2 weeks to reach baseline. Both blood and urine samples can only detect within that 2 week range (2-4 days is the usual detection range for these tests, and only the specialized tests can go all the way to 2 weeks), except for very heavy use. Abstaining from a weekly 20mg DCK dose would enable someone to pass even the most extensive testing. Interviews and testing procedures can usually be planned for within this time frame.

Cannabis, however, is always tested. Unfortunately, edible users have extra difficulties as well, especially because THC is fat-soluble. Unfortunately, an obese person may still have THC-COOH stored up in their fat cells generated even a couple years ago (yikes). Needless to say, this is a minefield. Losing weight and maximizing one's metabolism is only way to flush this out. 

In microdosing cannabutter (6 days a week) and taking 2-week tolerance-breaks/reality-checks every 2 months, a chronic medicinal user would need to abstain for a bare minimum of 21 days to pass a urine test, and more likely 33-48 days (I've even seen recommendations up to 72-90 days). Hair test detection ranges from 7-90 days. Blood tests detect up to 7 days and saliva for only 24-48 hours. 

Basically, employers using saliva tests are seeking to make sure all (or nearly all) their employers pass, regardless of reality. The most common test to worry about is the urine test. A wise man would begin abstaining at least a month before he projected the testing procedure, and probably 2 months for good measure. He would also create dossiers on the employers in his area, including their pre-employment, scheduled, and random drug-testing procedures (although, you can't always find accurate information). Self-testing kits are also necessary. There is no point to going through the interview+testing procedure if you can't pass it on your own.

One must be concerned with random drugtesting. With good relationships, an employee can often be warned well in advance (especially if they are seen as an asset to the employer). This varies with the company you work for. It is crucial to understand the actual enforcement of drug policies in a company. Unfortunately, it can't always be planned for. If there is an accident, many companies will immediately administer testing on the spot. Thankfully, a wise person who uses cannabis medicinally would never endanger themselves or others by using on the job (that defeats the purpose of it). While high THC-COOH levels (being under the influence on the job) will never be found (avoiding liability), one would still fail the test (sufficient for being fired). This is where real risk analysis comes in. It's a judgment call that one must take into account given one's broader context.

Ultimately, it is the goal of every unwell person to become well, and if possible, unconditionally so. That is to say, nobody wants to use medicine if they could be just as happy, functioning, and fruitful without it. Cannabis, at least for some people, is an excellent tool for dealing with anxiety. Thus, anxiety-based medicinal users should seek to identify and solve the sources of their anxiety and find coping mechanisms which allow them to forego medicine when possible. Random testing only further motivates that problem. 

As to having a professional monitor, I'm not convinced this is nicely solvable. I agree on the objectivity problem. I am not, however, convinced there are good options available. I have been down that road. Sometimes, you have to be your own health advocate because no one else is going to do it. That is far from ideal, but it may be the only practical option. I realize that everyone feels they are the exception to the rule, and down that path we rationalize and confabulate (so, you may be saying to me: "Danger, Will Robinson!"). I am open to talking about it. Admittedly, I need to be convinced. For now, the only consistent (yet non-professional) sources of (pseudo)objectivity I have available to me are from my conversations with my brothers (every couple days) and family. 

The practical problem of socialization is also significant. I have vanishingly few people I can talk to, especially in person. Loneliness sucks. It sounds weird to be lonely even with a spouse as amazing as my wife. She is the One. She gets me. Of course, I fear I cannot complete her without believing in God (I am aware of the outlines of the theology of marriage), but not the other way around. We are best friends, and my loneliness is in no way her fault, but I think it is reasonable to hope for more than one friend (she does too). 

It's a fact that men tend to develop smaller networks (I do not mean in this the "networking" sense) of true friends. It is why they tend to die within a few years of their spouse passing, but not the other way around. Men, for genetic and memetic evolutionary reasons, lack strong social support structures. 

You are very right about the lack of friendship. I am slowly cataloging my history of friendships so that I can closely inspect them and understand what I've done right and wrong. Without trying to be arrogant, finding peers is not easy for me. There may easily be something deeply wrong about my assumptions and the way I approach friendship. It is a concept I've been thinking about for a long time now.

To be clear: I don't care about networking, except insofar as it is instrumental to me. Ugh. I could write a book on my disdain for networking, the generation of social capital. My Kantian side finds it abhorrent. I think it is the equivalent of using people. It's icky to me, and I can't double-effect my way out of it. I have no interest in shallow relationships. I demand honesty, authenticity, and directness. I want to "be myself" with my friends (not many people would appreciate who I am). Anything less is, at least to that degree, not really friendship to me. Of course, I realize this doesn't happen overnight. 

I'm a man who prefers having a few very close friends rather than a bunch of acquaintances. I am a control freak, and I rarely make myself fundamentally vulnerable to others. Few pass into my inner circle, and those who violate my personal code are rarely allowed to enter it again (you are hereby explicitly granted immunity for our letters). 

I have been on a mission to "find the others" for a while now. I'm looking for people I'd lay down in the middle of traffic for, and vice versa. Actually, I'm looking for family. Perhaps I'm seeking people I value more than myself. Unfortunately, I moved away from one of "the others" in New Orleans (we stay in touch and plan visits, but long-distance relationships really aren't the same). My brother and I have a deal we made with each other to find good friends (we both need them). It's slow going. Cool enough, I may have found one here. 

My neighbor (my wife's boss) is an exceptional man. He's autistic with graduate degrees in library science, theology, and something else (something to do with biology, I think). He said it is his new year's resolution to get to know me (and our family) this year. He is a very quirky man (as am I), and I like him a lot. We sometimes walk and talk, and I see we have similar struggles. I must do that more. I need to make a point of it. He's very finicky about certain things (not in a bad way, it's just part of his nature), so I will see if I can schedule time with him on a weekly basis. Maybe we can have a game night with our families. 

On a related note, I've actually tried to reaching out to your brother. He's not very talkative over e-mail (that doesn't mean he isn't paying attention though). Our brief phone conversation over Thanksgiving was good though. It's much easier to connect with him that way. While I know you love me, it may be possible you view me as a kind of poison: a volatile-appearing, broken man with dangerous ideas. I would never seek to endanger our family. So, I'll just straight up ask you: is it okay with you if I become better friends with your brother? I doubt we would ever be super close, but I'd like to be his friend. I love talking to him. He's wonderful.

This may also sound dumb, but how do you define friendship? We are in agreement on the assessment you've given so far.

Let me say again, I could easily be wrong about these things. This is a work in progress. Admittedly, I seek reasons to accept and reject my beliefs. Of course, I may just be accused of lacking integrity here, that somehow trying to be so excruciatingly rational is itself a thought-terminator, a smoke-screen, and a method to confabulate.

Anyways, I know you might not have the answers or be able to say it in the way I need to hear it, but I am listening. Thank you for listening to me. I know this is a lot of work, and I'm not claiming you are obligated to help me. 

Sincerely,

h0p3
<<<


<<<
I will respond in greater detail to your note later, but let me hit a couple of things really quickly before I head out to help a family with funeral arrangements. These are things I don't want you to wonder about. 

I do not consider you a toxic person. I think of you as a seeker. There is a huge difference. 

I am delighted that you and my brother are talking. [[CG]] is a great person once you get through his barriers.  

Love you!

[[R]]
<<<
AB&T came through. It includes: a $10 per diem, a voucher for my books (I was able to "return" my books for a refund to immediately buy them back with the voucher), some $170 work boots that fit like a dream, a $230 bucket of work-related paraphernalia (which I sorely need for the class), and soon to have my prescription safety glasses. In the future, I will receive a custom $750 tool package (apparently, I'll have to chance to select my tools) and my tuition for the remaining two trimesters will be paid for. I'll continue to seek out funding and help. I need it.

I have completed all the computerized coursework, and I've passed the paid "union" tests (these are official tests which we prepare for in the coursework) with my fastest + highest record breaking perfect scores (Platinum "certification"...I'll treasure it forever, lulz). I am glad to have it out of the way though; it is a load off my chest to be done with this part. It allows me to focus on the next task. An optional paid OSHA course+exam is available. I'll be taking it upon my teacher's advice. Apparently, there are imposed time limits that prevent you from moving too quickly through the course, so I'll be breaking it up and digest it in smaller increments.

I've spoken with my teacher, and since I'll have nothing to do in the computer labs on Thursdays, he agreed to allow me to focus on hands-on practice (likely the most important thing in the school itself, and the thing I am least naturally talented at). I believe I will crush the bookwork (I have been so far). It's the application that I must perfect. I do not anticipate I will be immediately excellent at this (I could easily be awful at it), but with hardwork, I will excel. 

My attitude and fire will set me apart. I must remember that I will fail, that I will mess up, and that I must stand up again and again. I must remember that my attitude itself will falter, that I will be akratic, and that I will need to have a self-monitor program to continually guard against lettting my flame die out. I have to hope I will succeed. What other option is there?

Appearing humble pays off, particularly with rural people. Show them humility, make them falsely feel superior (or if you are lucky, you can help them realize they are equal in some respect they value), make them feel like you "deserve" their help because you are humble (and "know your place" in relation to them), and they will.<<ref "1">> I must restrain demonstrations of pride (since that incites irrational retaliation); I must be the underdog they want to cheer on, but at the same time, I will be the best fucking student they have ever had. I must since I have no reputation, background, network or other resources to rely upon. While I will do my best to network and plan, I believe the word of the school, my certifications, and my teacher's recommendations will be some valuable keys to unlocking my pipefitting career's gateway. Jump through all the hoops! I need to look good on paper and in the eyes of others because I want to succeed. My family is counting on me to succeed, and I may not have much time left with Trump as president to safeguard us against the world.

On a different not: the pipefitting class is having a unique "bear meat" cookout tomorrow. I'm excited to try it; I've never tasted it before. I'm bringing k0sh3k's "mousse" pumpkin pies (we made a few more for the family, since they are delicious). The teacher has already offered to let me bring some bear meat home for k0sh3k. 


----------------------

<<footnotes "1" "Let's be crystal fucking clear here: their attitude towards humility is NOT rationally empathic or Kantian at all. Those arguments will be dismissed out of hand; they have no time for the truth. This is a gutteral response, an envy, a hatred, an otherising affect. People relish taking others down a 'peg or two' in public. It is a classic trait of humans, and Southerner's (my heritage) are no exception. I will dance for them, as is required. Sometimes people will not respect your human dignity (it is easy to be irrational), and then you must take it from them: it may be the only practical option.">>
Good morning, [[h0p3]].

I am glad that you are doing better on a practical level, and I believe that you are. I am also pleased that you are asking about my well-being. I am not afraid of dual relationships since I firmly believe that all human interaction is multi-faceted. (See – I am no counselor!) We are family, and I want us to always be that for each other. To answer you, I am well but tired, which seems to be my usual state.

I have been reading your work and pondering, meditating and praying about what I need to say to you. I want to say it in words that convey my profound respect for you and my need to be absolutely honest with you about the ways that my process and yours are alike and differ. But more than that, I need to swim beyond my depth in so many ways to get to you! I don’t want my faltering to damage you. (And, while I say that, please know that you are in no way damaging or offending me.) Still, I need to say this while I am listening in the hope that you can (and will) listen while you are mentally decompressing – which is something you obviously need to do.

We come at the same truth from different perspectives, so we must stretch to see things from each other’s point of view. I am hearing you, but as I am listening, I am convinced that I am hearing more than you hear when you listen to yourself. You are a deeply spiritually awake and aware person. It is that spiritual awareness that is causing much of your intense pain.

As I see it, you define all that you recognize as reality by your senses and the extension of those senses through enhanced observation. You prove things to yourself before you believe them. What you cannot prove, you do not want to believe. This urge comes from a brilliant understanding of natural law and the inner workings of the observable world. You can, in effect, see things that others cannot see, so you reason that what you cannot see (figure, understand, define) does not actually exist. I get that.

But what do you do with that nagging pull you call residual Christianity?
Ask yourself why you didn’t rage at Santa Claus when you learned that he didn’t exist. Even if you grew up believing that his was just a sweet children’s story, the question is still valid. You might denounce him, but you are not angry with him because there is no “him” with which to be angry. The same goes for a whole array of fictional characters who were real to you on some level, but whose existence you know to deny. You might learn from them, react to them and even model after them to some extent, but you do not rail at them because they are not there in any real sense of the word.

God is different. You can deny the existence of God (or, at least of the God to whom you were introduced) because you can neither define Him nor accept the definition of others for Him, but you can’t seem to shake Him. He doesn’t exist for you, but He relentlessly follows you around.

Put that in your pocket for a minute and ask yourself this: do you fully understand the natural world? I know that you understand it in a deeper and richer way than I do, but does it still hold any mystery for you? How does one grasp the concept of mystery when mystery is a rare commodity? So, look up from the natural world and consider the concept of “concepts.”

Do you believe that peace exists? I doubt that you have ever seen a moment of it in your life. I know that I haven’t. And yet we both chase it with all our might. 

Do you believe in justice? How often have you seen it in pure form? But you reach for it, don’t you?

Consider for a moment that there is a layer of reality beyond the observable that we do not have senses to detect, but that we are bound to acknowledge because it resonates with something inside us that we can’t define. We are drawn to peace even though we don’t experience it. We reach for justice even though it hovers beyond us. We cannot see, hear, taste, touch or smell them. We do not have adequate equations to quantify them. But we know that they are there and we ache to be where they are. 

What causes that?

We are like air bubbles floating through miles of seawater trying to burst into the expanse of the sky. We are spirit-things surrounded by a constructed reality – we understand the reality around us because we are encased in it and we are equipped to sense and interact with it, still we cannot resist the urge to rise. 

The sense of desperation in you is conviction. Now, let me redefine that for you, because you probably know the term conviction as a sort of shaming awareness of sin, and that is one of its functions, but that is not what it truly is. Conviction is a deep-seated spiritual awareness of a reality beyond proof. It is faith in its raw form. It is what Scripture calls the “measure of faith” resident in everyone created in God’s image.

Michael, you are spirit, and you are reaching for Spirit, but you are both attracted and repelled by your experience of God. You might blame that on your parents’ presentation of God, or on the way God filters through the muck of the world, but what really generates that angst is the way you – yourself – are experiencing God. It is so hard to see the wrath of which God is capable when we have so little experience with an inability to understand. We are used to working things out to a proven resolution, and here we have a problem that won’t resolve. How can a good and loving God permit – even generate to some extent – such obvious evil?  

Paul dealt with it in Romans 8:18-25 (NASB): “For I consider that the sufferings of this present time are not worthy to be compared with the glory that is to be revealed to us. For the anxious longing of the creation waits eagerly for the revealing of the sons of God. For the creation was subjected to futility, not willingly, but because of Him who subjected it, in hope that the creation itself also will be set free from its slavery to corruption into the freedom of the glory of the children of God. For we know that the whole creation groans and suffers the pains of childbirth together until now. And not only this, but also we ourselves, having the first fruits of the Spirit, even we ourselves groan within ourselves, waiting eagerly for our adoption as sons, the redemption of our body. For in hope we have been saved, but hope that is seen is not hope; for who hopes for what he already sees? But if we hope for what we do not see, with perseverance we wait eagerly for it.”

Why is creation subjected to all this futility? In what way can any of this apparent barbarity be related to hope? God, we simply cannot understand!
Now put that in your pocket with the idea that this God is chasing you around and think about this:

You know the story Jesus told about how hard it is for rich men to break through to the Kingdom of God? Why is it so hard? It is because they have to lay down something they value more than anything else in the world, and they have so stinkin’ much of it to lay down! I don’t have that problem, and neither do you. 

Or do we?

What if the same rule applies to other forms of wealth? A wealth of knowledge, of intuition, of creativity, of intellect… is any one of these easier to lay down than a few billion dollars? I think not. We are very accustomed to leaning into our own strength, and we have seen it topple all the problems we have turned it on. All, that is, but One.

What if your greatest strength is your greatest impediment to knowing the God you cannot stop seeking because He is relentlessly seeking you? What if the fact that you cannot understand Him is compelling you to deny Him when you cannot deny Him without denying yourself? What if I told you that that is the extreme end of every gifted person’s quest for (flight from) God?

In the end, you come to the realization that you cannot reconcile God with the natural world any more than you can blend the sea with the sky. You just have to decide whether you will recognize yourself for who you are – an air-bubble transforming into your true self above the reality around you – or a part of the reality encasing you and divorced from the sky. No matter what you decide, you will rise. All you are deciding now is how the air above you will receive you when you are freed from this present reality. 

I believe that you will make peace with the God you are presently denying, because I am convinced that you are too mentally honest to do otherwise. I pray that God protects you and your family – my family – in the process. I would tell you to stop making it so hard on yourself, but that would be like telling you to stop breathing the air. This is your journey. I would not presume to drag you along it even if I could. But can you see my little light shining from where you are? I am a bit further along on a very similar journey. I am listening to you. I am praying for you. And if you need me, I am here.

​Now that that's said, I can get back to my listening, and you can (I hope) get back to your decompressing. (You knew I was a preacher, and that preachers preach, right?) Still, I want you to be heard and to know that your journey matters. 


I love you, Son,

[[R]]
//For the record, I'm completely against IP rights as they are defined by all standard Western legal, political, ethical, academic, and philosophical systems. Intellectual objects should not be treated as objects we can own and prevent others from using for the sake of economic gain (it's hard to unbrainwash people on this topic -- a lot of otherwise intelligent people cannot see the forest for the trees here).
//

TPP (in its various incarnations) is the South East Asian (SEAsian [I'll call it Seasia]) equivalent of NAFTA at face value. At first glance, TPP seems reasonably justified by US nationalist and capitalist frameworks (but even they have been fooled beyond their normal foolishness). It's a fact that many tech and service jobs would be hit by TPP as badly as NAFTA hit manufacturing (I'm cosmopolitan enough in my theory of justice that I'm not necessarily against it; I care about humans, not merely Americans). Essentially, the US would export large swathes of our tech and service industries to Seasia in exchange for an expanded IP-based (intellectual property) industries penetration of Seasian countries by syncretically injecting and enforcing US IP laws within Seasia's various legal systems. 

IP-based corporations have been unable to make serious progress in Seasia specifically because IP rights are not actually enforced in the region. Of course, lip service and sacrificial lambs are paid, but not an iota more is enforced (it makes sense too, since there is a vast amount of utility to gain from not subjecting their people to IP regimes). By using the US government's power to generate the legal obligations to enforce the kinds of IP rights that exist in the US in other Seasia, IP-based corporations stand to make a ton of money.

We sacrifice our tech (considered by corporations to be absurdly overpaid, hence H1B visas, etc.) and some of the better paying service industry sectors by outsourcing it to other nations in exchange for making our IP-based corporations extremely wealthy. This is supposed to be the trade the American people are thought to be accepting. Supposedly, our IP-industries will flourish (but not the average American, since those jobs will only continue to be outsourced through TPP). Further supposed, IP-based companies will pay taxes on their growth, but it is obvious that they do not pay taxes in the first place. Go ahead and check. These multi-nationals, especially the IP-based, tend to keep their transactions and their wealth outside of the US and its tax policy quite effectively. 

With the outsourcing of our tech jobs, it is obvious that Americans will only be losing at every turn, and it seems that Seasians face a mixed bag (I see short term gains, but I think it's also bad for them in the long run). IP-rights-holders are the only clear winners here. They will pay people less, have legal powers to maintain their monopolies and control of information, and continue to avoid paying taxes.

It gets worse though. By hijacking the US legal system, the US is being used to enforce the will of IP-based corporations (Tech Giants like Google, Apple, Microsoft, IBM, etc., but also Pharma, Auto, and many more). Essentially, US corporations would have a treaty-based transnational method to enforce their US-like IP rights in Seasia. Problematically, "third-party" arbiters for these transnational legal disputes generated through TPP are controlled primarily (or entirely) by the IP-based US corporations seeking to enforce the US IP regime in Seasia. When the Plaintiff owns all the Judges, guess who always wins? Exactly. 

The fundamental political problem here is that we all assume that legal power in the US is very often equivalent to a significant degree of international legal power, and unfortunately, we have been tricked into thinking TPP will simply increase US power. This is a half truth. So, Seasia is the key to IP rights enforcement (among others) in Asia. TPP is thought to be the foothold the West needs to politically and economically penetrate the Asian giants like China, India, and probably Russia. The goal of the US and Europe is to inject Western legal systems into Asia; i.e. for Western power to spread in Asia. If we convert Seasia, crucial trading partners to China, we will have the bargaining chips to force China's hand to open their markets and legal systems to us. We are made to be afraid of the big bad Asian Tiger. The problem is that it isn't the Western people who are gaining power (assuming that's even a good thing), but that it is the owners of Western IP-based corporations gaining the power.

Ah, so here now we see the scarier Golem emerge: in bootstrapping transnational legal power through the US legal system, these IP-based corporations generate a partial yet significant kind of transnational legal sovereignty. This is the legal transfer of a non-trivial degree of sovereignty from every TPP-signing nation-state to owners of IP-based multi-national corporations largely based in the US. The owners of these corporations become serious wielders of US political, economic, and perhaps indirectly militaristic might; they do so without paying for it and while suffering few, if any, checks-and-balances on their empowerment. Nation-state legal sovereignty is giving way to a new kind of entity in political philosophy which we have not yet effectively named or understood.

TPP exists to make IP-based owners of US corporations incredibly wealthy while generating a 2nd-order kind of internationally politically sovereign entity through the US legal system. This is the continued emergence of the [[Hyperclass]]. Our sacrifice will only enrich the multi-national elite, those who are subjects to no sovereign. They are the new international aristocracy. They are eating us from the inside out using our own tools of statecraft against us. 

So, let's be clear. The U.S. sacrifices significant portions of its better paying jobs with no safety nets or educational mobility, falling wages, which is part of the systematic transfer of our wealth to the [[Hyperclass]]. The economic power of the people is being squeezed out of them, and it's happening to even the middle and upper classes (only the 1% of the 1% of the 1% are gaining in a winner-take all economy). Further, Seasia and eventually China and the rest of Asia will bow down to Western legal systems trojan-horsed through IP-rights enforcement enabled by TPP. It is not obvious we will get cheaper products, but even if we did, it is not obvious that the overall loss of income would be worth it (it very much seems not if the past 30 years have shown us anything). Not to mention, the people of Asia will be enslaved to an IP system (a legal regime with no fitting political and moral theory to justify it, as I have argued against elsewhere). The loss of intellectual freedoms, our wealth, and our mobility is frightening. And, this is all done in the name of US power, when it isn't even an increase in democratic Western power in Asia at all, but rather the empowerment of the owners of IP-based US corporations.

This is Trickle-up Economics and the centralization of political power in the hands of people who aren't themselves subject to the rule of law and taxes of various nations. They aren't citizens of any nation. They are beholden to no one. They are thieves of our political rights and wealth. 

Google is widely known to have had Obama's ear. I doubt they own Trump though. It appears Trump did the right act, but for who knows what reason. I am pleased with TPP being off the table. How does this empower, enrich, or help Trump? That's what I want to understand. Is he owned by someone else, and to what degree? I believe Donald Trump is likely going to make a significant amount of money off this (or perhaps pay off a significant number of debts). 

My current guess as to why Trump killed TPP was because China and Russia incentivized the behavior in Trump, since they definitely don't want their trading partners being injected with Western legal systems while handing authority over to IP-owners. This would be bad news for their economies.

So, TPP appears foiled for now. We will see how the Hyperclass will continue to cultivate, centralize, and consolidate their power through Trump. The proletariat class will only continue to become poorer, less-educated, less-powerful, and essentially more enslaved.

I'm finished with all the major tests except for OSHA-10. We finally got through the major bookwork necessary to start working in the shop. I actually threaded pipe today. It's easy. I'm glad it is easy too. I want to perfect it and streamline this process, from the tiny handmovements, to planning, to logistics, etc. I want to understand the variations in the tools, to be an effective troubleshooter. 

Today, my partner, Nash, clearly failed to measure correctly (twice) and fucked up the threads a couple times. At least for now, I work faster and with few errors without him I believe (with time, I'm sure we'll equalize). Thankfully, there are two different threading machines (one shop and another portable) which we will take turns on. We've decided we are going to divide the work to complete projects and to plan how to divide the work wisely, fairly, etc. We want to smash this course.
Today I didn't have any computer labwork to do because I'm done (minus OSHA-10 [not part of the curriculum, but I'm doing it because I was advised of its value], but I'm very close to done). Since I threaded pipes well enough yesterday, I was allowed to start working on "drawings" as my teacher called it (I call them schematics; I predict I will hear many different names for it).<<ref "1">> Basically, he handed me a schematic:

*I understood what it looked like
** I built a wire replica for good measure, but this one was as simple as it got
*I did the math to find the correct lengths and angles
** I checked my work twice. 
***If I get it wrong here, I will have wasted enormous amounts of time and energy. I want to be intelligent in my laziness (to work hard in the right way at being lazy).
*I found the unprocessed pieces I needed
** I made sure I had decent fittings especially. Our pipe, fittings, etc. (the raw materials of our trade) are unacceptably used and chewed up because the school skimps and cost-cuts a bit too hard. I mean that in a grateful way too. Further, that isn't to say I don't need practice with these materials (I will deal with used parts in the field plenty. But, most of the work is done with much higher quality (new) material because the labor alone is so expensive that you want new parts. I would like my shop to match as best as possible the conditions of the field. 
* I would generally (with exceptions) cut, ream, and thread. I'd clean, test (3-ish spins by hand, but 4 is fine). and also dismount it. I'd measure if necessary, then cut, ream, and thread. I'd give a final clean, measure it, and if it passed set in my 
* We went to the table, secured pieces in place, and started screwing our threaded pipe together<<ref "1">>
** We had to reorient and resecure the object being produced many times.
** We needed to know the directions to place the object in, and we needed to know which direction to put in a new fitting (and essentially where the next pipe would be installed.
***The further you could see into the future here, the fewer reorientations and adjustments you'd need to make. This is a key point of efficiency.
*** I hope to become very good at this. I will practice rotations in my mind because I will constantly be rotating these larger schematic objects I'm building. It's part of the building process. Being able to orient myself (or it) instantly will call me to intuitively know the right way to build these objects. The efficient, fast, and lowest effort way to build them. Work smarter, not harder. This is about measuring twice before you cut in a process-management sort of way. There are a stream of things we do in a certain order. The goal is to build the right streamlined process. 
* I spent time balancing things because a peer said I should. The teacher came by and said we didn't need to. He told us to break it down, and he gave me another schematic to do.

I'm working out how I should setup my workspaces and workflow (and on how I want to develop it and learn to test). 

* Should I get used to measuring on the threader?
** It's harder to make sure you get it right. There isn't much space, it's a dangerous place (the torque on this machine is insane, and even if you feel safe, why take the risk?), you feel rushed when you do it that way, and I've seen a lot of actualy measurement mistakes happen after relying upon measuring at the threader. 
*** I fear I need the right measuring dance and tool to get this done well. I should think about it.
** I wish I had the schematic and math with me and that marking it on the threader would be the way to go. It would be nice to just bring the raw pipe up, bang them out all on the spot, and then bring them to the table to do the work. Walking between the table over and over is a waste of time.  
* I found it best to keep my pieces organized and separated in piles. I also drew out my schematic on the table with my pieces (2-d). This made it very easy to put together.
** It was weird that my teacher did not immediately understand what I had done on the table. It was obviously useful.
* I measured more often than I needed to. We want to measure enough and at the righto confusingly called TL) times to avoid risks, but we need to make sure we are efficient about it. For now, you measure too often, but work to find when it isn't necessary, and find out exactly why it was necessary when it was.

So, the dream process (as I understand it) goes like this:

# Receive and understand schematic
# Write quantity of each fitting type we need
# Write the Nominal Size TO90, 2TO90, Flanges, and if necessary TO45, 2TO45 
## I've made up these names. It's a decent convention though.
## Find "90's" TO (takeouts) on page 90 (delicious coincidence) in my manual.
## Assuming BF is 45° (it has been so far), find "45's" TO in Notes section of my manual (teacher just gave them to us to write down). 
###I should actually understand this better and have my own extensive cheat sheet. 

# Write the CL (cut length) of individual pipes 
## I have no idea why this part isn't done in a CAD program. It seems like it would be the best way to do it. Why rely upon humans for calculations?
## Find special travel lengths (anything that isn't taking a 90° angle on the isometric graph)
###The easy ones show two 45° angles. 
####We immediately know our BF° 
####We can easily calculate our Travel length (hypotenuse) =  √(a^^2^^ + b^^2^^)
###Special Travel Boxes (literally show a box on the isometric graph)
####TL of Travel (also sometimes called TL) ≈ √(Run^^2^^ + Set^^2^^ + Rise^^2^^) to the nearest 1/16th of an inch.
####Roll° ≈ tan^^-1^^(Set/Run) to the nearest whole degee.
####Rise° ≈ sin^^-1^^(Rise/Travel) to the nearest whole degee.
####BF° (Bottom Fitting, but also identical to the top fitting in parallel Runs) ≈ cos^^-1^^(cos(Roll°) * cos(Rise°)) to the nearest whole degee.
## Construct formulas for each pipe
### Subtract True length from appropriate TOs: here are the combinations I've seen:
#### TL - (TO90)
#### TL - (2TO90)
#### TL - (TO90 + Flange)
#### TL - (TO90 + TO45)
#### TL - (2TO45)
## Solve formulas for each pipe
## Check formulas and answers to each pipe
### Make sure you got the math right. Your theoretical measurements need to be checked twice because the application of theory is a metaphorical cut. You have to start trusting trust in the move from doxa to praxis, and therefore you should double check your doxa because you won't be able to undo the damage it causes when you get it wrong. This sounds paranoid and like a lot of work, and perhaps I will become so adept that I won't need to measure twice in my math. For now, assume you make mistakes: you are not a virtuous pipefitter (although, you can strive to be a virtuous pipefitter apprecentice). 
# Gather pipefittings and the raw pipe (we have to hunt through scraps)
## Organize it. Have a workflow.
# Cutting and Threading
## Check equipment
## Work from largest to small pipes
### If you make a mistake, the lost effort can be mitigated by building other smaller pieces from our mistaken piece.
## Pre-measure (again!) the pipe to make sure it can produce the threaded pipe we want to make
## The Cycle:
### Mount
### Cut
### Ream
### Thread
### Dismount
### Clean
### Test
####It can be skipped, but it is unclear when and why. 
#####You obviously must do it on the first one. 
#####If you did it once every pipe, then doing it on the first thread seems best since, if there's a problem, then you haven't wasted too much work. 
### Measure and mark
### Repeat
# Tape/Seal your pipethreads
## I suggest laying out the taped pipe in the schematic's isometric build pattern (with fittings at the joints) on the table. Know where you are, where you are going, and how it fits. If you can't, then at least have an ordering to retrieve the part you need when you need it. We want an efficient assembly line.
# Building the Object in the Schematic
## You may need a second person. The counterleverage (need a word) is necessary for certain turns of the pipe/fittings.
## The order is not always clear. Think about this one. Your teacher had no advice to give other than possibly starting with the largest one (he did not have much to say here). Your building space and mounting requirements may dictate much of what counts as the right order.
## Make it level and plumb along all necessary axes while being "tight enough" (still unclear on what counts as that)
# ???
# Profit

My teacher does a measurement after all the cuts where he adds his TO's to his CL by overextending his measuring tape. It does not seem necessary or useful to me. I do not see why he wants to do it that way another than as another check on whether or not he did the math right. If you trust your math (and you should be the time you are cutting), then why not just check your actual cut pipe lengths to the CL variable?

-------------------

<<footnotes "1" "Tangent: I think my teacher's vocabulary is interesting. He knows his job, no doubt. He's an excellent practitioner, highly respected in our small community. He doesn't seem to understand the theory of his job very well though. It's like how my dad says my grandpa can't perform algebra and doesn't really understand that he is actually implementing algebra in his everyday work. We use basic trig everyday (which I barely understand), but my teacher doesn't even know the word //hypotenuse//. He gives us formulas literally as a step-by-step choreography on our calculators (you push this button, then this button, and so on...) without a sufficient understanding or interest in how or why or what he is doing. He doesn't understand the formulas themselves, and I worry he doesn't even care that he doesn't understand. It makes me both both impressed and sad at the same time. It is clear that significant portions of the intellectual part will be me doing all the lifting (which is fine, ultimately, we all learn alone [even when we have a teacher]).">>

<<footnotes "2" "That is literally the gayest sentence I have ever written.">>
A while back, [[k0sh3k]] suggested to me a speculative murmur that I can't quite shake. Her claim was that the RNC is going to impeach Trump. After reflection, I'm increasingly convinced this is a real possibility. Pence is a fairly standard Republican for this day and age, and obviously more in line with the RNC's policies and strategies. He's the leader the RNC really wants. So, I'm open to the possibility that Trump's presidency is an egg which will hatch Pence's presidency. Before Pence emerges, the RNC will extract as much political capital from Trump as they can.

The idea is that Trump, attention and media whore that he is (there is no such thing as bad press in his eyes, just as long as everyone thinks he's rich and powerful, that is good enough to him), will happily and perhaps unknowingly (in a sense) take credit for doing the RNC's dirty work (stuff they wanted implemented, but stuff they don't want to sacrifice their political capital on unless they must). I'm not sure all of what is on the dirty work list that Trump will be scapegoated for during impeachment (even if and when he doesn't actually have the power and influence to support and push these through), but I believe that "dreamlist" includes:

* The elimination of social safety nets, opportunity equalizers, medicare, SS,<<ref "1">> etc.
* Deregulating markets at all levels, including the limiting, removal, or twisting of environmental and natural resource preservation, mobility and neutrality protections, conflict of interest and collusion prevention, and anti-competitive laws and policies.
* Raising taxes on the poor and the remainder of the middle class while simultaneously giving enormous tax breaks, shelters, and higher financial mobility to the wealthy. 
* A marked assault on voter rights and continued gerrymandering.
* Opening the gates for a striking expansion of the prison-industrial-complex, debtor's prisons, police-militarization, the erosion of due process, etc.
* Advancing US imperialism and nationalism (while isolating us in other respects) and continuing to feed our gargantuan military-industrial-complex
* Dismantling some international "legal" obligations and many relationships (as rumored: to the benefit of Russia)
* Injecting steroids into the surveillance+censorship-industrial-complex, codifying what Big Brother already does and perhaps forcing mandatory backdoors on us all.

I don't know when the RNC would slip the Impeachment dagger in Trump's back, but I'm sure they would want to make use of their "sacrificial lamb" as much as possible before disposing of him. Maybe Trump is going to politically hang himself, and the RNC will feed him the rope. Even if it never comes to fruition, it could simply be a form of leverage, a threat the majority-holding RNC hold over Trump's head.

Ultimately, while I think Trump is good at campaigning and getting screen time, I'm not yet convinced he has any clue what he is doing politically in some crucial respects (although, he is clearly very talented at what he does). While power and wealth will likely centralize strongly under his reign, I'm still convinced Trump is accepting being used as a political pawn in exchange for 'dat publicity and wealth-based virtue signaling.

If I am wrong, if Trump is more competent than I can discern, then we may have an even bigger problem. Trump's moral insanity is the stuff of fascist dictators. 

I hope I am completely wrong. So far, his executive orders have not given me much hope. We are all holding our breaths and biding time.

-------------------------

<<footnotes "1" "Not that the Baby Boomers deserve my help. We're in a mess they have largely created with their psychopathic, egoistic destruction of all of ours futures (I believe they have already thrown the human species off the cliff). Even if I ignore blame via maximum empathy, it is clear that they are in no small part causally (even though they aren't morally) responsible for the state of our world. Time will tell if my generation will be the saviors our species needs or just more of the same. I'm betting we will fail.">>
Nash and I put together a more complex object before it was time to do our weekly cleaning of the shop (apparently, the teacher designed the schematic just for us, the "upperclassmen" hadn't seen it before; they said that Nash and I were likely going to do a lot more work than they did). Getting the right Level and Plumb is not easy with our materials. Our teacher is a stickler too. We had a pipe very slightly off, but we passed the test.

I clearly need more practice on the construction of these objects. I do not have the sense of knowing exactly what to do when, where, and why. It will be a road to travel to become virtuous at this.

I've finished the OSHA-10! What a time consuming process it was. I think I might also take the optional assessments just in case. I don't want to have to do this again. Plus, there is a Welding and Cutting assessment that may be important to know.
 I read Animal Farm two decades ago, and it set me on a path. I've long thought there was something deeply right about that genre's descriptions of who we are as human beings. I see the golem we are raising. Of course, we always risk violating Godwin's law. What regime isn't compared to Hitler? Here's the crucial fact: fascism comes in degrees and kinds, and it seems to have many definitions and associations. I think we are slipping into "new normals." Below you will find Britt's "Early Warning Signs of Fascism."<<ref "1">> Included are my oversimplified, sweepingly generalized ratings (with bias!) of the current political climate:

* USA | Political Problematic
* 4/10 | Powerful and continuing nationalism
* 7/10 | Disdain for human rights
* 5/10 | Identification of enemies as a unifying cause
* 3/10 | Supremacy of the military
* 2/10 | Rampant sexism
* 8/10 | Controlled mass media
* 9/10 | Obsession with national security
* 6/10 | Religion and government intertwined
* 9/10 | Corporate power protected
* 6/10 | Labor power suppressed
* 5/10 | Disdain for intellectuals and the arts
* 5/10 | Obsession with crime and punishment
* 8/10 | Rampant cronyism and corruption
* 6/10 | Fraudulent elections

Lists like these are useless, except when they aren't.

Obviously the US is not monolithic. It's large, diverse, complex, and deeply divided. The various sects within each of the proletariat, bourgeoisie, ruling, and hyper classes have their own ratings, as well as different contributions and relationships to these warnings signs.<<ref "2">> 

Fascism is the last defense of capitalism. This is late stage capitalism in the developed world. 

-----------------------

<<footnotes "1" "Laurence W. Britt wrote about the common signs of fascism in April, 2003, after researching seven fascist regimes: Hitler's Nazi Germany; Mussolini's Italy; Franco's Spain; Salazar's Portugal; Papadopoulos' Greece; Pinochet's Chile; Suharto's Indonesia. It pulls on my heart strings, but that doesn't mean this is an accurate list. Something about it seems obviously right though.">>

<<footnotes "2" "I have the kneejerk reaction to put Proles one side and everyone else on the the other. There is some truth to being that generalized, but our opponents are divided in crucial ways.">>
Governments aren't monolithic. Shadows come in degrees, and this administration is undoubtedly shady. Yes, there is an odd interplay between open and shadow. I'm not quite sure what to think of it.

It is clear, however, that policy design and the process of generating, clarifying, and disseminating information inside the execute branch is moving away from standard conventions and constructs. We've elected an administration which is eschewing record keeping and stakeholder-based policy sculpting in favor of empowering an unaccountable restricted cabal of Trump's //trusted// advisors. This is terrible precedent for historical reasons, but it is also a bad thing in an immediate and practical way. Internal transparency is increasingly opaque. The paper trail is disappearing and perhaps no longer even being generated. There are internal witch hunts and an alarming paranoia permeates. Power is brazenly being centralized behind closed doors. Fewer and fewer men control our lives. 

I'm increasingly convinced that Trump is at least quarter-puppet. Beyond Trump's engagement in a dangerous prosperity cult (outside of a handful of unique Christians I've met, ultimately all Christians buy into some prosperity teaching), Fox News and Breitbart (also prosperity cults in a way) are enormously influential in his life. They have his ear, and I think they are integrated into this new shadow government. 
I gave my mom the first pipe I threaded. 

We did much of the same: take a schematic, build it, have it checked, take it down, change pipe size, do it again. I expect to become adept at this process. I hope it becomes second nature to me to the point that I can think about other stuff as I do it (safely, ofc). I'm told I will have many such similar projects over the course of the trimester. So be it. I need the practice.

Atm, I'm fairly sore. I'm not used to this level of physical exertion. It isn't on the order of lifting weights and serious workouts though. We'll see as the week progresses how it goes. I'm sure I will grow into it. I tend to develop muscle quickly enough. As long as I take care of my flexibility, my natural strength growth factor will carry me.
I figured out around this time period that I should keep logs of more than just pipefitting. This was the beginning. It was a fine start. I was trying to write down what we were doing. I wanted a central repository for the information, and place to remotely explain what was expected. 

* [[2017.02.25 -- Homeschooling Log]]
* [[2017.02.02 -- Pipefitting Log]]
* [[2017.02.03 -- Pipefitting Log]]
* [[2017.02.07 -- Pipefitting Log]]
* [[2017.02.09 -- Pipefitting Log]]
* [[2017.02.10 -- Pipefitting Log]]
* [[2017.02.13 -- Pipefitting Log]]
* [[2017.02.14 -- Pipefitting Log]]
* [[2017.02.15 -- Pipefitting Log]]
* [[2017.02.16 -- Pipefitting Log]]
* [[2017.02.19 -- Pipefitting Log]]
* [[2017.02.20 -- Pipefitting Log]]
* [[2017.02.21 -- Pipefitting Log]]
* [[2017.02.23 -- Pipefitting Log]]
* [[2017.02.24 -- Pipefitting Log]]
* [[2017.02.28 -- Pipefitting Log]]
* [[2017.02.02 -- Conservative DNC]]
* [[2017.02.12 -- Devices of the Hyperclass]]
* [[2017.02.13 -- Trump's Incentives to Reign as POTUS]]
* [[2017.02.14 -- Real Unemployment]]
* [[2017.02.14 -- Russian-Trump Relations]]
* [[2017.02.14 -- Automated Memetic Warfare]]
* [[2017.02.16 -- Democratic Hypocrisy on Whistleblowing]]
* [[2017.02.18 -- The Crisis of 21st Century Science]]
* [[2017.02.18 -- Our Failure to Empathize with the Future of Humanity]]
* [[2017.02.19 -- The American Education System]]
* [[2017.02.24 -- Trumpocalypse Trumpdate]]
* [[2017.02.24 -- The Militarization of Police]]
* [[2017.02.24 -- Redpilled Socialism]]
* [[2017.02.26 -- The DNC: Republicans in Democratic Clothing]]
* [[2017.02.26 -- Moore's Law and the Centralization of Power]]
* [[2017.02.28 -- Web Assembly: The Browser VM as Decentralized Cloud]]
Through a series of false compromises, the DNC has inched more and more to the right over the decades. Pelosi herself praises Capitalist dogma. The Clinton's are a wonderful box of contradictions. Obama was an incredible disappointment; he's a war-criminal. The core of the DNC has already been hollowed out by corporate interests. 

Bernie was an indication of a more leftist possibility for the party (and I consider Bernie lacking zeal and direction, but at least he's remotely on the left path), and he was denied by influential and powerful people at every turn (despite having the obvious popular majority). The DNC has clearly not learned their lesson, those fools and selfish assholes. I think they see the Trump presidency as a conflict to thrive upon and a way to only further entrench their version of conservativism through yet another false compromise. 

Give me a parliament and game theoretically correct voting procedures. Even the will of our retarded people is better. It is sad to see that no one represents us. Expectation (ought) and prediction (is), of course, are different.
We had a graduate from my program come in yesterday. He joined the union. He came in a journeyman due to previous experience. He made $50k in the past 4 months. That's sick.

I've heard that much of the fabrication work I do in the shop does not transfer to the field. Much of the industrial pipefitting work is so large scale and prefabricated that I'm really doing the installation and not the more detailed aspects of construction. I will learn what I can though. This is me getting my foot in the door, understanding it from the ground up, understanding the nooks and crannies, etc.

My body is sore, but that is to be expected. Eventually it will be nothing. I'm glad I can work my way up to it.
Nash annoyed me today. He cut the threads too deep. When we screwed the pipes into the fittings, they went too deep. The center-to-center true measurement will be too short if we make the pipe tight enough. Otherwise, if we get the correct true length, then it isn't tight enough. Basically, we will have to redo it all, I fear. That said, I made a mistake (well, be both did): I forgot takeouts on the offset. This is our first time actually building offsets (but, I shouldn't have made the math error; hell, I drew the schematic myself). We got to use flanges as well.

After we cleaned up the shop, I went home, finished my union application, and visited the local union office. I talked with the office manager for a while (she remembered me, which is surprising). She gave me directions to the union's shop, which turned out to be within a quarter of mile of my school. I met the training coordinator; he was expecting me (office manager must have called him). We basically had an impromptu interview, and he said I'm doing what I need to do to get into the union. I'll keep bugging him (which he said wouldn't help, but that I should still do anyways). 
I love you.

I don't even know what love means yet (and from what I can tell, I may never fully), but I love you.<<ref "1">>

You and I don't know what that fully entails yet. That's okay. Son and Daughter of mine, if I could end my life to make yours happy, I would. If only I had that option! My life, from inception to death, is an experiment gone wrong. This is not your fault, and all I can do is try my best to help you be systematically happy. I must shield and cultivate you. You must stand on my shoulders: breathe the fresh air, do not drown in the chaos!  I am yours.<<ref "2">> I have been through a version of hell to be with you. I am sorry for who I am, my deficiencies and imperfections, and the pain that I have caused you. I am not the creator you deserve.<<ref "3">> All I have is yours. I love you.

My mother once said something like these words to me. I hope I can only build on what she said. We must find hope in our tragedy, a reason to live, and you are my reason. Creators are indebted to their creations because it wasn't the creations' fault that they came into being. If there is moral responsibility, then creators are responsible for their creations. 

I do not know how free we are. I wish I did. I wish I knew the meaning, the concept, the source, the criterion, the conditions, and the groundwork and foundations. I wish I had the answers for you. I do not. I am sorry. I don't know what life you will live. I can't see that far. I desperately hope it is a happy one. We each have our own plight, minds and reality maps, contexts, accidents and plans. I am an unprepared, fallible, and flawed creator. I am truly sorry for the ways in which I've failed you.

I will do my best for you. 

I love you.

----------------

<<footnotes "1" "Yes, that sounds like a contradiction. It isn't. How can I say I'm engaging in something which I don't even understand? I don't know. Let us call it the magic of bootstrapping and hope. I do not understand the paradoxes of love, but I will do my best. It's all I have.">>

<<footnotes "2" "Kantians cannot give good reasons for self-sacrifice. It is one of the fundamental flaws in their work. I am here to sacrifice myself for you. I don't believe Jesus was God (since I don't believe in God), but if there was a human Jesus (surely he existed; it's a helluva meme), I'd like to think he fundamentally understood sacrifice. It is such a special notion. It is the tragic exchange, losses, and transactions of those things we hold most dear, where we trade with objects whose values reach beyond our comprehension. We are monkeys trading existential gems.">>

<<footnotes "3" "Which is not the claim that there is a Creator we deserve.">>
I live for you. You are the reason I exist, not just in a biological sense, but more fundamentally in an existential sense. You are the reason I grind, the reason I move forward, and the reason I would enslave myself. This is the part where I say, "I would die for you." I would. I seek to make us happy because I can't find anything else worth pursuing (I have searched the desert!). I want the people in my life that I love to be happy. I care about the happiness of others like ripples in a pond, like onion layers, in degrees, perhaps sets and orders, as deontic priorities. The decision procedure proceeds.

The rubber meets the road. The icky is here. I must prioritize. This is the programmatic priority. It is only practical.

While I might always be on the fence about my own life (it is still not obvious to me that my life, in itself, is worth living), I am clearly instrumental to the happiness of those I categorically cherish. I am laserbeam resolute in my devotion to my wife and children, and while I know I fail them and myself in numerous ways, I will be and do my best for them. I must be their tool to happiness, and I throw myself upon that task. It is mine. Give it to me!!!!!! They are my spark. They are my reason for living. I desire their happiness. I seek to enslave myselves to their happiness because their happiness really is my happiness. That is resounding commitment I make. They are my hope. This is existential grit.
Dear [[R]],

I know it has been almost two weeks since you sent your last letter. I want you to know I've not been avoiding responding; I've been working hard on a response. The reason for the delay: I've been thinking quite a bit and dealing with other issues. My parents came to visit last week. I was very anxious, to say the least. I wanted to make sure I did not offend them while still being myself and honest (this is not easy to do). More painfully though, I found out my mother's thyroid problem is destroying her kidneys (my fear has been confirmed). I think she will die of renal failure; she is convinced as well (they are walking through her bucketlist). Steroids and dialysis have serious limitations for her. I have wept many times over the past week.

My mother is a classic boomer workaholic by choice (even she agrees). She has sacrificed her basic health (and arguably many things and people in her life) for her ministry. She has been consumed by vocational zeal to the point of lacking empathy for herself and family (classic PK/MK problems arise). Have you ever read 'The Poisonwood Bible,' and what did you think of it? It has been difficult to see and accept that her hard way of life joined with the stress that I have caused her (among many others) has led to her pending death.

I hope her remaining year(s) is/are peaceful. Whatever strongly mixed feelings I have about my mother (and vice versa), I want her to be happy. I want to be empathic and kind toward her. I love her. It's part of who I am. It's part of being unified. I hope with time and wisdom, I will see her narrative with more charity (which, admittedly, is hard to do when it isn't reciprocated during times of crisis [when I need it most]). I want to have a good relationship with my mom. It kills me that we don't. We are a house divided by the truth.

My mother and I talked this past Monday for a couple hours. We cried. We talked, carefully couched, about our plans, our analyses of who we are and how we fit, and our existential points of view. We are trying to find common ground, but it is obvious we will fail. We will always stand on thin ice with each other. Knowing it very well could be the conversation I have with her in person, I told her what we she meant to me, how grateful I am, that I love her. It was bittersweet since every word was inevitably coated and coded with the meanings of our suffering and conflict. I tried to scrape it off, but we both know how damaged we and our words are. We both understand each other (and ourselves) and yet don't in crucial ways. Our bifurcated relationship is not how life is meant to be. The scar is already there, and she hasn't even died yet.

They have the kids for the week. I have stipulated before that my parents are not permitted to evangelize to my children. This is not out of spite. Of course I want my children to have a good relationship with their grandparents. Problematically, my parents are skilled rhetoricians who sincerely love God in their broken way, and by His command love other people as well, but they do not pursue the truth. Unfortunately, they are incredibly talented manipulators. I respect their work with the poor, but not their methods, reasons, and the costs they've incurred. Of course, the result is that they don't get to share a part of themselves with my children (although, whether purposely or not, it stills oozes out).

I see the paths they could have taken and did not. Even they agree that I know them better than anyone else on the planet. As harsh as it sounds: it is clear that after raising 3 suicidal sons so deeply unprepared for the world that they aren't good parents. My parents had the means to be good parents, but not the will. They should have followed Paul's advice and not have had children in the first place while pouring themselves into their ministry. And, yet, I have to move past my judgment. I'm a failure too. Judgment must be withheld as a matter of practical wisdom. Judgement destroys us. I have been inspecting the concept of "Doing Our Best" yet again. I at least partially know how little I know. We must build together a new house while we still can.

I'm going to ask my brothers to throw a party at my brother [[JRE]]'s house for the family. My youngest brother, [[AIR]], can't even be in the same room with them (I see why; my parents often lack empathy for him). But, I think he will feel safe at JRE's house (but not my parents'). A last hurrah and a celebration of my mother's life would be nice. If she does die soon, I want us to part on amiable terms.

What kind of relationship did you have with your parents? What do you regret? What did you do right? Does it ever get easier?

I will only mention the tip of your letter for now: As we age, do we become worldworn? What is the source of tiredness? Is your tiredness like that of others? How, and why?

Love,

[[h0p3]]
[sic]

I am so sorry about your Mom's health. 

I was very close to my parents. We had different views on some things, but I always felt heard and respected. I don't have a lot of regrets. It is hard to regret the things that formed you without regretting that you are who you are, and I am okay with who I am. I want to say that I regret staying in an abusive marriage for ten years, but I have three amazing daughters that I wouldn't have had otherwise. I want to say that I regret not being more present in my daughters' lives, but the full court press for survival, when plunged into poverty, is a consuming activity. And we survived. I own that and all that it implies. There are parts of that story no one else knows or needs to know. 

Does it get easier? No. It gets different. I am not sure it gets harder, but the focus changes as we age. Family means something else and time replaces a chunk of responsibility with respect. We may regret what we built (or failed to build) into our families, but we recognize that our power to heal or wound them is diminished. We are no longer the critics of society (or family) but the ones under indictment. The saddest part is that we are usually judged and sentenced before any inquiry begins. The sweetest part is that the most important judges are usually prejudiced in our favor, at least a bit.

My tiredness is a pure form - I go to bed too late and get up too early, and do too much between the two. I don't know how or why others experience tiredness, but mine is not due to being worldworn if I understand the term. When I am tired, I am  not usually missing my youth or the age to come - just my pillow and my sheets. 

If there is anything we can do to be of help to you and your brothers right now, we are here. Also, if you need anything tangible, please let us know. Don't do without.

[sic]
There's an old man who walks through the building from time to time. He speaks with the instructors, leads strangers around, etc. I wasn't sure what he did or who he was. I just introduced myself to him out of the blue. Apparently, he knew a lot about me, where I was from, what I did for a living before, how I was doing in the program, etc. He said he was already looking out for me. He spends 3 days a week recruiting. He seems to be a liaison between various communities, students, and employers. He is clearly well-networked. This guy literally created the pipefitting program I'm in (not the curriculum or physical infrastructure, but the bureaucratic and financial aspects of it) because the HR department of the largest industrial employer in the area asked him to create the program at my tech school. 

The old man suggested I consider the union in a city 3.5 hours away. They guarantee local work during the apprenticeship. Few are allowed into the program, but I am told I have a great chance of getting in if I wanted it. He said the local union isn't worthwhile just yet, but that it could be in a year or so. 

Changing topics, today's work was frustrating. It is very difficult to make everything level and aplomb with 45's. I need to tighten and balance at each stage. I need to make sure Nash is following this (he'll see the reason of it). Do it right the first time. Tighten now and worker harder to untighten because it is worth avoiding fixing the problems of loose joints destroying balance every time we make an adjustment.

It is difficult to get the right tightenness while also getting the right direction. Let's think about this problem.

Also, Keith said that I should consider Johnson Controls yesterday. He said something about automated valve control (remote in). He obviously heard/figured out that I adore computers (likely from Keaton). I'm glad he said something though. Finding ways to leverage my computing, formal, and systems skills into Pipefitting could land kushy yet thrilling jobs which pay sick money.
I learned how to use the scientific calculator for reals this time. I adore it. I can see what I need to memorize now. I still do my math twice. It's an extra 5 minutes, but it limits a lot of risk. 

I obsessively check measurements at opportune moments in my build process so I feel confident when I get to building. I'm very organized, and I have a process that I can analyze, enrich, and improve upon. I am building my work-stack (or one of them). I am very fast (and safe), and I think I can continue to ramp it up. 

My teacher gave us a schematic which we did as a math problem before. I have everything saved in my skein notebook. Nobody has actually built this thing in class. Of course, since we've been crushing it, he's throwing us curveballs and possible busywork. He's giving us work he hasn't given anyone else. I suspect this is because he needs to look like he is doing something. My teacher is clearly an alcoholic (but I still respect him, shaky hands and all; he has led an interesting life), he yells at the guys a lot (very emotional, not terribly rational...but never at me [he's far more formal and polite with me; I must think carefully about how I would react if people yelled at me {defusion is not necessarily the best answer, but it sometimes is best}]), and he is not deeply concerned about his students(although still  partially concerned, even if only for redpilled honest shopkeeper kinds of reasons and appearances for keeping his job). I am slowly trying to unspokenly or less-spokenly convince him to advance me at the pace I deserve (perhaps separate from Nash, or with additional unique content, but at least at a fast pace) to move at and to show me everything he knows; we may have different definitions of what counts as this. It seems to me that I have regularly had to make him think (I have watched carefully); but, I don't know if that is a good thing or a bad thing.

I'm trying to develop a basic relationship with him, but I also show the respect of students to teachers (regardless of the merit of such a practice, I still want to show that I'm paying attention, listening, and want to know what he knows). I keep it professionally jovial with him and show him I'm serious. I work my ass off in that class, and he's see it every time he walks into the shop (because he's often screwing around and missing from the classroom [every student has complained about this, and they are not wrong], taking up sidejobs, etc.) in. I rarely take my full breaks; I don't chit chat; I don't play games; I take initiative and study between downtime; I'm consistently looking to improve and become virtuous at this practice. I do not waste my time like the other students because I need this education to get the best paying job I can, and I need my excellence to shine and open doors for me. I need to learn this really well, I need him to be the best teacher he can be (whether that means removing barriers or helping him understand what that is for this context), and I need his drunken recommendation. 

I complete ~1 project a day (projects appear to take 2-3 days for good students, and a week or more for bad), and I have passed every test he's thrown at me (even the optional ones). It is not obvious that Nash is actually passing these tests; I seem to be doing a lot of the work for us (I suspect my teacher knows this). Nash is too content to chillax when this is clearly his chance to dive in. Working with Nash has been difficult, and it showed strongly on this project. He is simply not as adept at this (only because he doesn't try: this kid is smart enough and has enough background that this could be much easier for him). He can't do the math, he mismeasures all the time, he doesn't tighten his work (which is awful for us because it means that it is moving around and very frustrating to level), he is terrible at understanding where he should be placing his wrenches (including which direction, how much force, and even why he is doing it), he can't see the right build order, and more. I do my best to help him, especially since I realize that I may not be able to move forward unless he is at least getting it decently enough that my teacher will not feel compelled to slow me down. 

Yesterday, he threw the chuck for the threader so hard (repeatedly) that it adjusted the diameter of the die set. Despite checking with a spare fitting for turns at random times, we didn't figure out that he had done this until too late. Many of our pipes weren't threaded deeply enough because of it. We found out the hard way, and we didn't find out until the end of the day. It is obvious that Nash is frustrated working on these things and working with me (his failures really cost us now, and even when I don't say anything, I seem to wear my inferences and beliefs on my face so plainly to others at times and in certain ways). I ended up having to redo the work today (rethreading already threaded pipe), taping again (we run through it quickly, especially with mistakes like these, and our teacher has complained about how much we use [although, we complete a lot of work]), and then building the entire thing by myself (in less time than Nash and I had to spend the day before). I was actually proud of what I did this time. It was clearly meant to be tricky, and I did a good job.

This curveball yesterday was obviously a curveball for even my teacher. He could not rotate the isometric schematic and my fabricated object in his head well enough to see they matched. He had to run to his office to build a model of the schematic out of wire (I believe he was suggesting to me that he was embarrassed about it later after he was done checking my work). He figured out I did it correctly (but not before making us unnecessarily rotate the heavy bastard off our table). Everything was good, and I felt confident it would be (it's nice to have confidence in the face of tests). I hope to continue to work hard, learn, do well, and feel confident.

Sometimes I feel compelled to make suggestions to him about what I want to learn. I'm straight up eager to learn and master this art. I do not want to waste an ounce of my schooling (I've had 10 years of post-secondary education already, and I appreciate that maxim: you get out what you put in). Does he know he has a Formula 1 racecar for a student? Is it my fault here? Is it out of my control? I can only do my best (be rational) with a good attitude (empathy).

He measured the pipebender (which has never been used, and he has to find the manual for). I might get to practice that. Even an introduction would be useful.

He is likely going to have us make things on the simulator (no one has done this for a while, but we will get to). I'm excited since I'll actually have used Flanges instead of merely installing them on the ends of my fabricated objects. The simulator is unimpressive looking, and it is only a screwpipe simulator (perhaps that's all we really need one for, since welding does the rest). I'm hoping that I will get to design the schematics we use on the simulator. I want it to say something. What should it say? What will I draw with these pipes? I drew some cool ones before (and made two of them; I liked the spiral the most [it looked cool]). This is a different challenge. I should measure and plan, draw and present it to him.

He said that in a week or week and half, he wants to let me start beveling and butt welding (tack welding only, but I want to learn the beadwork too). This is normally late first trimester or early second trimester work. I would really like to have a strong introduction to welding in this class, while I have the chance with the materials, machines, time, and teachers. 

I see mistakes everywhere. Finding mistakes in myself is what makes me good at things. It also makes me not like people (and vice versa). I am probably an extrovert who tests strongly as an INTJ simply because I'm misanthropic (I usually love, but rarely like). The fact is: I am a loner. I do infinitely better when I only have to analyze for me and not for and especially with a group of people. It's why I'm not a good team player (still wildly better than average, but my giftedness does not shine in a group). If I have to group, I will. Sometimes I even enjoy it. I find I'm often happier in video games when I'm by myself or working closely with a couple people. The more the not merrier. Basically, I'm saying that I'm a bad empathizer. I don't think it's my fault as an autistic person either. I try to empathize as best as I can, but it often isn't good enough. There are only so many things in my control. If I only have so many resources I can devote to empathizing (it is emotionally draining for me in a way that it isn't for others, I suspect), I want to make sure it is on my family; we need it. I need to be there for us as best as I can. That means I need to be wise in how I spend my social-energy. I can see why business men often have such low empathy (there seem to be a variety of causes and possibilities). I will be respectful and kind, but I will make sure that I guide myself to opportunities to have maximal alone time (on something fun) with as minimal sacrifices to pay (including my enslavement) as is worth it. Do the utilitarian math, or get the right feel for it, h0p3!
Ask, and ye shall receive. Today, my teacher threw me a curveball and I struck out (although, I thankfully didn't land on my ass). He told me he purposely designed it to fool me, and it did (I'm glad I at least offer the appearance of humility in my face and words when I ask him to check my work). The schematic had a beautiful trick in it that made it easy to misread. He said, "I finally gotcha! You did something wrong," and he smiled with pride. I took it in stride and laughed with him. It was bound to happen. I knew at once where the mistake was to be found. Something felt really funny about that part of the schematic, and I didn't pay enough attention to really understand what it should look like. It was a clever curveball. I told him what I thought my mistake was and how it was supposed to look. 

By not understanding the schematic well enough, I could not perform the fitting<<ref "1">> math, which meant that not only was my shape wrong, but the lengths were slightly off. I took the offending portion of the construct apart, and thankfully I had spare pipes ready just in case I needed them (be prepared to fail). I fixed it very quickly. 

Afterwards, I asked to see a stack of schematics. I clearly need practice in understanding them. I want it to be second nature, like reading a map I've seen a thousand times, or reading English, etc. I must remember that nobody does this instantly. I must work for it. My hard work will pay off; my talent will shine; I will succeed eventually; I will breathe this. Being someone who understands will be useful. I suspect it will be something that separates me and maximizes the value others see in me. It is bargaining power and mobility. Anyways, he gave me a stack of actual CAD schematics used in actual projects. They are different in some ways, with way more information to decipher. There is much to learn.

The teacher said that he was worried that I would not be able to say he challenged me on the his course evaluations. He said he didn't know why the other students are there, but he knew I was there to become a pipefitter. This is the second day that my partner Nash has missed. He can't afford to miss that many days before he gets kicked out. Our class dwindles. 

I visited the union training facility again today. The boss man wasn't there, but I met another guy who seemed relatively high on the totem pole. It was obvious to him in the course of our conversation that I didn't know much of anything. After he found out that I was nobody, he was far less interested in me. Redpills for everyone.

--------------------------

<<footnotes "1" "Yes, Plato's Statesman, I hear you! All day, every day. I cannot escape it.">>
Clear stereotypical generalizations. Problematically, they are too often correct for me to set aside. These patterns I see seem too hard to shake. The virtuous person can distinguish when to apply this rule of thumb and when not to.

<<<
We all love our own puns. 
<<<

<<<
Everyone believes they are the hero of their own story.
<<<


<<<
Everyone believes they are right.
<<<

<<<
Everyone has a boss (e.g. the customer's, the board of directors', the CEO's, your manager's, etc.'s); i.e. Everyone feels like (or exists as) a slave from time to time.
<<<

The gnostic "Illuminati" and "Targeted Individuals" conspiracy theorists see many false shadows, but I believe they have felt and identified a real political undercurrent in the world. Let me be clear, they are fucking crazy, yo. And, yet, we should still listen to the murmurs and mumbling of crazy people. Their insanity is not entirely accidental, and the causes and triggers are worth examining. Unfortunately, they are crucially right (and have been for a long time) about the existence of the deep state, dark money, mass surveillance, and the absurd power inequalities in our world. Their exaggerations, lack of tact and careful examination, however, allows us to dismiss them. This ad hominem, unfortunately, is not always accurate (the fallacy itself is actually fallacious sometimes).

Even the sometimes less fringe-like appearing (but still crazy) libertarians are often half-right about many things (dat Lockean allure and Randian charm, lulz). The fact is that the federal reserve and the monetary policy of the US (which has profound impact on the monetary policy of the world) is not answerable to the people of the US, not controlled by elected officials, and is clearly owned and operated by multi-national corporations and their pets.<<ref "1">> 

The Bilderberg Group and its ilk are real. What we've been reading about the NSA, and other governments (and branches of corporate intelligence), has been true for many decades (Snowden was not a revelation to those of us paying attention; he was only vindication). Our political scientists know that [[the average person has no power or influence|https://www.cambridge.org/core/journals/perspectives-on-politics/article/div-classtitletesting-theories-of-american-politics-elites-interest-groups-and-average-citizensdiv/62327F513959D0A304D4893B382B992B]]. Ironically, even some academics used to justify the status quo are bought and sold (have you see the clinical psychopathy rates in Economics professors? [let us be clear, the virtue theorist can actually unfallaciously wield //ad hominem// attacks]). We are not our own masters (not that we ever were). 

Let us not assume that some cabal of individuals has carefully choreographed every detail of every move in the world. That would be absurd (and I suspect a childish strawman used to irrationally defend the hyperclass). Politics is obviously far messier and more volatile than that. Political reality is more of an oligarchic mesh constantly changing through internal competitions and political blackhattery. The signs of this deeper political narrative are there for us to see. Can't you see the public-facing instruments of the Hyperclass machine which has evolved to enslave us? Political nobility has not died, rather it has complexified to the point that the politically illerate cannot readily identify it for what it is.

People are loathe to accept their enslavement. They are unwilling to see it. They must confabulate their way to feeling free. It's also hard to understand how the pieces fit together. The machinations grow complex enough that few can appreciate the Golem (which has emerged from the political primordial soup) for what it really is. I worry we are reaching a political singularity where the proletariat will never see through the political event horizon to discover reality, where we are so thoroughly controlled to a point of eternal practical powerlessness (or, at least until the coming end of humankind). 

One must habitually take a fistful of redpills to generate the virtuous perception of political reality, to understand what is salient about our world in order to deduce what we are, what we've become, and where we are going. At best, we can only make out the blurry outlines. Unfortunately, the Realpolitik truth does not set you free. It only allows you to better recognize how unfree you really are. Let us hope that our knowledge creates opportunities to flourish and the foresight to avoid hardship.

---------------------

<<footnotes "1" "It is ironic and farcical that Ayn Rand so firmly struck back at the world (I gotta' say, I think that psychopath was deeply angry) by so violently igniting the capitalist (a.k.a. Egoist) monetary policy we have through her disciple+pawn Alan Greenspan. It's one thing to have non-egoists regulate capitalism; it an entirely different monster to have egoists (the corruptible of corruptibles) regulating capitalism. That is to say: we have allowed the smartest+cleverest+hardest-working of the most psychopathic //homo sapiens// among us to devour us all. That is the farce. This is the irony: Libertarians are attacking the very thing they created. Libertarianism is fundamentally egoistic (it does not rely upon even Rawlsian principles [which is the minimum of justice; it is only a pragmatized version of the Categorical Imperative, an injection of who we are as psychopaths into the CI decision procedure of idealized Humanity]). Libertarianism is a thoroughly Randian Kantian injection into Locke. It puts Egoism on the philosophical map again like no one has since egoist, anti-realist, relativistic, non-cognitivist interpretations of [[SAP]] (Socrates, Aristotle, and Plato's) Virtue Theory (them are some ugly Neo-Aristotelians). As a historical conversation, Libertarianism may have started as a worthy enterprise, but it has gone down hill really fast. I believe Rand has successfully been injected into Kant injected into Locke for a large number of people on the planet. Libertarianism is quite the mental virus infection in humanity today.">>
Dear [R],

I'm sorry if my previous letter was offensive. I hope this one won't be offensive either. I really appreciate that you kindly offer me your perspective on family, faith, and life. As a side note, I've enjoyed talking with your brother, C, immensely. You both have a raw kindness and intelligence that I so rarely find. It makes so much sense why my wife is as awesome as she is.  

I am glad you are honest with me and at the same time not judgmental. It is something I'm still growing accustomed to and learning to do myself. It's a good pairing (and I take it to be a crucial element of empathy, the golden rule). I also appreciate that you want the best for me (even if we have perhaps different standards and theories of the Good); that's what love is about. It's relieving to have someone hear me. Thank you.

As a sidenote, I like that word: decompressing. It suits me. 

Now, I can't say I wasn't expecting your argument, and I'm sure you will say the same of me (I suspect we have both studied these issues for a long time). Without trying to sound arrogant (I'm going to fail), I want to say up front that I am aware of the family of arguments you've presented (which you probably know). I have taken these issues very seriously. It is what kept me faithful for so long. A significant portion of my training and upbringing has been devoted to understanding and answering the issues, frameworks, questions, and arguments you've presented. Philosophy of religion, epistemology, and ethics are at the center of my wheelhouse. It's what I did around the dinner table; it's what I focused on in church; it's what I ponder in quiet moments; and it's what I studied for 10 years in school. Essentially, I think I am skilled at empathizing with the point of view you've presented because I was born into it. I really have given it a fair shake. I believe C.S. Lewis would have met his match in me (our conversation feels a bit like the Screwtape Letters). I don't mean this as a useless appeal to authority. I think context is valuable.

For example, what I want my parents to understand is this: I really did it their way. I really took them and their view very seriously. I was faithful. It was my vocation and purpose. In an ironic twist, it was my faith that led me away from faith; that's how faithful I've been. I took the leap of faith, and all that happened was that I fell. As I stand back up, I think I see why.

Let me add two crucial caveats (and distance myself from judgment): (1) we all must have the hope that we can be right about what matters, (2) we may have different evidence. It is only rational for those with different evidence to arrive at different conclusions. I believe we are both justified in our positions (this isn't a claim about objective accuracy [which we may never achieve anyways]). Our beliefs are not accidental; we've really thought about them. To the degree we disagree, I take us to be kindly agreeing to disagree. I am convinced you are more skilled than I am at this (it is not naturally a part of my disposition), so please call me out if I'm lacking. That said, I think we clearly agree on an enormous amount. I admire the network of reasons and explanations which emanate from the axioms you take up. 

I also do not want to be dismissive or underhanded. I must be honest. If I'm going to be rational, it means I need to maintain charity and openness. It means I must have the integrity to revisit those ideas again, to accept I could be wrong, and to do my best to find the truth. Let me give it a fair shake again, and you can call me out when I've not. So, here is my good faith response to your extremely thoughtful argument:

<<<
We come at the same truth from different perspectives, so we must stretch to see things from each other’s point of view. I am hearing you, but as I am listening, I am convinced that I am hearing more than you hear when you listen to yourself. You are a deeply spiritually awake and aware person. It is that spiritual awareness that is causing much of your intense pain.
<<<

It is always possible I may not be hearing myself as well as you do. Confabulation, denial, willful ignorance, akrasia, confusion, and compartmentalization are real possibilities. I would not usually characterize myself that way, but I know I have made those mistakes before (as we all do). My goal is to be less wrong each day. Again, I want reason to guide me. It is the Categorical Imperative. 

I think it is important to define what it means to be "spiritually awake and aware." One of the crucial fork-in-the-road assumptions we must take up in order to define spiritual awareness is whether or not spirituality is real or epiphenomenal. What exactly are we "spiritually aware" of? Why should I think a spiritual dimension exists? I don't think I should formally beg the question (including my conclusion in my premises) here; although, maybe we should establish that first. Of course, we have to have a starting place. Bias, to some degree, cannot be escaped; it is part of our epistemic plight.

I have definitely had what are called spiritual experiences in church, in listening to and playing music, in love, in contemplation in the middle of the night, and even drug-induced.  That we can artificially induce spiritual experiences so clearly and effectively should give us serious pause. I have seen too many people speak in tongues and talk about ghosts (and I've seen the kinds of inferences they make, who they are, and why they are prone to these activities) to accept the spiritual dimension with so little evidence. That is far from proof that spiritual realism is false (which ultimately cannot be given), but, for me at least, it does shift the burden of proof onto the spiritual realist.

So, what were these experiences of? With each passing year, it becomes more obvious to me that the best explanation of the phenomenology of spiritual experience comes from a biologically-based Darwinian social theory of human minds and societies. The more I understand it, the more compelling the evidence becomes. I am convinced the actual causal chain which describes spiritual experience is reducible to having evolved to generate a specific configuration of chemical and electrical signals in my brain which I had long mistaken for spiritual experiences of actual spiritual objects/beings/dimensions.

I honestly believe my spiritual experiences were epiphenomenal (I'm still glad to have had them in many ways, but not all). Just because I have those feelings doesn't mean there is a spiritual dimension or any supernatural causes to them. The causes of these spirital experiences are natural (a loaded word among loaded words). I hate to say it, but I am convinced this is the case for everyone I've met (but I do not see value in trying to convince people of this). 

I think spiritual people tend to be too prone to trust their feelings and intuitions (we all have to, to some degree; I am a pot calling the kettles black). I used to have a problem with this in itself because of how irrational I know we all are as finite homo sapiens. But, I see more value in it now. But, feelings and intuitions must be guided and shaped by reason. We must habituate the right disposition. 

I really did aim for strong moral character. The unexpected result is that my feelings and intuitions on this matter point me in the other direction by and large. Of course, I'm still prone to use religious language and imagery because that is part of the language I know. I don't have better words sometimes, but that doesn't mean I'm still religious (well, perhaps it depends on our definition of religion).

Don't get me wrong. I think spiritual experience can be incredibly rational-appearing and many are justified in having them. It is a wonderful (and sometimes terrible) aspect of our brains. We are also extraordinary pattern-finders, but unfortunately, we're so overtuned for it (and naturally terrible at statistics, discrete math, and probability as a consequence [even famous mathematicians demonstrate this flaw]) that we see patterns, ghosts, and shadows where there are, objectively speaking, none (or we fail to see them as they are or as best as we could).

When I first entered into Apology, it was clear to me that the burden of proof (I prefer the concepts of "evidence" and "argument" here) in the dialectic rested on agnostics and atheists. But, over the years, I've found the burden of proof has shifted in the other direction. 

For me, my spiritual awareness is actually existential awareness (which need not be religious). Perhaps it is part of the Kierkegaardian storyline (but even he was wrong). It isn't God who has caused this awareness in me, but rather thinking about the concept of God that has made me so existentialist.

So, I agree with you that my spirital awareness is causing (or at least central to web of reasons for) my pain. However, I do not think we agree upon what counts as spiritual experience and what causes it. 

From my perspective, it is obvious that trying to be a Christian is not going to solve that problem. Rather, extracting the remaining irrational, cognitive-dissonance causing fragments of what used to be my faith (not all parts of what was my old faith were bad) seem like the more likely to succeed option for eliminating this pain. Of course, I may be doomed to have the pain no matter what. I'm literally trying to rewrite myself to erase the emotional pull of the ingrained remains of Christian spirituality (but not of the transcendent) simply because I know the road fails. There is no hope for me on that path. Perhaps it is a variant of the unforgiveable. 

<<<
As I see it, you define all that you recognize as reality by your senses and the extension of those senses through enhanced observation. You prove things to yourself before you believe them. What you cannot prove, you do not want to believe. This urge comes from a brilliant understanding of natural law and the inner workings of the observable world. You can, in effect, see things that others cannot see, so you reason that what you cannot see (figure, understand, define) does not actually exist. I get that.
<<<

I worry it is possible you've accidentally mischaracterized my position (the details matter greatly to me), and you've likely been too generous to me. I think the spirit of your words are accurate in important ways though. I feel compelled to clarify my position.

Let us be clear, I am neither an empiricist nor a rationalist. Kant's Copernican revolution in epistemology was right. I grant that my analysis of sense data tends to provide the bulk of my justified belief. However, we come embedded with innate categories. I also think our relationship to the "thing in itself" is far from clear (and incommensurable), and that we play a role, as subjects, in shaping our perceptions of a thing (and that this is an inescapable problem). 

Further, outside of the sense-perception necessary for consciousness (the passing of time, of self, etc.), I believe even a mind trapped in Cartesian solipsism can still make apodictic deductions (and otherwise!) without sense-perception. 

I would say I do not "prove" things to myself (this is a term of art for me; Proving is the act of providing a step-by-step demonstration that a conclusion deductively follows from a set of premises using pendantic steps which are thought to be certainly or virtually certainly true in a given epistemic context). I cannot hope to achieve certainty in almost all cases. Instead, I would say I aim for knowledge with a lower epistemic standard; I try to justify my beliefs with sufficient (and, of course, I spend a great deal of time defining sufficient for myself) evidence and inferences (or, at least that is my goal). I believe we all do, and I think that is the best we can do.

I think it is rational to require evidence and good arguments for our beliefs, especially for those which are most central to who we are, how we think and act, what we want, etc. What else should guide us besides reason? Why? We cannot escape the necessity of reason (yet another loaded word among loaded words). As a practical and theoretical matter, we must answer crucial questions for ourselves. What should I believe? What standards should I use? What is the groundwork of acceptable, rational, justified belief? Why? If these are the wrong questions, then how and why?

I also grant at the very bottom of our chain of justifying beliefs for our beliefs (illustrated everytime a child unrelentlessly continues to ask "why?") each of us will eventually find foundational beliefs we cannot justify. If there was a justification, we'd only go a layer deeper in asking for justification. It is an ancient problem. I buy that we have prudential (which doesn't make them objectively correct) reasons to accept a foundation (or coherentist foundation) of beliefs. However, we must continually test this foundation. We should inspect it very carefully. To be wrong here causes a tidal wave through our web of beliefs sitting on top. Again, we cannot be certain (by definition, perhaps). We can only unify ourselves here with the evidence we have. Sometimes we keep our axioms, sometimes we remove some, and other times we add some. We can only do our best. Doing my "best" points me in the direction away from Christian faith.

However imperfect it may be, I hope you see the pragmatism in my epistemic stance. Setting the epistemic partially aside, we need to consider the ontic (What exists? What is it that we have knowledge of exactly? What can we have knowledge of? why?).

I also want to make sure you don't see me as simply a physicalist, materialist, or mere naturalist. I don't know the answers to these crucial issues, of course, since this is a very ancient problem (that doesn't mean outmoded or obsolete). To be clear, I am convinced that metaphysical objects exist (a bold statement in contemporary academia). I am not convinced there can be truth-makers and bearers for logic and mathematics outside of something metaphysical. I say this carefully though because I don't know how it works. I don't even know what it ultimately means. I also believe I can't fully understand it because that's the nature of metaphysics. I take the transcendental divide seriously. I can only test the edges of and hope to briefly peer into that gateway, see the shadows on the walls, and hear the music calling through the chaotic mist, but I can never step over the threshold into that world. Of course, this sounds religious (it was standardly religious to me for a time [I'm open to saying I'm still religious about the transcendental]). It was Plato and Aristotle's "religion,"" and over two millenia, these notions were syncretized into the church, expanded upon, and further investigated (hence their resonance with my upbringing).

So, I do believe in things I can't see. I do not merely study the observable world (although, I think we strongly rely upon observation and deduction to reach the transcendental gateway). In fact, as far as I can tell, philosophy is fundamentally engaged in thinking about things which are hard (if not impossible sometimes) to see, observe, and understand. It is the bleeding edge of the foundation of what we do not know. When it isn't that, when what we didn't understand before becomes clearer to us, it breaks off into a new field of inquiry (the sciences, mathematics, economics, etc. [although, they never fully escape philosophical inquiry]). I take myself to be studying reality (poorly, at that), particularly what is relevant about and fundamental to reality.

Now I think I'm in a position to engage your crucial point: 

<<<
"You can, in effect, see things that others cannot see, so you reason that what you cannot see (figure, understand, define) does not actually exist. I get that."
<<<

I worry there are at least two interpretations of this claim to consider. The uncharitable one (which I'm not claiming you mean) I take to be the idea that I'm not open to the existence of things which I've not yet justified for myself. I hope it is obvious that I believe I can be wrong about what exists and doesn't, as well as about what is true and false. I would not have deconverted from Christianity if I weren't open to being wrong about everything.

To get straight to the point, take belief in the Judeo-Christian God as our example. I have said before that from the standard of epistemic certainty (the skeptic's context) I am an agnostic (as I am strongly convinced everyone should be). I do not know either way in that context. It is likely the case that we can't indubitably know either way by definition. From a lower, more practical epistemic standard (since we simply can't be certain about almost everything), I am an atheist (and I know others whom I take to be rationally justified in having faith in God, but their reasons are private and ultimately do not count as reasons for me). I believe I'm strongly justified in my beliefs. That doesn't mean I'm against the very conceptual possibility of God (although, I have studied that in detail as well, and it doesn't look good). So, in effect, I am open to God's existence, but I have very strong beliefs which, in my practical (non-skeptical) mode (the mode or plight in which I think everyone else finds themselves in), justify that the Christian God doesn't exist.

Of course, I'm willing to look at the arguments again. There does come a point though where it's okay that I don't, right? At some point, we should be able to say to ourselves that we've been careful enough to set our tent pegs down. It's prudential. At some point, it has to be rational to accept not believing (just as one might accept that it is rational to accept believing without certainty or maximal justification). I don't think I'm doing anything wrong by moving on from my faith. To ask for more seems to border on gnosticism or even misguided skepticism itself.  

The charitable interpretation of your claim (which is what I think you were saying) seems to be that I don't take up beliefs without justification. But, that's okay, right? There doesn't seem to be a better normative epistemic stance from what I can tell.

<<<
But what do you do with that nagging pull you call residual Christianity?
<<<

I'm extracting it. It prevents my unity. It is the minority of my intuitions and the least justified of them. This is an abductive version of proof by contradiction (so, not a proof, but similar). It is perhaps an application of Occam's razor. 

I believe I know what those keywords "nagging pull" mean. These are very worn battlegrounds in The Great Conversation which humanity has had with itself through history. I have definitely wrestled with it myself, and I still am. I must wrestle constructively though. 

Thus, I'm trying to wisely deconvert. That may sound like a contradiction (I would have said it was before, with the classic arguments and rhetoric to boot). In doing so, I'm trying not to burn my bridges. I see that I could be wrong, and I must leave room for that possibility even when I feel very justified. So, I'm shutting the door to open others, but I'm not locking it behind me.

<<<
Ask yourself why you didn’t rage at Santa Claus when you learned that he didn’t exist. Even if you grew up believing that his was just a sweet children’s story, the question is still valid. You might denounce him, but you are not angry with him because there is no “him” with which to be angry. The same goes for a whole array of fictional characters who were real to you on some level, but whose existence you know to deny. You might learn from them, react to them and even model after them to some extent, but you do not rail at them because they are not there in any real sense of the word.
<<<

You are right that I wasn't angry with Santa Claus. I raged at those who told me lies, half-truths, and knowingly unjustified claims (but I've done so without enough empathy). I will not be treated as mere means, deceived, manipulated, and made to serve the unjustified will of others. It is a form of brainwashing and psychic enslavement. I demand honesty because I'm a person with dignity who merits the basic respect owed to all persons. I have a claim right to resentment when others use me through deception. That said, in empathy, I see that others make mistakes, and so I do my best to forgive. It is not always easy to distinguish ignorance from malice (and I don't see why others are better at it than I am).

<<<
God is different. You can deny the existence of God (or, at least of the God to whom you were introduced) because you can neither define Him nor accept the definition of others for Him, but you can’t seem to shake Him. He doesn’t exist for you, but He relentlessly follows you around.

Put that in your pocket for a minute and ask yourself this: do you fully understand the natural world? I know that you understand it in a deeper and richer way than I do, but does it still hold any mystery for you? How does one grasp the concept of mystery when mystery is a rare commodity? So, look up from the natural world and consider the concept of “concepts.”
<<<

You have not established why God, as a concept, is different from Santa Claus. Further, it is concievable that there are people who are as moved by the idea of Santa Claus as I have been by the idea of God. Being moved by an idea is not the same as being justified in being moved by it.

It is not He who follows me, it is just the idea of Him that follows me (more specifically, has been embedded in my highly fallible mind and belief system over the decades). Yes, the idea of God, my faith, my upbringing, my life has a web of crucial inferences and mistakes in it that have caused me great pain, a pain far beyond Santa Claus. That doesn't mean God exists.

I'm not convinced God is chasing me around. I'm convinced I'm not even chasing God anymore. I'm convinced that in my chasing of the idea of God I've been chasing the transcendent (which is only worth chasing to some extent) or even less in some ways. If there is something like God, or whatever The Good is, I think it is radically different from what Christians have pictured.

Let's be clear: it isn't God that I cannot shake, it is the transcendental that I cannot shake. They easily look the same (I long thought they were). I think the Ancients, Kant, Postmodernism as a project (a revamp of the ancient tradition), and Gödel's Incompleteness Proof provide us the clearest indications of the transcendental. However, agreeing to the transcendental is hardly agreeing to the existence of God. This "thing" I cannot shake in my web of beliefs is not obviously God (particularly the Judeo-Christian stories of a Being) at all. 

Of course, I don't fully understand the natural world (or reality, both physical or metaphysical). The physical world still has its surprises and sources of pleasure too. The transcendental (metaphysics) is the mystery. I have to be stoic about this mystery, of course. I know there is only so much I can know about it (which only continues to cause me to ask and answer questions).

When I see something is difficult or perhaps impossible to understand, I ask how, why, and what about it makes it mysterious. I feel my way around it. I try to find its logical contours, limits, and extension. I try to see its structure and its relation to other things I know better. I ask what is possible and necessary, contingent and universal, mutable and immutable, etc. I attempt to openly and charitably speculate, try out different arrangements of possibilities, and see if I can make the pieces fit. I make the most sense of it that I can, and stoically accept what I can't make sense of. I take the best explanations and justifications available to me. I see no better way to handle or demystify mysteries.  

You are talking my language when you talk about the concept of concepts (you seem to speak of a variant of Plato's Great Meme passed down through Western culture), the being of being, being in itself, contemplation of contemplation, The Good, The Beautiful, the noumenon, the transcendental, metaphysics, etc. I can only speak with my poor understanding of that gateway which even the greatest minds in history can only point us towards. We stand on the shoulders of giants, no doubt. It is in my exploration of these very things that I have been persuaded that a personal Christian God does not exist. Further, even if God existed, I have no reasons to think it would be relevant to my practical life (outside of enjoying the mystery). To the extent that Boethius would be right, it seems like we have nothing to talk about (that's Trascendence with a capital T). In fact, the best explanations and justifications tell me to stop worrying so much about the transcendent (at least to some degree). At some point, demystification is fruitless. We are mere mortals. 

<<<
Do you believe that peace exists? I doubt that you have ever seen a moment of it in your life. I know that I haven’t. And yet we both chase it with all our might.

Do you believe in justice? How often have you seen it in pure form? But you reach for it, don’t you?

Consider for a moment that there is a layer of reality beyond the observable that we do not have senses to detect, but that we are bound to acknowledge because it resonates with something inside us that we can’t define. We are drawn to peace even though we don’t experience it. We reach for justice even though it hovers beyond us. We cannot see, hear, taste, touch or smell them. We do not have adequate equations to quantify them. But we know that they are there and we ache to be where they are. 

What causes that?

We are like air bubbles floating through miles of seawater trying to burst into the expanse of the sky. We are spirit-things surrounded by a constructed reality – we understand the reality around us because we are encased in it and we are equipped to sense and interact with it, still we cannot resist the urge to rise. 
<<<

I agree that we can never fully see, experience, or partake of The Good in itself. We will only see and experience shadows. It's the best we can do. Or, if we do not, then we cannot be unified. The Pure Skeptic is frozen and disunified (the Pure Believer has similarly problematic flaws). They must assume there is something worth getting out of bed for, even if they do it without justification, to actually get out of bed. We are driven by these axioms toward The Good. I beg the question in even seeking to be unified and happy (kinds, subsets, parts, and conditions of The Good). That these are worth pursuing must be axiomatic, since there are no other justifications for it. Note, of course, the Pure Skeptic is still correct to claim that we have established nothing objectively, categorically, or normatively true in our Human Plight (as is the Pure Believer). We're just assuming and deducing/inducing as much justified coherence as we can from those assumption. I'm okay with this step (I have to be, what else would I do?).

I'm okay with having the kind of faith which ultimately boils down to having unjustified beliefs that we just assume are justified. But, I must be extraordinarily careful about what I have faith in. Faith in The Good is not obviously faith in God, not even close. 

That "resonating" inside us is perhaps a kind of sense. Perhaps it is reason itself. If it is only emotion, then we are in a lot of trouble. Emotions are the blink-of-an-eye, gutteral, instinctual reactions we experience (the virtuous and brilliant rely heavily upon them); they come from our innate programming and our conditioning over time. They are incredibly useful instruments. It's a central part of the human experience, no doubt. Whatever this mystery may be, to whatever extents our experience of it is rational and emotional, that resonance is our human plight. 

That there is this resonance we agree on. What is this resonance of? I do not see why others are more likely to be correct about the source, the experience, the causal chain, or the sufficient reasons for this resonance than I am. I wish I had an authority to turn to on the matter. I have accepted many authorities on this resonance. Most have fallen (some harder than others), and I with them. It is only rational to continue to increase the requirements for what I take to be authoritative, dogmatic, and axiomatic.

<<<
The sense of desperation in you is conviction. Now, let me redefine that for you, because you probably know the term conviction as a sort of shaming awareness of sin, and that is one of its functions, but that is not what it truly is. Conviction is a deep-seated spiritual awareness of a reality beyond proof. It is faith in its raw form. It is what Scripture calls the “measure of faith” resident in everyone created in God’s image.
<<<

I agree that I'm desperate, but I'm seeking not to be (at least to some extent).

I believe in the transcendental because of my evidence and axioms. I believe it is unwise to take up beliefs or be too blindly driven by our existential awareness (which may be of an illusion) without evidence, especially on matters this important. That which is not justified, I will do my best to eliminate. That which can be destroyed by truth should. I'm cleaning house because it is that very resonance that nearly ended my life. I must manage it more carefully and not be driven so foolishly by it. I admire, respect, and am always curious about the transcendent. I will always continue to think about it, but I will allow my reasonable doubt to shape and temper my pursuit of the transcendent now. 

<<<
Michael, you are spirit, and you are reaching for Spirit, but you are both attracted and repelled by your experience of God. You might blame that on your parents’ presentation of God, or on the way God filters through the muck of the world, but what really generates that angst is the way you – yourself – are experiencing God. It is so hard to see the wrath of which God is capable when we have so little experience with an inability to understand. We are used to working things out to a proven resolution, and here we have a problem that won’t resolve. How can a good and loving God permit – even generate to some extent – such obvious evil?  
<<<

I don't think I am repelled by the transcendent. I think I am repelled by how I've pursued the transcendent, about how desperately wrong the entire world is in relation to the transcendent, and about how little I understand of what feels important. I've been repelled by my life and the world around me.

I would not say I experience the transcendent, or at least not directly (since that is definitionally impossible). I think there are gateways, boundaries to our universe, and fundamental problematics in philosophy we can't resolve which point us to the transcendental. We can only see the threshold. We can convince ourselves it is there through reason (and experience it further through the corresponding emotions which result from habituating our fastminds), but nothing more. It is a kind of madness to pursue that which you know, by definition, you cannot have. I have long appreciated that contradiction. We pursue the shadows of The Good; it is our plight. My goal is to remove the contradictions, inconsistencies, and incoherence as best as I can. I think that is all I can do.

Of course, we are all half-blind (or worse) here. We have to make do with the shadows we see. I know I can be deeply wrong. I have seen it. So, yes, I cannot trust myself, at least not fully. I must do my best with that fact in my deliberations. 

<<<
Paul dealt with it in Romans 8:18-25 (NASB): “For I consider that the sufferings of this present time are not worthy to be compared with the glory that is to be revealed to us. For the anxious longing of the creation waits eagerly for the revealing of the sons of God. For the creation was subjected to futility, not willingly, but because of Him who subjected it, in hope that the creation itself also will be set free from its slavery to corruption into the freedom of the glory of the children of God. For we know that the whole creation groans and suffers the pains of childbirth together until now. And not only this, but also we ourselves, having the first fruits of the Spirit, even we ourselves groan within ourselves, waiting eagerly for our adoption as sons, the redemption of our body. For in hope we have been saved, but hope that is seen is not hope; for who hopes for what he already sees? But if we hope for what we do not see, with perseverance we wait eagerly for it.”
<<<

We run into the problem of authority again. Why should I take Paul to be correct? Why should I take the Bible seriously (outside of understanding what it gets right in ethics, the historical lens, and it's enormous memetic popularity and influence)? Why should I think the Jews and later the Christians were correct? As far as I can tell, the evidence, the coherence of the world, the understanding of human evolution, the empathy with other cultures, understanding how anthropocentric and small we really are (and paradoxically must be to some extent), and my continual escape from the clutches of dogmatic gnosticism points me in the other direction. 

The resonance I experience may simply be different from yours. I am convinced that my agreeing to the transcendent, to hope, peace, and justice, to pursuing The Good, to being rational, to being happy, to being existentially fulfilled, to appreciating and living with our awareness of these things seems best done outside of Christianity. Christianity was an important starting place for a small percentage of the human species, but I see it is not the destination. Call it arrogant progressive revelation (or uncharitably: relativism [which I would contest]) if necessary. I call it a hermeneutic circle, but this one spirals.

<<<
Why is creation subjected to all this futility? In what way can any of this apparent barbarity be related to hope? God, we simply cannot understand!
<<<

I struggled with Theodicy for a very long time, among many related paradoxes of Christian faith (it has been the driving cause of my pursuit of the concepts of freedom, agency, and responsibility in metaethics). The evidence against God, particularly the Christian God (since that is the one I've studied most), is Legion. I have enough charity to set aside a space for the hope in the logical possibility (which is an incredibly weak claim in epistemology) of defeating those objections, however unlikely that may be. Again, when it comes to certainty, I'm agnostic. But, I cannot ignore the evidence. That would lack integrity, and I think it would be unwise. 

<<<
Now put that in your pocket with the idea that this God is chasing you around and think about this:

You know the story Jesus told about how hard it is for rich men to break through to the Kingdom of God? Why is it so hard? It is because they have to lay down something they value more than anything else in the world, and they have so stinkin’ much of it to lay down! I don’t have that problem, and neither do you. 

Or do we?

What if the same rule applies to other forms of wealth? A wealth of knowledge, of intuition, of creativity, of intellect… is any one of these easier to lay down than a few billion dollars? I think not. We are very accustomed to leaning into our own strength, and we have seen it topple all the problems we have turned it on. All, that is, but One.

What if your greatest strength is your greatest impediment to knowing the God you cannot stop seeking because He is relentlessly seeking you? What if the fact that you cannot understand Him is compelling you to deny Him when you cannot deny Him without denying yourself? What if I told you that that is the extreme end of every gifted person’s quest for (flight from) God?
<<<

I interpret the rich man as being unwilling to sacrifice himself, his happiness, etc. for another or something greater. It's not simply a story of giving up something we value; it's about overvaluing ourselves in particular. I wouldn't say that is precisely my issue here (although, I'm obviously deeply concerned about being happy after my deconversion).

I am willing to sacrifice myself. I am willing to die and suffer for the right reasons. I believe I have the integrity to do that. But, I have seen that I must be wiser in my selection of what I'm willing to sacrifice myself for. We must be wise in what we devote our lives towards.

I agree that intelligence is a kind of wealth, but I think it's a very special kind. Intelligence is directly what allows us to be wise, and wealth less obviously so (indirectly and instrumentally, to some extent, yes; it's hard to be wise when you are starving).

I agree my intelligence is an impediment to Christian faith (although, not an impediment to the belief in the transcendent). But, I don't think this is a bad or wrong thing. I do not think I'm being unwise. In fact, I think I've been unwise to be so faithful for so long. Being unwise means you aren't really being very intelligent in crucial ways. Wisdom is a specialized kind of practical intelligence, knowledge, and effectively trained emotional reactions. There are many things which I'm not intelligent about, and I've made many mistakes in this arena. As you point out: I know what I've seen though (although, I mean to say this in the sense that: I cannot unsee what I've seen. The evidence is overwhelmingly convincing to me).

Why should I think agreeing to and being moved by your claim would be wise of me? Ultimately, we cannot escape Reason being the core of the wise decision procedure. To be clear, this is not the claim you are unreasonable; far from it! You are clearly brilliant and have walked these paths many times. I think our reality maps fundamentally differ though, and so, in being as reasonable as we can, we choose different paths.

I do see myself as being in a rare (but not unique) position. Not everyone has the chance to see what I do, and so I have given serious thought to how others in my position have made progress and how they handled these existential crises. I have spent a non-trivial amount of time researching the search for meaning in the lives of gifted people. Not all journeys are the same of course, but I think they may provide footholds for me to learn from. I still must test it with reason though (not that I'm perfectly rational or the arbiter of what counts as reason for others); it must click with me; it is the only wise decision I see. I do not know how to reason myself away from reason, except insofar as it is necessary for reason or wisdom. I am neither convinced the Christian God is necessary for reason or wisdom, nor am I convinced that the Christian God is the fitting result of my reason and wisdom (however poor it may be).

<<<
In the end, you come to the realization that you cannot reconcile God with the natural world any more than you can blend the sea with the sky. You just have to decide whether you will recognize yourself for who you are – an air-bubble transforming into your true self above the reality around you – or a part of the reality encasing you and divorced from the sky. No matter what you decide, you will rise. All you are deciding now is how the air above you will receive you when you are freed from this present reality. 
<<<

I think it is in my realization of what I am that I have come to terms with and felt a peace about my loss of Christian faith. I have also studied PK's and MK's; there are several consistent tropes and patterns I see in us. It is the best option I can find in my context. That doesn't mean I'm certainly right, of course. It could be temporary and lacking. The pursuit of the transcendent will always be incomplete.

<<<
I believe that you will make peace with the God you are presently denying, because I am convinced that you are too mentally honest to do otherwise. I pray that God protects you and your family – my family – in the process. I would tell you to stop making it so hard on yourself, but that would be like telling you to stop breathing the air. This is your journey. I would not presume to drag you along it even if I could. But can you see my little light shining from where you are? I am a bit further along on a very similar journey. I am listening to you. I am praying for you. And if you need me, I am here.

​Now that that's said, I can get back to my listening, and you can (I hope) get back to your decompressing. (You knew I was a preacher, and that preachers preach, right?) Still, I want you to be heard and to know that your journey matters. 
<<<

It is clear that you understand much of my cry and conflict. Few see it as well as you do. I feel indebted to you for taking the time to respond to me and to empathize with me. I mean it with the same heartfelt-movement I experienced when I was still Christian when I say: I see Christ shine through you. 

I definitely appreciate the desire to save my soul. I think it shows incredible kindness and empathy. It's an expression of love. 

I know it is not easy to talk to me. Lots of people think I'm an arrogant prick (although, thankfully, not everyone). Of course, convincing me is not easy (I would know). You may feel like you are arguing with a brick wall. I can only point to who I have been and say: I have obviously been convinced by many arguments over time. I have changed a great deal and will continue to do so. I am listening. 

Thank you.


Love,

h0p3













Today I took a test on powertools. I tend to read ahead in the book. My teacher gives us a study guide, and I carefully study those particular sections. I make A's on tests, but sometimes I miss a couple questions. My teacher seems unworried by it. But, this is a culture which is fine with C's and B's. I will force myself to retake the actual pipefitting exams until I can get them all right though.

Since I took my test early in the day (Mondays, from what I've gathered, are days where people sit on their asses and pretend to study while the teacher screws around), I was given something cool to do. I had asked about pipebending (since my brother talks about it often). Apparently, it is very uncommon for a pipefitter to do, but it does happen. So, I wanted to learn. We happened to have a giant programmable pipebending machine. We dusted it off (cleaned it and the area around it too) and started using it. I got to work with black iron pipe for the first time, and I also got to use the giant pipe cutting machine for the first time (super easy to use). Apparently, we are making 90s for the welding shop to use that day. /shrug, cool with me.

The pipebending machine hasn't been used for a year. My teacher had to bring out his calibration notes and the manual for the machine. We kept being 13 degrees off on our 90 degree bends. We cheated to make the bends (try squaring it by hand until we got it "good enough"). This didn't satisfy any of us. My teacher couldn't figure it out, so he let Keith and I to figure it out. We watched the manufacturer's video, read the documentation, and messed around with it. It started working correctly for us, thankfully. I hate to say that I don't fully understand why we got it working when my teacher couldn't. It was kind of baffling. My suggestion, that we weren't initially mounting the pipe at a perpendicular angle (which is necessary) was turned down. I am quietly suspicious that I'm still right about this, but I can't say that I know that I'm right. I could easily be wrong.

I've been studying CAD prints. There is a lot of information on them and tons of objects I've never seen before. It looks doable though. From what I understand, the foreman (and/or pipefitter) interprets the prints and gives instructions or simplified isometric drawings to his underlings. A student who has been in the field (although, I suspect he doesn't have the drive or wisdom to know how to maximize his upward mobility) says that I wouldn't see those plans for at least 3 years as an apprentice. My teacher says a good journeyman or foreman would take the time to show me (and that I should definitely seek to understand them). I can only assume I will need to be excellent at it. My teacher walked me through a bunch of problems/questions I had about the prints he lent me. 



 

Dollars to donuts, Trump has a slightly above average IQ (kill me, please /s) and an extremely high dark-triad spectrum rating. He's not bright, but he's smart enough to infect people's minds with garbage. He's learned to say the right garbage, in the right way, at the right time, to the right people, and so on (but, obviously, not for the right reasons). He has a kind of memetic virtue to him (however disturbing the thought) like the virtue of viruses unto themselves. In his extreme way, he desperately seeks to appear (if not be) wealthy and powerful, and he miraculously pulls it off in some twisted self-fulfilling prophesy. This alone is enough for him to want to be POTUS.

That said, I think many worry that Trump's apparent admiration for Putin will emerge as sincerely flatterious mimicry. How is Trump going to fleece us beyond the opportunity cost of having a POTUS who even appears remotely sane?<<ref "1">> He's clearly going to profit from being POTUS. We know the why. We don't know how, or at least not all the ways.

Trump's family's housing arrangement and consistent vacations seem almost like a direct transfer of a non-trivial quantity of US government cash to himself. This is beyond wasting taxpayer money. Trump is healing his self-created insolvency with our money. I can only assume he will milk us at every corner he can if he would do it so openly at this almost childish level. We will see what other methods he finds to enrich and empower himself during and after his reign.

Our only hope is that he's too stupid and lacking in empathy for himself to follow the advice of those who could really turn him into an even more terrifyingly competent Putinesque monster (Trumps connections with Russian political and kleptocratic interests is frightening). He did straight up say in his campaigning that he would leave all foreign and domestic leadership calls to his hand-picked staff (uh...). Four years or until his impeachment seems like a long time (literally too long, ofc), and it may only be a matter of time before Trump understands how to effectively wield his new toy, the Office of POTUS.<<ref "2">> 

We have passed the point of presidents who willingly go into debt because they know they will have the political clout and "foundations" (non-profits too often are fronts for making money and discharging or converting social and political capital) to pay it back and still make bank while swinging their big dicks around with the Hyperclass. Sinners with shame are bad enough, but sinners without shame may be even more dangerous.<<ref "3">> Trump marks a new era in government corruption, particularly in his blatant openness about it and our willingness to accept it.

-------------------------

<<footnotes "1" "e.g. Shillary. Not that she is actually sane. Her front is a different kind, and the evils she would bring with her a different breed.">>

<<footnotes "2" "I can hear fools telling me to 'respect the office.' As always, that is some psychopathic bullshit. You'd have to hate yourself and fail to respect your own dignity (and others) to agree to that obvious falsehood.">>

<<footnotes "3" "To a point, of course. We can't always tell the difference between those who cover themselves with the mere appearance of shame and those who actually experience it. The truly most dangerous devils are those who still look like angels as they stab you.">>
Cambridge Analytica may or may not be snakeoil. I take it to be a reasonable possibility they legitimately contributed to Trump's victory. They appear to be a company devoted to "audience targeting" and mass-manipulation done more efficiently. Perhaps they are weaponized marketers, and it is possible they wield non-trivial influence over us. If not them in particular, then perhaps an entire industry.

We also must worry about automated propaganda filter-bubble generation and social media analytics/bots which provide significant predictions and enable not only conversations and claims to be shaped in the public sphere but even injected into our private lives. Automated astroturfing and mass behiavor modification are significant weapons. The US military-industrial-complex have long worked on such projects. Targeted and mass idealogy and behavioral shaping exist. There are profound technological memetic weapons wielded against humanity. 

Companies like Google shape what you see more than you likely realize. Know who "serves" you and why. Beware of Geeks bearing gifts. It is inevitable that a capitalist society will (and imho already has) enabled much darker corporate adversaries to arise (and many have been around longer than Google).

Big Brother isn't merely the state. I don't know if it ever really was either. I believe it is a much more dangerous adversary than a simple government since it is increasingly owned, used by and for, and beholden to none other than the Hyperclass. We should fear psychographic weapons which abuse our monkey-brains and keep us on an emotional leash. Automated functions which influence human beliefs, emotions, behaviors, etc. should be highly regulated, not to form an oligopoly on it, but rather to prevent abuse and mistakes that we can't take back. AI-empowered rhetoric is on the side of the Two-edged Sword of Technology we don't want to see. Transparency is key. 
Homo sapiens can be categorized in many ways. Let's be clear: differentiation is not conceptually immoral human prejudice (racism, sexism, etc.) by definition, even though in practice they often are connected (sometimes a poor theory is applied, and sometimes we see a poor application of a theory). 

There are genetic categories of human beings. Depending on how you differentiate (your principles and reasons for them), you may see only one genetic category or you may see each individual human as their own genetic species, or you may see something in between.This is the genetic categorization spectrum. Again, we're generating description, not prescription here. 

There are clearly memetic categories of human beings as well. I think pure Kantians and pure Psychopaths are different memetic species. Again, we're generating description (not prescription) here.



I guess I was able to convince my teacher yesterday (despite his "you've gotta learn to crawl before you can walk" response) to allow us to try special offsets (it was the natural next step, since we've covered regular offsets already in practice). I did the math right. We had difficulty figuring out how to measure it (the protractor is broken and we were misguided by another student). After we figured it out though, we got it built. Everything looked clean. The teacher eventually checked it out (his alcoholism and personal life really get in the way of him actually being present to do his job). He checked the levels, the rise (neat trick which I'm glad to have used, since I knew that is what he would be using the check it with), and the center-to-center lengths of the pipes. I always check these, since I know that's what he's going to do. He said everything looked great (because it did; I wouldn't have handed in half-assed work). 

Afterwards, I voiced my worry that I had used the level+measuring tape to check that our rise was correct, but I wasn't quite sure how to do it for the offset (he should have taught us that today instead of getting drunk, wandering, and watching Youtube,  since this was our first time doing special offsets). He showed me (it was a simple rotation, and I'm embarrassed I didn't see it), and when we checked it, the length was off by an entire fucking inch. In pipe, especially at the scale we were working at, that is like missing by a mile. I was mortified.

Since he had already passed it, he didn't want to go back on what he said. It was obvious that he wished he didn't pass it. It shouldn't have passed. I know I didn't pass it. Something was really wrong, but neither the teacher nor I could give a satisfactory answer (my partner, Nash, doesn't give a shit: a pass is a pass to him).

I have spent time trying to figure out what we did wrong. I'm pretty baffled. The teacher claimed it was that our parallel pipes against the Run weren't perfectly level. But, I checked those very carefully (and even the teacher saw it). I don't think that accounted for being an entire inch off. I checked the math, especially since we are forced to round our degrees and lengths (which can vary up to a half a degree in rise and roll, and sometimes a 1/16th of an inch in length) -- rounding couldn't account for that much difference either. I know I will be trusting that broken (some of our fellow students broke it) a lot less, and I'm going to measure a lot more by hand. Maybe it was a combination. I don't know. I'm actually disappointed in my work today. Clearly, the "learning to crawl" claim is still accurate. Well, shit. That's okay. We've all got to start somewhere.

I need to learn more leveling, a-plumbing?, and degree measurement tricks. I need to see the right, cleanest, and fastest way in advance. I at least did the right thing in building the special offset before building the edges (which is the more natural approach). Well, I hope he gives me a couple more special offsets. I clearly need the practice. That puts me behind the schedule I wanted to be on, but I am strongly convinced I need to understand putting geometry+trig into practice like the back of my hand. It doesn't matter what kind of pipe of construction method you are using, the math is always fundamentally going to be the same (TO's vary, ofc). 

On a positive note, because the teacher was screwing around (and I was forced to sit around waiting for his input [normally I read ahead in the book, but there is less for me to read now]), a fellow student, Connor (who is obviously not a fool) taught me to use one of our welding machines. Having read about it, I knew a bit about what to expect. Let me tell you: welding is really hard. It's an art. I've gazed at a lot of Welder Porn, and my beadwork is a giant pile of shit. Connor said my first time was still decent, and better than any of his partners (all in the last trimester, but they are retarded). I also got to tack for Connor's buttweld object. I can tack. The actual welding (which thankfully, neither the tack nor the welding will ever be in my job description as a pipefitter), fuck no. I'm looking forward to practicing a ton just because it's fun and could be useful later.

Unemployment is a misused economic marker turned realpolitik symbol (like the price of gas). It enables us to inform and tell many kinds of fundamental political and economic stories.<<ref "1">> It's an influential metric about a contentious issue.<<ref "2">>  

Defining and measuring unemployment is not simple. There are many stakeholders and interpretations of data that isn't entirely public. It's crucial that we appreciate what it represents, what it tells us, and more importantly, what it doesn't. Most people use the official U-3 unemployment rate because that's what most news outlets use. I believe this is a mistake on both practical and theoretical levels. 

I do not mean this in a post-fact sense: we should take statistics and those who wield them with a grain of salt. Social science requires context and argumentation.<<ref "3">> Problematically, I am convinced people gloss over what unemployment is actually trying to measure.

The goal of the "Unemployment Rate" project is to measure and identify patterns in labor underutilization.<<ref "4">> The goal isn't to merely count in simple piles who has a job and who doesn't. There's something deeper and broader we're trying to accomplish with it. Roughly, we're trying to measure and define the various contexts in which people's skills, knowledge, effort, time, etc. are being used by our economy. i.e. Is capitalism maximally consuming human capital? Who is being consumed, in what ways, to what extent, etc.?

Unfortunately, even the more realistic U-6 measurement, which tends to show double the "official" unemployment rate, does a  poor job of capturing the ideal information we seek. Of course, U-3 and U-6 tend to show extremely similar graph structures (not an accident), and I'd wager both have their uses for people working in economic, financial, and monetary sectors. One of them, however, is clearly closer to the ideal mark (not that we will ever reach such a thing; it is clearly infeasible) though, namely U-6. It is a more accurate depiction of labor underutilization, the underutilization of human capital.

Our information is deeply incomplete. The "pragmatically" (i.e. self-interested) willful-ignorant will be tempted to say, "this is the best we've got" and be done with it. That is the wrong attitude, and that is not how we should aim for the truth (particularly on such a crucial metric for understanding the natures of human realities). We really must dig into what counts as "people's skills, knowledge, effort, and time" to see the holes in our measurements, to more closely align theory and practice, and to be able to more accurately understand the world we live in so that we can become a happier species. 

I think this is a much clearer (yet obviously far from clear) set of ideal metrics of the Real Unemployment story: 

* If I have X amount of skill, and only Y amount of it used, then Z% of my skill-based capital is being used. 
* If I have X amount of knowledge, and only Y amount of it used, then Z% of my knowledge-based capital is being used. 
* If I have X amount of effort, and only Y amount of it used, then Z% of my effort-based capital is being used. 
* If I have X amount of time, and only Y amount of it used, then Z% of my time-based capital is being used. 
* ...and so on and so forth...
* etc.

Take a genius, force her to pick cotton for her entire life, and you've deeply unemployed her because you underutilized and underemployed her as human capital.<<ref "5">>

There is an ideal algorithm for sorting through this ideal data which gives us the ideal unemployment/underemployment<<ref "6">>/underutilizated human capital rate. The U-3 measurement is miles from the ideal. More importantly, it is even miles from the practically ideal or the ideally practical. While nobody and no measurement is perfect, we can do a lot better.<<ref "7">>

We've accepted an unreasonable "new normal" by ignoring the reality of what is measured, by being content with the U-3 measurement, by not taking it upon ourselves to think carefully about what is happening and what it means. That aphoristic phrase: lies, damned lies, and statistics is applicable here (even the statistics themselves show it). When you start looking more closely, you'll find the official information deeply lacking. Look around you. Use your imagination to see the possibilities. Reality is darker than you think, and it can be a lot brighter than you realize.<<ref "8">> 

----------------------


<<footnotes "1" "The audience must always seek to understand who is telling them the story and why. (Trust no one, yo. [;P])">>

<<footnotes "2" "During my last conversation with my parents, things were going swimmingly enough. Two hiccups, one was a discussion about substance use (although, they brought up the subject, I clearly made them uncomfortable when I brought up my own use later). The other was unemployment. My parents and I clearly disagree on the state of the world in many ways. We try to say the right words with each other and avoid topics that might cause conflict. Unfortunately, they often don't know what we disagree on. I hate that we feel like we're in a lose-lose position. I also react strongly when I see that it is their and their generation's attiude and point of view that have brought this calamity upon me and mine (I lacked empathy [and so did they]; I hope I will do better).">> 

<<footnotes "3" "My parents remain ever correct in their appreciation for mixed quantitative+qualitative methodology in social sciences.">>

<<footnotes "4" "Although, that isn't the Final Telos. Clearly, we take these measurements for other reasons.">>

<<footnotes "5" "There are other important narratives to consider here. When you define The Good, you have an even stronger point of reference to understand the underuse and even misuse of human capital. We move past mere capitalist exploitation into understanding the ways and extents to which we contribute to and partake of The Good. This is what the ideal of ideal Real Unemployment measurements is about.">>

<<footnotes "6" "I can hear the morons now claiming that the problem of underemployment is simply the result of too many people going to college (as if the fundamental reason to be educated boils down to one's market value [to be against the liberal arts is literally anti-intellectualism and antipathy for humanity]). I do not trust anyone who does not immediately accept the necessity of idealism, regardless of how practical they find themselves to be. For the record: Mike Rowe is a conartist.">>

<<footnotes "7" "Unless we must discuss the very concept of freedom. This is a lose/lose position though. You will give something much greater to be right on this.">>

<<footnotes "8" "Do not commit the naturalistic is/ought fallacy; do not conflate them.">>
It is difficult to know what is real and what isn't in these troubling times. Finding the truth is hard work. Despite Trump's denial of relations with Putin and Russia, the evidence and events we've seen appear to point very much in the other direction.

* Trump's administration has many ties and private lines of communication with Russia, and we've already seen several resignations over these ties.
* Our own intelligence agencies withhold information from and clearly have a broken relationship with Trump because he may be compromised by Russian interests.
* Trump has publicly defended, complimented, and stated his admiration for Putin on multiple occasions. This is wildly different from how Trump treats other leaders of foreign nations. Additionally, Putin has a similarly positive stance toward Trump.
* Trump's Dossier, a credible-appearing piece of opposition research, suggests Trump faces both the Russian carrot and stick.
** The carrot is bribery. It appears Trump may have gained a stake in the ~19% of Rosneft (Russia's largely state-owned oil company) recently sold to a privatized matryoshka shell corporation (anonymity for capitalists).
** The stick is blackmail. Who wouldn't want to get pissed on by a beautiful prostitute? I'm sure there is far more in that mailbag. This is believable given Russia's fame for its profound surveillance of public figures, politicians, and powerful individuals within its borders (and Trump has certainly visited Russia). Par for the course.
* It is rumored that White House recording equipment is turned off for conversations between Trump and Putin.
* Russia, by its own admission, communicated with Trump during the election campaign.
* Trump has weakened the RNC's platform for the US-aided defense of Ukraine, a nation partially illegally (by international law) annexed by Russia. This is giving the nod to Russian imperialism. 
* Trump is quite hostile to NATO (going far beyond the usual US presidential criticisms), an institution which stands in opposition to Soviet power.
* Russia is widely thought to be responsible for the DNC hack (and possible RNC hacks). This is no accident. Russian interference with the US election is likely quite real. Clinton appeared to be anathem to Russia, and Trump was a loose canon they could buy.
* There is a rumor that Russia will gift Snowden to Trump (who obviously despises transparency and whistleblowing and seeks to make an example of Snowden [with fervor beyond even that of the War-Criminal Obama]).
* Trump's son (who is clearly very trusted by Trump given the attempt at a fake blind-trust) admits to heavy Russian investment in Trump's businesses (yet another reason Trump would not liquidize his assets to avoid conflicts of interest).

Clinton is obviously a warmonger (even moreso than the ever disappointing war-criminal Obama, Bushtards, and her psychopathic husband). What seems scarier about Trump is that the inevitable conflict escalating into an all out war is the result of his //collusion// with Putin and Russia. Totalitarian rulers need war.<<ref "1">> This is beyond Coldwar. It's part of the reason the US has always been at war. Trump appears to be taking this to the next level. It is so weird to see Putin and Trump buddy-buddy while hostility accelerates. 

Why? That is the question. The broadstrokes are not enough. Trump is no mastermind. What does this war buy Trump? Putin? Who are the winners and losers (you know, besides the world in general)? I simply don't have enough information or I'm not smart enough to see it (probably both).

----------------------------

<<footnotes "1" "I'm always blown away by nationalism and supporting the military-industrial complex. Fools.">>
I'm feeling better about yesterday's project after today's, and perhaps I shouldn't. Basically, Nash had to go study for the test he failed, and I was given our next project. I understood what it looked like, did the math twice, grabbed my supplies and organized them, and started making screwpipe to order. I'm very fast now. I nearly finished all prep work in 30 minutes (before our 1.5 hours of watching safety videos on cranes/etc.)

They weren't the usual overly deep threads this time. I still had 3 turns but also followed the threader's hardware recommendations too. I'm threading the pipe as lightly as necessary to get 3 turns, and I'm trying not to go too deep. It clearly makes sturdy connections that way, and I still get the safe quantity of rotations. I fear we have a silly shop class practice which makes it easier to screw pipe on. The goal is tightness, sturdiness, and maximal seal for a reasonable amount of effort, and I think students are avoiding that. I've seen a lot of 4 and 5 turners from Nash.

Anyways, after lunch I got to start building. I built the special offset first, it was clean, tight, and level. Nash joined me, and we started putting the rest together. We did it well, and we were very careful to level at every stage. We took no shortcuts. The moment of truth came upon rotation, it was clear that we were off by exactly 1 inch (uncanny!), again. I assure you that the cuts and lengths were fine. The center-to-center TL measurements were good. And, yet, it didn't work. I was frustrated.

I asked for Tim's help, since I realized I must be doing something fundamentally wrong at this point. He took all the measurements, levels, and shrugged. Seeing I wasn't pleased, he told me to do what I had already done. I didn't argue. We did again (and again). He checked again, but he would not actually stay there with us to see the steps. He was as puzzled as we were (although, Nash did not understand why Tim and I were expecting particular pipes to be level on the correct rotation). 

He told me he takes my word for it if it is finished. He also later said not to let it bother me. We got it close enough, and that was good enough for him when it came to screwpipe. I think he knew what was going to happen, and he's trying to "let me off the hook" because he doesn't have an answer. His answer is the rounded degrees now. I'm not going to push him about it. I'm going to let him let me off the hook here. I think he's telling me to relax my standards, so I will. He's a pro at this, and even if this technically should work, I should trust his judgment. It is practical. 

Everyone, even the teacher it seems, thinks screwpipe is a possessed demon over which you cast spells and pray it works. Uh...what? There is clearly an explanation for the phenomenon, but I've not found it yet. I mean, I realize I can't actually find 44.7 degree fittings, only 45's; but .3 degrees does not account for an entire inch here. Where be mah scientists and engineers? 

My partner borders between "not giving a shit" and "being annoyed by" this problem and my focus on it. We're cordial, of course. Thus, I will learn to let it go. Be cool, man. 

Whatever.  We cleaned up and left. I have heard rumors that we may not have class on Friday from rumors my teacher heard. Essentially, schools everywhere are having temporary closings, Sick Days en masse.

So, I feel better about it. Outside of the practical on-site particulars and principles which I've yet to encounter (I will eventually develop the virtuous perception of it), I'm good at screwpipe. Additionally, none of the official prints I've studied seem to entirely avoid special offsets, except standard offsets using isosceles with 45's. They certainly had tons of information I didn't understand, but visualizing the broad undetailed pipework in these plans is very easy. The details, however, will take time to appreciate, feel, and recognize immediately. 

My teacher is convinced screwpipe is widely used enough that all pipefitters at some point or another will encounter it (particularly if and when jobs are scarce). We will see. 

On a different note, two of the middle-classmen who work together (I regularly ask them questions, even over the upper-classmen) got a temporary co-op. They were very excited. I am not convinced it is worth it yet. I am still learning a lot, and there is much to master. If I see us slowing down more and more though, I may take the option (perhaps my teacher may even push me that direction). I actually could get away with taking a test and practicing new stuff for 1-2 days. I think most of the students can't, but I am talented (and conceited! ;P). 

Hey, it would be money and experience. It would hold me until the union. I really don't want to sacrifice my speed and knowledge gained through this program. I need to be sure I'm maximizing its potential. There is networking to be done as well. 

I see that the union would much rather not pay me to learn this. They want to maximize the capital they can extract from me as well. The union is the only place with guaranteed training. It's worth getting into, even if they are ugly. How best can I pay the upfront costs? It still seems like crushing this class and making a name for myself through my teacher is extremely useful. 

I don't know yet. I will pay very close attention to what my co-op'ed classmates say, with a grain of salt and Straussian ears, as usual. I need more information to maximize my efficiency and minimize my risk.






//This one is hateful. I'm right, but that doesn't mean I will be convincing. I take this to be a useful opportunity to blow off steam.//

I am amazed at the public's backlash against whistleblowers. You people are fucking retarded, and I hate you all (even as I attempt to empathize with you [as you can see, I'm failing in this moment {or perhaps, I'm empathizing so well with you that I'm literally saying what you'd say, in the way you'd say it, if you knew what I knew]). You are part of the problem. It's one thing for your stupidity to cause you and you alone to suffer and die. It's an entirely different thing for your malicious ignorance to cause everyone else to suffer and die. What gives you the right to be like you are? I have no power over your malicious ignorance. 

I want to scream at you all: don't you see the difference between morality and legality!? The legal positivists are right, and therefore the rule of law is still fundamentally a joke.<<ref "1">> Godwin's Law time: Hitler and Nazi Germany had a conceptually legitimate government. That doesn't mean we should do what they say, that doesn't mean we are unconditionally, normatively bound by their laws, and so on. Apply that reasoning, for the love of god, before we all suffer and die. I would stomp a hole in St. Paul's ass regarding this if I could (you aren't looking so hot yourself either, Jesus<<ref "2">>); that brilliant dickhole saw one mountain, but none of the mountains behind it (thanks for that).

The DNC and far too many democrats I know have consistently opposed and sought to punish/prevent whistleblowing.<<ref "3">> This was especially obvious when a Democratic president, Obama, was in charge. The DNC are wolves, and democrats sheep (fear not, I have even harsher opinions about the RNC and their pig-slaves). Now that Trump is president, the DNC and the democrats I know sing a completely different tune about whisteblowing. They are all for it now. They see the value in it only when it suits them. Hypocrites and psychopaths, the lot of you. Your lack of even trying for ideal idealism disgusts me.

You buy that aphorism: information is power. Who do you wish to empower? Who should you really fear? What does it take to have a functioning democracy? Don't you see the necessity of whistleblowing? Don't you see the real enemy? Of course not. You are a fool.

We are fighting capitalism, the Hyperclass, deep states, dark money, mind-control,<<ref "4">> multi-national political entities, and the idiocy of humanity. The punks and hippies were telling you the truth before they were corrupted and swallowed up. It's the "system," man. Truth is everything. Transparency is key. Sunlight is the only disinfectant. Whistleblowing is a necessary condition to our freedom, political equality, economic opportunity, and happiness.

Look through the history of whistleblowers. Whistleblowers are not perfect people, but they are almost always heroes. They are people who sacrificed immensely for you. Look how you repay them! You know what, I have every right to be angry with you. You are, in no small part, the reason this world sucks and the reason I'm unhappy. Fuck you, and please KYS.

------------------

<<footnotes "1" "It seems only the virtuous, which often doesn't include me, really know when to apply the rule of law.">>

<<footnotes "2" "I can think of a couple gnostic interpretations of Jesus that allow him to escape this criticism. Odds are that you don't give a shit about that though. I'm sure you know what Jesus 'really' meant.">>

<<footnotes "3" "Inevitably, there are fools who think the 'proper channels' are the normatively appropriate channels by definition. Again, please see the moral/legal distinction.">>

<<footnotes "4" "Let's be clear: telepathy and supernatural means of manipulating objects and minds are bullshit. There is no radical neurosurgery (at least not yet). And, yet, memetic conditioning and mind-control are quite real. Classic rhetoric was only the beginning. We have honed it, technologized it, and created mind-weapons. The power in the hands of the few is breathtaking.">>


Teacher didn't show up today since he was sick. It may have been planned (given the rumor he said the day before). The Flu is very contagious this year. I'm hoping to avoid it. I'm okay with being out of class today. I got a call later today that we aren't going to have class (as rumored) tomorrow either. Welp. Whatcha' gonna' do? I'll enjoy my time off and work hard on other things. Hopefully we can dive back into it next week.
* 7" Fire Tablets with Fire OS 5.3.1.0 to plain Nexus Android
** Devs are making it harder and harder to gain control of these devices. I was lucky not to use wifi (and use it minimally when it was necessary for this procedure).
** I've never done this from Linux, but it turned out to be crazy easy on the desktop end.
** Found a great kit that said it sometimes did 5.3.1.0 after multiple tries (why it takes multiple tries blow my fucking mind, but it was true). 
** Root took quite a while, threw on some other stuff, and it took a while to find a version of FlashFire that worked on this device.
** I actually bricked the machine on the first ROM substitution.
** Thankfully, unbricking wasn't too bad. Grabbed an image and pushed it on the device while in recovery mode through adb.
** The second time went much faster, and I tried a slightly different ROM. Worked like a charm.
** It's one of the cleaner installs of Android I've ever used. It's very bare. I adore it.
** This was the second or third hardest time I've had taking control of a mobile device. This one was especially locked down.
* [[j3d1h]] was setting up her grandpa's VM to autostart on our HTPC. Whatever she did seemed not to work. 
** It was running hot anyways, so we took it apart, cleaned it, and attached the CPU-fan (which apparently needed some fixing anyways). 
** Whatever the problem, there was no simply troubleshooting. So, we actually just reinstalled. It took about 2 hours to get it all together, but it's basically set now.
I hope to study human tropes. Sourcing from:

* http://tvtropes.org/

Here we begin the trope inspection.

* [[Trope: The Social Darwinist]]
Hello, h0p3!

Sorry to be slow in responding. You know that death tsunami predicted a few years back? I am feeling the first waves of it. Few pastoral responsibilities trump all else like the funeral, and having them back-to-back is exhausting.

Thank you for looking so closely at my witness to you. I was concerned that you might simply dismiss the whole conversation and be upset with me for trying to reclaim you. Thank you particularly for being generous with me when my words stumble. I have a deep respect for you and would never be deliberately uncharitable.  

I am not adept at arguing. It is usually a waste of energy and time for me. But I do listen and I do care. 

Faith is a "substance" that presents as fragile - almost gossamer - but wears like a magnesium alloy. No one can transmit faith to anyone else. We can only tell the story, and you know the story by heart and head. Faith is not given to you, it comes to you on its own. 

You say it is not easy to talk to you, and that may be true of us all from time to time, but it is easier to talk than to endure unyielding silence. I am not heavily invested in convincing you to believe in God as I know God. I am more hopeful that God will walk toward you in Self-revelation. That is a terrifying thought, given the many facets of God's revelation, but everything I know about the nature and depth of real love I learned from such an encounter. We all need intelligence to survive in this world, but we need love to live in it. 

Years ago we had a discussion about the individual v communal basis of faith. (Do you remember that conversation?) We disagreed on where one's faith-practice found its origin, while we both admitted that faith works itself out in both spheres. I still believe that faith is more an individual matter of the heart than an acceptance of a societal construct. In that sense, you might be closer to faith now than you were when you were drinking the communal kool-aid. Remember that Jacob wrestled all night with the angel before he became Israel.

Keep digging at those religious roots. When you find a living one, you will recognize it. I know relatively little about religion, and would be comfortable knowing less than I do. What I know about and treasure is faith in a dependable relationship. 

Keep looking. I'll keep listening. I love you!

[[R]]
We live in a society where no one believes in anything (in a sense). When everyone lies, we have noone and nothing to believe. The world is so distorted we cannot trust ourselves or anyone else. We can only mumble: "it is what it is." 

We are splintered into factions. We are fragmented. We are beyond disunity. We sit in memetic gridlock as the poison sets in. The collective consciousness of Humanity ruptures, entropizes, and fades. We do not empathize with ourselves. Who are we even empathizing with? Why would we? How would we?

The fakeness of the world hovers between dark surrealism and normality. Understanding reality is such a negative experience that we may even be fooled into believing it is actually derealization. The truth is that the darkness is here though. It isn't merely coming for us. It is already upon us. 

Our dreams are dead. We are disillusioned. We do not have a vision of the future. We do not have hope for humanity. Why would we plan for the future when there is none? We have been well-trained to ignore the possibilities. We are slaves wearing blinders. This is the brutal fact of corporate power. We will not escape.
I am blown away by the number of people on all political spectrums who do not understand the value of scientific expertise and the gold standard of science in empirical realms. I understand mistrusting non-scientists who wield scientific thought (all too often unqualified and agenda-driven). I appreciate how science has been clickbaited and politicized to the point that we are immersed in a postmodern propaganda problematic (in addition to the standard postmodern epistemic problems).  I can even appreciate feeling small and stupid when I can't even understand a century old fundamental theory in physics, like quantum mechanics, in any reasonably intuitive way. Clearly, science is really fucking hard, distributing that knowledge throughout society is even harder, and using the knowledge wisely the hardest.<<ref "1">> None of this excuses our society's profound anti-intellectualism and the rampant denial of the value of science.

I also think there are significant philosophical problematics which scientists are loathe to understand; too often they do not understand the boundaries, purpose, and epistemic position of science itself. To be clear, I think the majority of people (including myself to no small extent) fail in this respect. When I press anti-scientific individuals on their philosophy of science point of view, I usually find a confabulation to justify their metaphysics. That's not what I'm talking about here at all. Scientists and non-scientists alike need at least one course in epistemology.

In an information age of transhumanist religion (and a borderline blind religion of science itself) and the capitalist infection of the pursuit of justified beliefs about the nature of the physical universe, science has been co-opted, corrupted, and faces a legion of barriers to its true calling.  

I appreciate raw curiosity and the pursuit of truth and justified beliefs. Politics, economics, and religion impede, enslave, ignore, and misuse science.<<ref "2">> The incentives and social structures we've placed in front of and around scientists and their respective communities is a true clusterfuck. Even scientists I've met and worked with give me a "whatcha' gonna do, eh?" if they even care about it at all. The crisis of science is part of our global "post-truth" epistemic pattern.

* Reproducibility, a cornerstone of empirical investigations, is dying. Almost nobody does it, and whatever is done is generally privatized (which does not disseminate the information and seals off the public from the knowledge it paid for and rightly deserved in the first place).
* Published work simply can't be trusted because of how difficult it can be to reproduce results. Some fields, like psychology, have fundamental reproducibility problems that extend all the way through their canon. It's so bad that not only is it rare for scientists to be able to reproduce the published work of other scientists, but many scientists can't even reproduce their own work! This is fraud.
* Innovation is deeply overincentivized in a publish-or-perish university (and whitepaper) environment, sacrificing caution, accountability, and intellectual integrity. 
* Massaging data is real. p-hacking and cherry-picking are common. Poor methodology, small sample sizes, and terrible analyses are common. Concealing, manipulating, and fabricating data are tools of the new scientific trade. I've seen it myself! We don't reward people for not massaging data. We don't give them enough reasons to do science correctly. What the fuck do you expect to happen when they can barely afford to eat as a post-grad?
* We see profound attempts to silence and discredit the scientific community (neither using, nor for the reasons I've given), simply to maximize profits for shareholders.
* Scientists and their masters have profound conflicts of interests politically and financially (there is even an increase in "fashion" in science, lol!). The pursuit of truth is compromised. This infection only appears to being getting worse as it becomes privatized.  
* Science is becoming hazier and less accurate for the public. More and more, science finds its success in private settings. We are centralizing knowledge and power in the hands of the Hyperclass. Science doesn't serve humanity; it serves the masters of humanity. 

I say all this not to persuade us to ignore science. Far from it. We have to empower some of the brightest minds in our world to find the answers to serious ecological, energy, technologic, and health problems if we are going to survive.<<ref "3">> Without a publicly owned, transparent, high-accountability, uncensored, and highly funded push for another scientific revolution, our species will not survive the time-bomb we've set for ourselves in global warming and the destruction of our fresh water supply. The end is coming, and science is the only instrument I trust to dig us out. But, I'm a realist. I know we won't do the right thing. That's a pipedream. 

As much as I want the best for the homo sapien species, I really do hate who and what we are.





-----------

<<footnotes "1" "It will only get harder. (I can't help it: That's what she said)">>

<<footnotes "2" "I would like to extend a generalized 'fuck you' to the world at large. Thanks for being terrible people.">>

<<footnotes "3" "The list is obviously incomplete.">>
We allow celebrities to lie to us, and to manipulate us with rags and bullshit. We allow an entertainment industry to hypnotize us. 
It has been a very extended weekend. That's okay. I got a lot of sleep and plenty done around the house (and even on this wiki and with myself<<ref "1">>). 

I love speaking to my brother about his work. My brother is damned smart, although he doesn't always use it as well as he'd like (totally understandable; it's true for all of us). He has insight, and he can articulate it. I'm lucky to have him.

He keeps pushing for me to go union. He has negative things to say about his union, but he seems to be more and more convinced it is the right choice. I'm glad he ended up going there too. Hearing him only strengthens my resolve to get into a union, even if I have to live apart from my family to do it. 



-----------------

<<footnotes "1" "Inappropes: That's what she said">>
The vast majority of public primary schools are underfunded, understaffed student daycare centers which enable both (or single) parents to work outside the home.<<ref "1">> These crucial institutions no longer effectively serve (if they ever did) to maximize the opportunities and well-being of their students, regardless of background or circumstance. At best, they "teach to the middle," "teach the test," sacrifice education for sports and school spirit, and pass students along like number-stamped livestock. They are run like prisons and indoctrinate children to submit (since that's what these kids will be doing for the rest of their lives). Schools do whatever it takes to maximize their income and protect their livelihoods. 

One reason our schools suck: the parents are malicious idiots. The vast, vast majority of people I meet are ultimately anti-intellectual in large swathes of their lives. Shit parents, shit students. While parents everywhere are at fault, they do not carry that burden alone.

Our schools are run by crooks, idiots, and people who are rarely educated themselves.<<ref "2">> We pay teachers criminally low salaries, and we get what we pay for. Money is funneled in all the wrong places. That we do not opensource primary and secondary education is an absurdity. 

Internally, school administrators see special needs students as a drain on a limited budget and teacher time/resources. Atypical children are especially at-risk of falling through the cracks. Minorities are obviously underserved, as are rural and extremely urban areas. Basically, the poorer the region, the worse the education system. These two factors which form a feedback loop only get worse over time while richer areas continue to gain competitive advantage after competitive advantage.

Preschool helps for a while, but the gains are inevitably lost in poor areas. The lives of poor children are "served" by a system fundamentally broken, flawed, and poisoned against them. We do not have their best interests at heart. They grow up in the wrong culture, without empathy, without effective socialization, without family life, without financial training, without practical lifeskills that extend everywhere, without food or necessities in many cases, without good medical care, without a support network, without hope, direction, and purpose. On top of this, we do not give them the educational tools which would allow them to survive, overcome, and flourish. We are all non-trivially responsible for this atrocity.<<ref "3">>

What makes a good public school good has everything to do with being located in a wealthy neighborhood with parents that push for it (not that wealth is sufficient, but it is often necessary, and it is a strong indicator of success in academics and in life [regardless of aptitude, discipline, or merit]). Educational gerrymandering and the bourgeoisie are real. What drives me insane is how few people understand the need for equal education levels between the poor and wealthy ("if I didn't learn to read, then why should my children?" from the poor and complete disregard of the poor in the wealthy), and how even fewer believe the fundamental cause of this problem is capitalism. 

Public schools in those regions are functionally private schools. Poor kids are pushed out, except for sports and the appearance-quota. Living in expensive areas alone pushes out the poor. The problems the remaining poor experience in their daily practical lives give these bourgeois public-private schools even more ammunition and opportunities to cleanse and gentrify their neighborhoods and schoolyards. 

Change is nearly impossible. Policy, admin, the board, and leadership throughout the school system are only kept in check by a legal system which serves the wealthy. They false compromise their way through broken promises and the destruction of the lives of the children they are meant to serve. Of course, litigation can be effective, but this may require significant financial resources not available to all parents. Ironically, those parents who do have the resources to litigate may already have the resources to find alternative education opportunities in the first place. Those who need help the most are the least likely to be able to secure it.

Charter schools are even uglier. It reminds me of the Cigarette-company owned schools in China that train kids to smoke from a young age. It's a disgusting scam, discriminatory segregation, and enslavement. But, let's be clear, non-charter's are simply more nuanced, less obvious, and indirect in their capitalist dynamics. I suspect this infection will only get worse under Trump.

The capitalist infection of American Education travels all the way up to the top of post-secondary education as well. Our opportunity-equalizing system has been hollowed out by capitalism. At best, you only get what you pay for now (and rarely that). Thus, we now subvert, subdue, harness, and condition the poor like human-livestock (to various degrees and in different ways) while merely keeping up the appearances that we don't. 

For-profit education is everywhere. The slimiest of it is found in our ITT's, University of Phoenix's, etc. But, even satellite schools of major universities (even Ivy league quality) are fundamentally for-profit. Universities have become further bureaucratized and run like businesses. A financial industry has evolved around it. It is increasingly owned, operated, and shaped by corporations. Even the Ivy Leagues aren't immune.<<ref "4">>

Students who graduate from the slimiest for-profit schools on this Capitalist University spectrum literally hurt their reputations and are laughed out of any serious interview process. They also tend to have enormous debt for a degree that can't get them above minimum wages (which are already starvation wages). It's a direct scam across the board. They learn nothing (or even worse, learn it the wrong and obsolete way) and lose everything. These "schools" are marketing companies, recruiting and pushing people through the paperwork necessary to take government money in return for nothing. They are loan sharks and educational pimps. The slime lessens as you rise through the social ladder of the university system, but it is still there. I have gone to school in many settings, and the differences were remarkable. Capitalist corruptions were always there though. You still see the slime ooze through different cracks and in different ways, regardless of the school you attend.

Grad students, post-grads, TAs, instructors, lecturers, adjunct professors, and even some visiting professors are paid starvation wages (below minimum wage in many cases). This is the new norm. The vast majority of students learn from these underpaid professionals. It's a very dog-eat-dog world in academia. It is disintegrating. 

We were promised the opportunity to have a good life by going to school. This was a lie. It is necessary, but not sufficient. Few really tried (partially their fault), many were given their passing grades, and the system was designed to bilk the students for everything they are socially, politically, and financially worth, without ultimately educating them. You will find exceptions, of course. But, the rule of thumb is incredibly and sadly accurate. Most come out of school with enormous debt, lacking the education they more than paid for, to enter an economy that generally doesn't want them (at least not at the wages they merit). 

What else are people supposed to do though? How do you expect young 18-year-old barely legal adults with underdeveloped frontal lobes (25 years old before they begin to crystallize) and no understanding of the world to make enormous gambling decisions that will last them a lifetime? They see the wolves of poverty nipping at their heels. They have to take the risk. They must gamble, even if the odds are all against them. This is a fundamental utility equation balanced in favor of capitalists seeking to maximize the amount of human capital which can be extracted from our population. It is rent-seeking. We are debt-slaves. We are the information age serfs. We climb on top of each other just to have the slim chance for a fragment of the mobility, opportunity, freedom, and happiness that was widely available to everyone just a few decades ago.<<ref "5">>

Our wings and minds are being clipped. We are no longer learning who we were, who we are, and who we should be. Those are defined for us by capitalism now. Whatever helps corporations profit and gain power, those are the livestock they try to raise. Too many educational institutions and people in general see this obvious conflict-of-interest to be a good thing.

We now "go to school" to get a job. It's become the new "Mike Rowe" norm from conservatives. You fucking morons. Jesus, you are stupid. How could you even call yourself educated? You are either deeply ignorant (sticking your heads in the sand or lacking a real education yourself [maybe you forgot the transformation]) or you are straight up malicious (pulling a ladder up behind you). You are an anti-intellectual. You do not understand citizenship, or you seek to deny it to younger generations. You lack integrity, compassion, empathy, and foresight. You do not see why idealism is important, why it is practical and necessary. You are a fool for believing the authorities you do (including yourselves). Watch the virtuous agent non-fallaciously wield the ad hominem, and you don't even know why it's acceptable.

I hear people say "college isn't for everyone." Education inflation is very real. I don't just mean that more people are getting degrees, changing demand and prices. I mean you get less per dollar and year spent in education than you used to. Learning algebra in college is normal (50% of students fail); they are illiterate. They are learning basic literacy in college. They aren't even getting a real education most of the time. And you want to deny them even that? Don't you see what is required for democracy? Don't you see what is required for the decentralization of power? The decentralization of knowledge and reason! We must educate everyone as best as we possibly can. 

Look, I'm going into the trades after 10 years of post-secondary education. I have respect for working with one's hands. Some of my favorite jobs were not very respected and required significant physical labor. I see the necessity of having janitors, manual laborers, and other practical occupations. I realize not everyone is brilliant. But, I also see the possibilities for who we could be. I see how truly uneducated our population is. I know we can do worlds better, and I see how badly we need to. How could you not push for this? Admittedly, many people do not understand the value, meaning, and purpose of a real education.<<ref "6">>

I'm blown away by the number of STEM students who do not have or even wish to pursue a liberal arts education. They do not appreciate the humanities. The humanities, philosophy itself, the study of wisdom and truth, are fundamentally what we're doing in school. We all must understand ourselves. STEM is the child of the humanities. While STEM is beautiful and deeply instrumental, it only tells us what "is" and never "ought" outside of hypothetical imperatives. The humanities are the heart of The Great Conversation. Of course, the postmodern problem (that Aristotle was the last man to know everything that was known in the human world) makes it harder to be educated and well-rounded. We must still do our best. Unfortunately, an entire generation of STEM students are not in touch with their humanity. They are bad human specimens with strong formal and empirical reasoning skills. That's terrifying!

To strike the other direction, too many liberal arts majors fear formal reasoning. They lack true rigor, are afraid of math, and do not understand the theory of the physical world as well as they need to. They cannot interpret and appreciate STEM nearly well enough. STEM gives us context and the material with which to solve problems. Ultimately, we are not well-rounded enough as a society. It takes more knowledge in more subjects to really participate as a full citizen in today's society. We are failing tremendously.

Our education system is predatory and oppressive. Too often it serves the opposite of its purpose. That doesn't mean we shouldn't educate people or give up. It means we need to remove capitalist interests and control from the core democratic, citizen-shaping, opportunity-equalizing institution. We won't though. We are too stupid, evil, powerless, or some combination thereof. Farewell Felicia.

---------------------

<<footnotes "1" "My father was right about this, but too late. Living in Thailand only made this more obvious to me.">>

<<footnotes "2" "Not all teachers and administrators suck. Most do. Have you fucking seen the IQ and critical reasoning scores of education majors and conservatives? Jesus. That is sad. Conservative states are by far the worst at this. Anti-science and religious support of government+corporate powers is entrenched. I hate almost every Christian I know (to be fair, I hate almost everyone anyways, lol). They have ruined us.">>

<<footnotes "3" "Our even more horrendous treatment of children from outside US borders is even more unforgiveable. ">>

<<footnotes "4" "Don't get me wrong, they are still incredibly good schools from an academic perspective. They simply are guided by the wrong principles, wield their power incorrectly, and do not exist to help the common person. Capitalism has profoundly corrupted these institutions as well. Business majors scare me the most. Psychopathy rates are ridiculously high. Ethics is dead.The brightest of our most well-connected and wealthy young people are consumed by the financial and political industries. Our new masters are being bred.">>

<<footnotes "5" "Allow me to say, 'fuck you' to the baby boomers, yet again. You worthless pieces of shit. You deserve slow, painful deaths for what you have done to the generations which came after you. I'm sure I will say the same to gens X, M, and Z as time goes along. Greed and power have corrupted us more than we will admit.">>

<<footnotes "6" "Do I need to explain why this isn't a no true Scotsman fallacy?">>
Today was a good day. I was pumped to get back into the shop and fucking do something. I think I was agitated by being off my schedule last week. I look forward to my time working on stuff.<<ref "1">>

My teacher asked me if it was checked. I said yes, even though we didn't do a final check (because I was continually unsatisfied with it). I honestly think that's the answer he wants from me, so I'm giving it to him. It's clear he cannot help me fix the problem, and I don't want to make him feel bad about it. That's just not useful to our relationship. The truth is powerless to our relationship in some ways. It is not the kind of socialization I'm innately comfortable with, but I think it is actually the kind and empathic thing to do in his eyes. I do it knowing the weight of what it means to do this, and I take it very seriously.

In a weird way, I fear I treat him like my cat. I adore my cats. I honestly want the best for these psychopathic bastards (cat psychology is fucking hilarious). To different extents, my cats are not smart enough to understand me or my intentions. Golden Ruling my cats is odd. That Ranga is now inside with us permanently I take to be the option most likely to maximize his happiness. I must imprison him, and I wish I could explain it to him. I wish I didn't have to imprison him, and instead wish he could see the reason he must stay inside with us. I wish I could convince him. But, I can't. It's not up to me. I think I am doing something similar in being what I hope is morally virtuously deceptive. It's perhaps a kind of white lie. It seemed to be asked for, and so I gave it. If I cannot give a cost-benefit analysis reason, a frontal lobes answer, then I need to be willing to change. I think it has a prudence to it for both of us. 

It's weird kind of application of the golden rule to not "treat them as you would want to be treated" in the most rational sense, but instead to "treat them as they say they want to be treated " (another interpretation, of course, an empathizing of their position itself in the deepest, even if less rational, sense) even if they don't understand the logical consequences in consistencies in the thing they ask for. Inequalities in knowledge and theories of mind create very difficult power dynamics and ethical dilemmas. It's much easier to do ethics in something like that proverbial physics' vacuum. When we treat people as being as rational as we are we can come up with very impractical, often lower utility, and perhaps worse outcomes. I suspect I am terrible at this golden rule problem, or at least come up with non-typical answers in some respects, because I'm autistic. My rTPJ really does activate abnormally. 

Okay, that was a detour. Anyways, he was fine with my answer. Nash and I took it apart quickly, and he gave us our new bookwork. He didn't even make copies, he just gave us his original this time (we were careful with it). By 9:00 I had finished the highlights, chapter, and going over his specified material. Nash will happily avoid bookwork like the plague. I'm not sure how much this affects me. I just need all 3 books finished by October if I can. That is reasonably accomplishable at the pace I'm moving. So, Connor, was picked to help us learn the next type of task.

We are building X-piece-90's. They are basically circles fragmented into pipe-line-segments which are tacked and welded together. We made a 3-piece-90 today. Connor walked us through the steps of making lines cardinal sides, and the teacher came by to tell us how to do the math (since Connor didn't know how). I ended up doing the math, and we drew slices equal to the center-to-center measurements of the pieces we were going to cut. Then, we found the right miter cut size from the book, and drew those on. We used a bandsaw blade as a "straight-edge" to use our sharpie on the pipe. It had to curve around not just the pipe, but was also angled; it wasn't a vertical, perpendicular to the horizontal laying pipe cut. We did not mark as carefully as we should have. And, it showed. 

We went to cut it with a bandsaw. Mine was excellent! =) Yay. Good enough that Connor didn't think we even needed to grind it. He says that the way he tries to make all his cuts (since it limits the work he's aiming for). We did our best on the cuts though. It was our first time. Nash kinda messed his up. He was on cold medicine all day, so he wasn't really there. Basically, I ended up doing the grinding work to fix his mistake. That's fine though. It was good practice. I'll take every ounce of practice I can get. 

I'm still unclear on the absolute best strategies and tactics for grinding. I'm finding my own tricks at this point. I understand the miter cut needs to be 22.5 degrees (for the 3-piece-90), and it needs to be as straight as fucking possible (seals are clearly sexy). I grind down to make it straight (they should be flush when joined). I also must grind to make sure that when I join the pieces, I get a 45 degree angle from my level. 

One of the better students, TJ, recommends leaving a bit of extra space for grinding at all times. I parroted back his justification succinctly: You can cut more pipe away, but you can't simply add more pipe. This hedging principle has shown up many times, and I consider it a variant of measure twice, cut once, or at least in the same family of reasoning. He is correct about this. Giving myself just a hair of breathing room allows for me to hide mistakes in my cuts, it gives me options, it lowers the risk, etc. It has to be accounted for in the measuring and line drawing though. Just a 32nd or 16th of an inch extra would be nice. It's very easy to grind the whole thing equally (you just rotate around with the grinder). Getting out unevenness, however, is much harder. There's some eyeballin' to do, I tell ya' h'what. I will develop good eyes for grinding, beveling, and cutting. Artists must be accomplished at drawing straight lines, and I'm sure every pipefitter can do this in their sleep. This is crucial to making pipes "fit" together. Do the math, and make the right cuts. This is a virtue theoretic aspect of the practice, imho. The cleanliness of it, the speed with which you can do it, the efficiency, the risk-limitation factors you impose, etc. 

Anyways, to our teacher's apparent displeasure, all the guys started joining in on our project (instead of working on their own). I think they found it interesting. Keaton came by to tack weld it (since Connor trusts Keaton more than himself?). I held the pieces together (if Keaton fucked up, I swear it could really burn me badly; I do not care for needing to trust people with my hands in this respect). That reminds me, I will be wearing my true welder's gloves for welding from now on, especially when someone else is welding. So, anyways, Keaton tacked one side. We adjusted a bit, flipped it, and he went for the second tack on the other side (you do the sides instead of top and bottom to give you a chance to bend for the 90, and if necessary cut out segments, if you aren't exactly 90 that is). This time, he made a hole in the join. 

Apparently, Connor and Keaton had the heat way too high on the welder. It should have been at around 50amps, although my teacher says it varies with the welder (he said they had it way to high and should have known better). They brought in another student to fix it (since he boasts that he can, and they enjoy taking him a down a peg or two). An aspie if I ever met one, Ferguson; he's cool and kind. They make a lot of fun of him; they are mean to his face. It's gross. I go out of my way to be kind to him as a reaction to these facts. Anyways, he couldn't seal the hole (since the heat was still way too high). He made it much worse. We laughed about the giant hole in my project, but then they started to blame him (and he was just trying to fix their error). The teacher said Ferguson isn't a bad welder, even if he isn't smart. Ferguson was practical. He grabbed a piece of metal, cut off a triangle, and patched the pipe. I ended up grinding a ton off it. The teacher, of course, immediately knew it was all kinds of messed up when he saw it. My teacher said I should have come to him for the welding part (but he was the one who put Connor in charge). It was messy, but it worked. Our next welds were done by Keaton on the MIG. These were clean (although, it spits way more). 

They made fun of Ferguson for sharpening his knives a few weeks back, acting like he was too stupid to do it. I have no idea why he puts up with it or engages them in it (he really thinks they are his friends, I fear). Ferguson has a very nice kit, and he treats his knives gently. He cares about his things. His moccasins (comfort), humor, his truck, his mom, and his work (he is passionate, even if he sucks at some things; can't pass a test to save his life, I tell you that). I wanted to thank him for putting up with the bullshit, so I kindly asked him publically if he would be willing to sharpen my knife. They looked at him differently after that. They decided he could sharpen knives now because I thought he could. I had some knife work I had to do today anyways, and turns out, it really was sharper this second time around. Ferguson knew a surprising amount about my knife. He even knew where I got it, had tried them before, etc. I like Ferguson. He's weird but good. 

During break (which I rarely take when I have work I can do in the shop, but I was at the mercy of others here), Keith explained how he got in trouble with our teacher (but is expected by his pipefitting bosses to perform) for shortcuts. Keith acts like it know it all, which miffs my teacher clearly. They butt heads a lot. I have heard Keith speak (he does love to talk). Existentially, he's stupid about many things. However, I have heard him speak about computers, and he is at least cautious in his choices of displaying knowledge there. When it comes to pipefitting. much of what he says seems rational to me. I do it the long way (since I have no need to cross my teacher), but I keep these shortcuts in my pocket. I mean, seriously, who wouldn't want to have a machine rotate a pipe while beveling? That seems like a way to make a very consistent bevel, like a potter on a potter's wheel.

Magically, it ended up being the correct radius and dead on 90. It looked like shit from the first two welds and the patch. The lines were off. I could even see the pipes' circumferences didn't really line up as cleanly as I'd have liked. Connor said it was good enough to take to the teacher. So, we did. I explained that I knew the lines were off and that the pipes were lined up as well as I'd have liked, but that it had the correct radius and angles. We checked. He said it fine. He told me to do the same thing for a 6 inch radius.

It was late when we started on the next project. The teacher also told me he was going to have the guys clean the area we were using. Basically, we didn't get much done on the second project of the day. I'm excited to do the all of it (with Nash) tomorrow. I want to do it without help this time. 

I must admit that I'm confused that my teacher didn't just show me how to do it from the beginning. He tends to have students teach students when possible. This can be a good thing, but it can also be lazily abused. I see a mix in him. I was always happy to hear his thoughts, advice, and objections to our work or process. He did come by. Sometimes not at the right times, but he did come by to give us his input. We needed it. Perhaps he knows we need to time to jump around in the mud puddle? I don't know. I will think about it.

This is relevant in the sense that I will have to teach the incoming student, I believe. The teacher says he has to catch up to us, which is 1.5 months of hard work. I'm going to be babysitting. I'm going to be held back by this person (and I thought Nash was an ankle-dragger!).

Oh, one of the students got arrested the other night. Lol. They read a publication which shows who went to jail every month like a gossip magazine. There are rougher kids here. I can only help them with their computers and be kind, oh, and learn from them when I can.

I still haven't drawn plans for the simulator either. I may do that when I can't find work to do. I need to get measurements first. I'll have Nash help me do that tomorrow. He can spare me the 10 minutes.

------------------------------

<<footnotes "1" "/pets-his-wiki, 'I love working on you too, wiki, my dear.'">>
Today was a fun and stressful day. I love being in the shop. We got the same project, but with a 6 inch radius this time. The smaller it is, the harder it is to make it right in this case. There is a lot more room for error at a larger scale. We did it all this time, without help. My cut was decent, and that meant that my angle was good without much grinding. We still aren't getting the miter line as straight as I want (it bends, and that's bad).  The bandsaw is still unwieldy. Although, it was commented that I am naturally talented with it. I use my body at the back end to steady and support it. I let it do the work. Plus, who doesn't love that beautiful vibration feeling near their testicles? Yum. 

I ended up taking it apart several times, once by error (I had never tried to adjust after tack before; apparently, you can snap them). We just couldn't get the angle perfectly 90. Nash didn't give a shit. But, I really wanted it to pass. I am not proud of my shitty tack welds. It's really hard to use their shitty welding hoods. I bought one today that does automated darkening after having had the opportunity to use Ferguson's. It's a godsend. It will make me safer, faster, and less-error prone, by miles. Btw, Harbor Freight is the bomb. Never been there before. Maybe it has a biglotsian feel to it, but that's okay. This will do the job just fine. Even if it only lasted for 6 months, it would be worth the price. I feel like Darth Vader with it on. 

Anyways, I got it done after lunch, and then then I decided to fool around (very rare for me). Since I tacked (poorly), I thought I'd try my hand at beadwork. Also, MIG might be easier for tacking in some respects, I still find it far more unwieldy than plain stick welding. My beadwork improved with the help of pointers from the upperclassmen. Eventually, there was a polite duel amongst all the students, a weld-off was held at my request. The teacher had to get all tough, but he thought it was funny at the same time clearly. His students rarely gather around actual shopwork (it's usually around a pair of tits or music video; we did watch Trump being sworn in though...ugh<<ref "1">>). After we were told to get back to work we showed him our project. It passed. He was worried we tried to cheat by grinding the sides to make it 90. I was just cleaning the edges of burs as he asked (without powertools). I wasn't worried though. If he took a level to it, he'd have seen it was clean and correct (I didn't pull a fast one on him). He told us to do it again for a 5-inch radius. It's clearly not clean enough. It will be. For this project, I was proud of how nicely my pipes fit together. 

We did the measurements and added just a hair this time. I hope it makes the work go by quicker. I assume the problem at this point is that we aren't fast enough. That's fine. I really need to practice, desperately.

Two other things to note. The teacher had us sign waivers that we wouldn't use our cell phones during class or shop. Not a problem for me, but I it is sadly necessary for a couple folks. Also, I started taking measurements and diagramming/drawing the simulator, btw.

---------------------

<<footnotes "1" "Don't get me wrong. I adore tits. Can't get enough of them. I love music (although, I'm not a fan of music videos usually; they need to be special to merit that much attention [I'd prefer music itself to be the star]). I also would have watched Trump regardless. This is all they seem to collectively care about though. It's...sad. It's hard to find things they are deeply passionate about. Perhaps I just don't know them well enough. We will see.">>
I had a very good 3.5 hour converstion with [C], my new friend (we've been acquaintances for a long time). He is amazing. He's an autistic savant.<<ref "1">> C is a fucking genius in disguise or imprisoned by his autism. His formal, official education is no indicator of his knowledge or inferential capacities at all. If sum IQ were reified into marbles, and intellegence broken into different kinds of baskets, [C] has profound imbalances in which baskets nature dumped the marbles. The sum total of marbles is very high in certain baskets, but perhaps below average in others (social skills vary wildly in him). The learning disability in one space is so striking against the genius in other spaces.  

He's a man of deep innocence and profound curiosity to me. He is obviously self-taught and susceptible to the people he trusts. I take myself to be responsible for not damaging that innocence. 

Talking with him is revealing to me. I connect parts I did not before because of him. He follows arguments very well and sees the threads weave where others wouldn't in his position. He's almost too smart for his own good. I hope he has more self-control and self-preservation built into him than I do. I worry that my philosophical demons will be communicated to him, that I will infect him. I think I am poison for this man. Most people are immune to it because they cannot see what I do. [C] is smart enough and wired in the right way to catch the my memetic viruses when I sneeze. I feel like I am doing a disservice to his happiness by talking to him. Like, if I were a real friend, I just wouldn't be myself around him because what I really believe and think is a true danger to his mind and happiness.






--------------------

<<footnotes "1" "Where autism is a broad spectrum, highly inclusive, and poorly understood.">>
We've been working on X-piece-90's. It is so much easier without Nash. I love Thursdays since I'm the only one in the shop. Everyone else has computer or bookwork they choose to barely work on. I have the shop to myself, except when I absolutely need another pair of hands (welding and sometimes marking). I finished two projects in a day. That is relatively uncommon for me.
Today, as all Fridays, was a halfday. I basically have 3 hours to work max. I got a 5-piece-90 assigned to me. I had the bandsaw fail on me twice. I got a new blade and it made a huge difference (Tim knew immediately what it was). It's absurd how often that blade needs to be changed. The cuts were not as clean because of it. I did a preliminary grind to smooth it out, but didn't have time to do much else. Tim, my teacher, had other plans for cleaning the shop. He and I went around the offices and shops borrowing hoses (I was the one who had to return them). We squeegeed the floor of the shop. 

Also, this is the 4th time that I couldn't see the union training coordinator. The door to the entire facility was locked, again. I take this to be a sign that I need to amp up how often I go, find more information about when they are open, and perhaps even just call him on the phone if I can't get ahold of him otherwise.
//Intelligent and honest Redpillers know [[socialism|Socialism]] is a devastatingly accurate description of capitalism and human economics. The prescription is all that is left.//

The Idealism of Socialism is that which is intellectually honest in a wide range of anti-capitalist arguments. And, guess what? It exists! There are numerous, incredibly justified reasons we should not accept capitalism. There is a reasonable pattern of thought you may not have considered, but you should. You feel like you've done that path, but you haven't. You know people are evil, but you've not been willing to run with it, to put it your pocket, to really see the world through that lens. Now, apply that rule "people are evil," and take it the nth degree. See what turns out to be real and what doesn't. 

You just haven't been charitable enough to socialism. You've failed to effectively interpret human beings as being evil when they become powerful (it's just a fact). You should not trust authority. //Pay attention//. We learned about socialism in all the wrong way. We were wrong about what it was. It wasn't evil. You've been brainwashed to believe what you do. Here, take your redpill. 

# /Hands(h0p3, Redpill, [your name here])
#  I require your consent. Have charity now. You have to be a willing participant in the acquisition of life changing knowledge. The loss of innocence requires the curiosity of the Tree of Knowledge. Does it hurt? Yes. Is it worth it? Probably. 
# You have to assume you could be wrong, about everything. You have to be willing to be wrong about everything. Have the humility to consider the possibility, to be honest with yourself in relation to the world. 
# I patiently wait for you to swallow it.
# ..
# Let me show you the real world:

Socialism describes capitalism as a socioeconomic system (or family of such systems) based on the exploitation of the labor force through private ownership of the means of production. Capitalist society is structured so as to reward the most socially adept abusers of human nature. It is meritocracy for elite psychopaths and psychopathic bloodlines. It enables the psychopathic segment of our species enslave us. Capitalism is a vicious game of egoism in which only the most redpilled with //weak moral compasses// and// the means to exploit the poor and weak// become successful (and eventually totalitarian) predators. 

Capitalism is the result of applied social Darwinism. Socialism is an attempt to describe this human game, and it posits that a revolution, revolt, or uprising against capitalism and private (but not personal) ownership is inevitable. Whether or not this borderline faith-based position on revolution is true is irrelevant to the fundamental truths in the description of capitalism. Revolution is a prescription, but socialism is fundamentally descriptive (that's where it's power lay). It's redpilled when it's done correctly too! It is a very profound description of human history, our current world, and continues to give us good explanations for why the world changes as it does in profound ways (not everything, of course). 

We start with labor and value. Labor adds value to materials. We generate value by embedding our labor (time, energy, effort, etc.) into products; part of who we are is imbued in the things we labor to create. The total value a worker creates through their labor is productivity value. There may be many kinds of metaethical value, but this one is fundamentally important to us all. It's part of being an agent that we labor. Who owns this labor, and the results of it, productivity value, to what extent, and why? 

For the capitalist, productivity value can be split into two major kinds: wage value and surplus value.<<ref "1">> A product's wage value is used to pay the worker. The value generated beyond the wages paid to the worker is surplus value; it is the source of profit.<<ref "2">> Surplus value can be used to pay constant capital<<ref "3">> costs, replacing the means of production, technology, marketing, distribution, finances, human resources, logistics, expansion, security, competitive advantages, political influence, taxes, etc. The remaining surplus is profit.<<ref "4">>

Capitalists hire workers to create products. Capitalists sell these products for approximately the productivity value, pay (legally required) wage value to workers, pay (economically required) constant capital costs, and keep the rest as profit. This profit is often used to cyclically generate more capital; capital begets capital. At first glance, this may not seem problematic (especially to those socially conditioned to accept it). Unfortunately, the repeated application of this business cycle results in dangerous shifts in the power dynamics of a society, and this results in the capitalist exploitation of the working class.

Capitalism is not stable; it is driven by the neverending generation of competitive advantage (naturally or artificially). Capitalists must consistently reinvest in their constant capital to continue to be profitable.<<ref "5">> One crucial method to generating competitive advantage as a corporation is to have as few employees as possible and to pay them as little as they will accept. As a consequence, wages are suppressed at all costs (morality is deemed irrelevant here) and human labor is price-efficiently replaced with technology and streamlined processes/logistics.<<ref "6">> As human labor is replaced, workers become unemployed. Unemployment forces wages down. The unemployed, the army of reserve labor, compete for available jobs. The higher the supply of laborers, the lower they must sell their labor-power to capitalists. Thus, capitalists are engaged in the continual process of maximizing the productivity value of labor while paying lower and lower wages to fewer and fewer people for it.<<ref "7">> 

This vicious cycle enables capitalists to tighten their grip on the working class. Over time, there are fewer and fewer employers hiring fewer and fewer employees, while simultaneously paying lower and lower wages. The unemployed become desperate. They will accept worse and lower material conditions to survive. What other choice do they have? Capitalists exploit workers insofar as workers have no other options. When capitalists own all the means of production, workers have no other choice but to accept wages artificially depressed further and further below the productivity value of their labor (if they can find employment at all). 

As capitalists centralize power and monopolize the means of productions, there is a corresponding increase in the rate and degree of enslavement of the working class. In a vast human economic pyramid scheme, we find repeating cycles of wealth trickling upwards with power centralizing and rising to the top. The working class loses opportunities, freedoms, and bargaining powers as they become splintered, suppressed, and controlled. Capitalism devours the majority, and this time, it appears to be the driving force behind the extinction of our species.

As the working class becomes aware of the causes of the crisis (developing class consciousness), capitalists must oppress them even harder. Of course, workers who complain, bargain, or fight back will be punished. Submission appears to be the only practical option. Oppression branches out much further than that. Our surveillance state exists to maintain capitalist power. Our media is consolidated and owned by capitalists seeking to subvert and undermine resistance to their power. We are engaged in wars not for the freedom of our people, but for the enslavement of mankind, to the benefit of capitalists. 

Our laws are written by capitalists. Our politicians are capitalists bought by capitalists. Our law enforcers are capitalists bought by capitalists. Our judicial branch has its capitalist corruptions as well. From local, to regional, to state, to national, to international contexts, capitalists own and control us. The rat race is very real, and slavery has only become more complex in implementation, kind, and degree. Many fail to see capitalism for what it really is: a game theoretic, absurdly complex, psychopathically owned and operated form of slavery.

Capitalism is a helluva drug. It is an incredibly viral meme that injects itself into the core of its hosts so deeply that it alters their fundamental behaviors, empathies, hatred, beliefs, and desires in systematic, long-term ways. Our culture is being swallowed by this Egoistic memetic network crawling through the human species like an epidemic. It's tendrils control our minds. The allure of selfishness is too profound, especially for the powerful and those with the means to maximize their personal pleasure at the expense of anyone they can find the will power to dehumanize. It is quite the meme, this invisible-appearing force. It is a category of a kind of viral creature that exists and reproduces in our minds. 

This is an apt description of human motivations, history, the memetic nature of our problems, and reality. Socialism is thought to demonstrate the material conditions and crises of capitalism. Insofar as socialism relies upon material conditions to do its intellectual heavy lifting, it remains a description which lacks idealism. It only provides us the contextual content of maxims; it only provides us instrumental reason, hypothetical imperatives. It only describes the motivations and historical cycles of humanity. Even if it correctly predicts revolution (which may itself be inaccurate in the information age; Marx could not have foreseen everything), it does not, in itself, show why we should revolt against capitalism and slavery. 

Ultimately, socialism describes what "is" but not "ought." Marxist versions of socialism pre-describes revolution as the outcome (and hopes for improvements), but it cannot normatively prescribe because it does not give us an underlying moral theory. It is a political and economic theory, but not a moral one. Too often, I see Redpillers conflate the "is" of capitalism (as described by socialism) with the "ought" which follows from the prescription. Essentially, these psychopaths think prescription and description are the same. That is the naturalistic fallacy is in its barest form.

We must be empathic towards the poor, the weak, and the needy, regardless of our station in life. We must have [[Redpilled Empathy]]. We must end capitalism because we must end slavery because slavery lacks empathy. Redpilled Socialism is an application of the golden rule inside of capitalist systems. It's a variant of the Veil of Ignorance.

The only aspect of socialism, as a description, which I worry about is its prediction of revolution. The assumption seems to be that the poor and disenfranchised will eventually do something about it. I think it fails to understand the nature of technology and its ability to maintain the status of quo of enslavement, to protect the Hyperclass, and to prevent, disarm, and defeat any attempts at a revolution.

Why should we think socialism' predicted revolution will ever occur? Sure, hope for the best, vote for it, teach people it, see the reason in it, morally expect us to follow socialized prescription, but you have to practical about what you predict will happen. It is basic utilitarianian thought that cannot be escaped. You hope for the best, but plan for the worst. I want to see the end of capitalism because it would honestly make the world a better place; it is the only chance for the survival of the human species. I'd love to have grandchildren, to see the world happy and healthy. But, it isn't going to happen. You must see the necessity of protecting our selves from the world and preparing for the inevitable disasters approaching our species. 

I would be rejected from socialist circles for saying this. I want to point out that I'm not claiming "if you can't beat 'em, join 'em." I support the end of capitalism, but I'm not convinced it will actually occur due to both the raw intelligence, wealth, and power of our ruling class and the stupidity, poverty, and weakness of the proletariat. Only a fool would think that 3.5% of the population composed of proletarians would be able to overthrow the capitalist yoke; that noose is on tight, and the weapons of coercion are beyond what Marx could have fathomed. Inequality only continues to grow on the metrics that matter. Of course, there always remains the possibility that socialist revolution will occur (however small it may be). Until then, I'm going to prepare as though it isn't going to happen because that is the best evidence I have. Basically, I think my socialist brethren are deeply wrong; there is a better and more accurate pragmatic socialist prescription. I will protect my family from a world of psychopaths, and I will try to do so without being psychopathic towards the world. Accepting the reality of our shitty human nature's accuratizes our predictions and therefore appropriately tempers our expectations. This is pragmatic hope. As far as I can tell, it is the best prescription I have at the moment.

The moral of the story, thus far, understand and support socialism, but don't assume or hope that others will have the willpower, integrity, and moral virtue to take the Redpill and actually be good people. You've taken the Redpill, so you know: no one escapes being selfish.


------------

<<footnotes "1" "Wage value is Variable Capital.">>

<<footnotes "2" "Rate of Surplus Value = Surplus_Value / Variable_Capital">>

<<footnotes "3" "I am still appalled by the use of the term //constant// here.">>

<<footnotes "4" "Although, peeling the other surplus expenditures apart from profit is not actually that simple. Roughly: Profit = Surplus_Value / (Wage_Value + Constant_Capital)">>

<<footnotes "5" "This accumulation of constant capital necessary for competitive advantage in the capitalist market is the beginning of economic crisis of Capitalism (which is separate, in a sense, from the moral problem of enslavement). Roughly: Organic composition of capital = Constant_Capital / Variable_Capital">>

<<footnotes "6" "Human labor is living labor; dead labor is technology, machinery, tools, infrastructure, architecture, automation, etc. To be clear: only a fool would blame a machine for the evil committed by humans. Regulation of human use of technology is necessary (particularly to protect our most important freedoms), but regulation of human economies even moreso. Automation is not the devil. It all depends on how we use it. Do not buy into the Red Herring of blaming technology instead of  humankind. Doing so is as analogously foolish as the Broken Window Fallacy.">>

<<footnotes "7" "I'm dramatically oversimplifying here. The spirit of the truth is obvious though. The details and execution are obvious quite complex. These things do come in degrees and kinds. The fundamentals remain the same though.">>

<<footnotes "8" "A reactionary opposes proletarian revolution. 'In modern capitalist society the bourgeoisie is appropriately viewed as the reactionary class, since it not only totally opposes proletarian revolution, and even almost all reforms, but also regularly tries to reverse earlier reforms. When the ruling bourgeoisie ever does finally agree to any significant new reform it is only because they have been forced to; and even then they virtually always have the secret intention of reversing what they view as a temporary concession to the people at a later time.'">>

<<footnotes "9" "This is not a defense of intuitionism (I don't have one). I'm taking it for granted that you agree to this move in the argument.">>
//There's a reason you separate military and the police. One fights the enemies of the state, the other serves and protects the people. When the military becomes both, then the enemies of the state tend to become the people. -- Commander Adama//

When all you have is a hammer, everything looks like a nail. The state should not be solely comprised or even run by those who are trained to hunt enemies of the state. Everyone looks like a nail to those who lack the sufficient empathy necessary to commit regular violence against human beings.

When Libertarians and Socialists agree to the same thing, you know it's profoundly important. The 'U' symbol of the political horseshoe theory is obviously false in crucial ways, but I think it also has a rule-of-thumbness to it that is remarkably accurate in other ways. They are mortal enemies in metaethics (I realize there are people who consider themselves Libertarian Socialists, but I do not think they understand Libertarianism), and yet they have a profound common ground in their appreciation for idealism. There is a deep clarity with which both ideologies can interpret and explain the relationship between human rights and property rights. These extreme political ideologies are right about the dangers of the police state and the militarization of the police. When they agree on a political and metaethical claim, the rest of us should be paying attention. This is no accident.

Wikipedia says:

<<<
Militarization of police refers to the use of military equipment and tactics by law enforcement officers. This includes the use of armored personnel carriers, assault rifles, submachine guns, flashbang grenades, grenade launchers, sniper rifles, and Special Weapons and Tactics (SWAT) teams. The militarization of law enforcement is also associated with intelligence agency-style information gathering aimed at the public and political activists, and a more aggressive style of law enforcement...[Police militarization is] "the process whereby civilian police increasingly draw from, and pattern themselves around, the tenets of militarism and the military model."
<<<

There are ways to confabulate into believing this is not a problem, ways to see a positive spin on this definition. I see people actively ignore the actual consequences of it, who purposely fail to see the implications of it. Allow me to flip your conceptual analysis around and prevent your Slip into rationalizing the existence of militarized police.

We all have such an easy time pointing out the obvious flaws in military coups d'états. That's the Policification of the Military unchecked (or poorly checked) by other political forces. I think the militarization of the police and policification of the military are working towards the same goal. They obviously are working at it from different angles. The subject and modification swap, but both combinations pursue and mix into being the same end. If you are vehemently against policification of the military, and you should be, then you also have a strong //prima facie// conceptual reason to think the militarization of the police is a really bad idea.

Militarism, by definition, is the theory and practice of fighting against enemies of the state (and all that is entailed). Militarization of the police, like the policification of the military, makes civilians and everyday citizens the enemy of the coercive arm of the executive branch of the state, a.k.a. the police. The enemies of militarized police are the very people they were meant to protect.

Plato was right about this; Marx and Orwell, too. Hobbes, Machiavelli, and Rand were too (descriptively, not prescriptively), but they can go fuck themselves. Socialists and Libertarians everywhere see it plainly. These idealists tend to be more likely to clearer explanations for the appearances of this flaw in societies. When they both agree, you know something is really up. 

Police officers obviously favor the increase in power through militarization, in the threat they pose, in the fear they strike into people, in the "safety" they earn for themselves through improved physical and mental weaponry. 

American police:

* have official political structures and relationships similar to the military and their respective politicians.
* have enormous ties and shared social networks with military culture.
* are classic "good ol' boys' clubs" and self-protective brotherhoods.
* worship the military.
* style themselves as being as cool and alpha as the military.
* tend to be conservatives, Christian, and nationalists. They are famous for being racists as well.
* suppress high IQ recruits from joining their ranks, but have an average IQ of 104 (slightly above average).
* form capitalist havens and are deeply corrupt. Quotas, theft of civilian property, and corporate/wealthy influence are profound examples. 
* promote and execute the enforcement of law insofar as it maximizes their profits, job security, and power (but not necessarily otherwise, except for the sake of appearance). They use us as revenue streams.
* literally bribe politicians through campaign contributions and whatever insider lines of credit (be they social, financial, or otherwise) to maximize both their militarization and the mass-imprisonment of the U.S. population.
* act as a domestic standing army.
* really do commit serious acts of violence against innocent people. Police brutality, harassment, profiling, and unjustified coercive practices are very real.
* protect wealthy and powerful people but rarely the poor; the enforcement double-standard is tremendous.
* almost always do not respect the exercise of constitutional rights, not only frowning upon it but actively punishing it insofar as they can get away with it.
* often do not care about being philosophical about the law, in knowing why they do what they do and how to do it well. They do not understand the nature of the executive branch and regularly remain ignorant when it benefits them to do so.
** Respectable-appearing lawyers, consequently, can actually intimidate them to some degree in unexpected contexts.
** The AM-I-BEING-DETAINED-activists might be crazy, but they have a point. 
* should be feared when legal scholars and lawyers regularly tell you not to talk to cops without representation.<<ref "1">>
* will act as if you have no rights unless you express them.
* are deeply hostile to being filmed, recorded, and other transparency mechanisms (ironically, they fear being held accountable).
* are themselves often illegally immune to the law.
* are perpetrators of enormously high rates of domestic violence.

The laundry list is long. Police militarization is a classic problem. We're just seeing our own implementation of it. 

On a more personal note, I literally don't know a single good cop.<<ref "2">>  Everyone I've known who became, are, or were cops hovered between ignorant and malicious. They certainly do not fit Plato's Guardian class; that's a bad sign.

I'm an educated white boy. My car is ugly, and so am I. But, I look and sound educated. My children do me great service as emotional evidence to others that I'm a decent human being. I'm generally not too stupid around cops. Essentially, I often have less reason to personally fear cops than others. But, I am still afraid of the militarization of police. Here's why:

* Police enforce capitalism, and therefore, are deeply involved in the enslavement of the masses. They do the dirty work. They are the most physically reified whip of capitalism.
* Fascism thrives on the police militarization. 
* They are beholden to almost no one and have the "legal" rights (full or grey) to beat your ass. If, in practice, possession is 9/10ths the law, then we must deeply fear when police aggressively pursue the possession of the public. 

Police abuse their powers. Our military is a psychopathic force in the world, and when we militarize our police, we turn that psychopathic force upon ourselves. We must empathize with ourselves (and the world). We the people must keep coercive powers (and power in general) in check by whatever means are available to us. Yep. Fight the power, bitches.


---------------------

<<footnotes "1" "Not that they don't have financial and power incentives here. The struggle between the judicial and executive branches (and the capitalist industries surrounding them) are real though. We must pay attention.">>

<<footnotes "2" "Oh, Anecdotal //ad hominem// Man! Save us!">>
As expected, Trump has decided to bar standard liberal media news agencies from the Whitehouse. He has openly demonstrated enormous favoritism to the most fringe alt-right news agencies. Bannon's influence is obviously profound. We've known Trump's position against free speech and freedom of the press even during the primaries a year ago. 

The number of crises and problems surrounding Trump is legion, enough so that we can't actually understand, digest, and fully realize their implications. It feels like a daily barrage from my news sources. 

Trump's clear attack on net neutrality (among many other things) will only make communicating democratizing information that much harder. The internet is physically owned by fewer and fewer companies. They are merging with content creators and owners. The conversation is artificially limited on the software and hardware sides. Now we have a political seal of approval to end to free flow of information and competitive intelligence necessary for democratic citizens to "fight the power."

Outside of net neutrality, I don't think Trump will win many serious legal fights over media control just yet. It isn't obvious that he is competent enough to expand executive powers to be a fullblown dictator either. I am frightened and yet mildly relieved there is a rift in the deep state that is actively working against Trump's administration. Not that there ever was the rule of law for the elite, but it just so happens to benefit us, at least temporarily and in this specific way, that intelligence agencies are not working with or for Trump. This is an odd balance of power though, balanced by an unelected group of people. These problems have long existed in intelligence agencies, but this is more brazen. I take it to be a sign of long-lasting damage to our democratic republic.

I am hoping that Trump will be so outlandish that even the RNC won't touch him with a 10-foot pole. There aren't enough checks on the political Right at the moment. I hate people. There is no way to reason someone out of a position they haven't reasoned themselves into. It is clear that the conservatives I know are stupid people who ultimately wield their Shield of Faith as the last resort.<<ref "1">> The epistemic language game is over as they cover their ears and shut their eyes, unable to see they were radically wrong about damn near everything. I cannot free self-made slaves.

The opposition party, the DNC, is in shambles still. Major factions have become highlighted in the DNC. The more powerful faction is the Clinton/Obama corporate owned; they are the superdelegate supported faction that are Republicans in disguise. Almost every liberal I know fails to see them for what they are. Fools! The Sanders/Warren faction houses the remotely sane liberals who are only barely leftist at that. We will see what the DNC evolves into. I cannot free self-made slaves.

The Left literally has no power or representation. That section of the political spectrum is erased, censored, and memetically barred from participating. We were taught to hate socialism and communism (even when our teachers didn't themselves understand what they were actually teaching us to hate). Everyone has a trained emotional, gutteral, virulent, kneejerk reaction to Leftist thought. There is a profound discrimination against the Left. It is part of the memetic hold that capitalists have on us. I think the constant push of where the "current political center" is located on the spectrum has continued to move to the right again and again over the decades.<<ref "2">> You morons! I cannot free self-made slaves.

To a non-trivial extent, we deserve Trump. That's the harsh truth. We have been willing participants in our enslavement. We have been shortsighted, too self-interested, too wrapped up in our religious bullshit to see the intrinsic and instrumental value of the truth. You people deserve to suffer. I wish you didn't have to draw the remnant of sane individuals with you into this hell on Earth.

Everyone thinks they are right. Everyone thinks they are special. Everyone thinks they are the remnant. It's possible no one is, but it is also possible someone is. At some point, the rational have a right to say "fuck you, empathize with me" along with all the idiots chanting it, but the rational are actually entitled to claim it.

Again, we slowly slide into a new normal. We are being boiled alive like frogs who don't jump out of the pot because the heat imperceptibly climbs until they die. What can we do? We obviously can't trust ourselves.

-----------------------

<<footnotes "1" "Although, to be fair, an enormous portion of liberals are retarded fools as well.">>

<<footnotes "2" "Although, ask any Christian, and they'll tell you the opposite. They are clearly convinced they are the persecuted.">>
We are adding two short subjects: Foreign Language and Humanities.

j3d1h:

* Subject-based individual tiddlers for weekly analysis
* Organize your sync
* Organize your wiki
* Move everything to the wiki
* Create backups of your wiki (automate it)
* Do all your journal entries from now on
* Do one style of hair for the week. Master it. Learn the tricks (research). Continue searching the space.
* Finish video curation

1uxb0x

* Write the contents of your learning. Summarize it. Tell us about the concepts you learned.
* Curation is now: 1 website and 2 webpages
* Organize your bookmarks bar
* Finish guitar curation
Moore's law has been dead for a while. It started dying about a decade ago. Sandy Bridge was the last real leap forward I can remember. Hell, my processors today barely defeat the CPU mounted on my wall from years ago. Single-threaded processing power has had zero improvements for a long time, and multi-threading software is really fucking hard to write outside of embarrassingly parallel tasks. Since then, we've seen the GPGPU, ASICs, and mobile (a.k.a. energy-efficient) computing evolve into their own beasts. Those are the only strides we can make. Increasingly, we must use specialized devices to gain competitive advantages. Applied computational science fields are beginning to advance around the fall of Moore's law, and they can only do so through specialized, non-general processing architectures.

The winners are closed-sourced, proprietary, and specialized. They are building hard and fast, and the average person will be closed out. We cannot join their ranks. We can rent (while surveilled) from them, for now. The death of Moore's law has led to the massive "mainframe" centralization paradigm. This extends beyond the buzzwordian Web 2.0 + Cloud. As specialized hardware (and corresponding software) become that which has fundamental competitive advantage, we mortals will be pushed out.  In the future, I won't have access as a general private citizen to hardware and software necessary to compete. Hardware and software controls and powers are centralizing (despite our best efforts to stop it), and as they specialize due to the death of Moore's law, this computational power will only continue to centralize behind walled-gardens, nation-states, military-industrial-complexes, multi-nationals, and IP-owners. 

Information is a form of power (so is money, sex, and a number of other things). Computation is power. The centralization of computation is the centralization of power in a significant way. Yo, we're in trouble.

Two-party systems are known to be game-theoretically flawed in crucial ways. Third parties really can't really exist. It is A/B testing, but in our case, the entire game is bought by corporate funds and elite interests. The DNC has a duty to represent the Leftist side (progressive and liberal are meaningless words), but they don't and won't. 

Perez just got elected DNC chairman. He's a corporate shill, an establishment status quo fellow. He forced the defeat of Sanders. He's in the Obama/Clinton right-center camp, not the Sander/Warren left-center camp. It's the wrong direction. This is the RNC all over again. They have been hollowed out by and large by the Hyperclass (if they weren't always that way).

The DNC is about as culpable for the reign of capitalism as the RNC as far as I can tell. They really do defend the status quo. It is a well-known DNC tactic that when a social movement begins to take-off, the DNC courts them with a "progressive" message, attach themselves to the movement, inject themselves into the power structures of the movement, take it over from the inside, and purge the radical elements that pose significant threats to the status quo. The DNC swallows leftist movements and neutralizes them.

They subvert and subdue lower class progress (which, at this point, is just having a seat at the proverbial table) to maintain the capitalist system. They are extensions of corporate power. Both parties are just the "right" and "left" political arms of capitalism (but in reality, they are both right-wing to differing degrees).

It's passed the problem of them "not learning their lesson." They clearly have aimed for this. The Democrats are as much the enemies of the people as the Republicans. No one actually represents the people. Our true masters are emerging. 
//In name and partially content, Christian Memetics reminds me strongly of "Christian Mimetics," a subdiscipline of Religion one of my professors claimed to study.//

It's clear that Christian churches are a special kind of community. There is a mental virus that continues living because it serves to help those who participate in the church community. It is far from obvious that most churches have significant impact on the happiness of those around them, but it is obvious that many stay in the community itself directly because they have something to gain from it. Whether it is calming their fear of death, prosperity delusions, or social networking, churches exist because they are practical utility-generating centers for their members. 

They are filled with conservatives. Let me define conservative for you: I will only sacrifice for you insofar as you are willing to sacrifice for me. Not everyone is 100% conservative. There are parts of their lives which contradict their conservatism. But, it is obvious that the Church has always existed qua conservative utilitarian economic incentives. 

It is a network of tit-for-tat trust generation games where people feel each other out and learn who will sacrifice for them. They build mutually beneficial relationships. It is very rare, however, to see unidirectional relationships, especially from the powerful to the poor and needy done quietly and anonymously (except for the warm fuzzies). Here is what conservatives ask themselves subconsciously: Can you sacrifice for me? What can I get from you? Can I socially bootstrap myself up the ladder through you? Are you worth my time, energy, or investment? 

The hypocrisy reaches far beyond the fact that no one in church is a decent human being. These people don't even want to be decent human beings, but they act like they do. It's an act. It's a lie. It's virtue signalling.

Religion was the original social regulation instrument used to control the public consciousness. It's the opiate of the people. People are gullible, and religion comes preloaded with ideal mechanisms for centralizing power structures, enslaving the masses, and teaching people to blame invisible creatures and dimensions for the problems in our world instead of the psychopaths in power.

New student's name is Chris. He has an associate's degree in electrical+mechanical something (he's a millwright). He can't find a job. He's bitter about it. He doesn't want to be in this class. He just wants to find a job. He has had a class in pipefitting (screw pipe only). He's having to rush through tests, 2-3 a week, to catchup to us. Thankfully, he probably can. He understood the drawings and eventually figured out how to do the math and use our blue book. My teacher said he'll join us tomorrow on the stainless steel x-piece-90 projects. This is excellent news. He's a smart kid (and obviously very self-interested).

We finished the 5-piece-90. It wasn't pretty. We started the 6-piece-90, and it looked clean as fuck on the cuts. A preliminary grind was quick. We could probably just tack weld it and be done, but I'm going to keep making it clean as I can.

After lunch, Nash and I were huddled into the class with Chris. We were "reviewing" the basic math we use for screwpipe. The kid didn't know how to use his calculator (neither did I), but once he got the hang of it, he was quick enough. Towards the end, including special offsets, he did better than Nash. Nash is perhaps fucked here. He never does the math by himself. He is always checking the math that I do. That does not bode well for him. 

Chris complained about how long our breaks are and instantly recognized the faults of our teacher (and the reasons for it). I think he is despairing. Obviously, he is interested in doing well at this to get a job. I'm hoping we will work well together. He seems to want to push.
Web Assembly (WASM) is a high performance, low-level machine code run almost natively inside most web browsers. This will give every major language a way to run in the browser. Prepare for websites to efficiently use your computation power through the browser as a virtual machine host. Crucially, the cloud is no longer a set of dedis and virtual machines sitting on hardware in datacenters. WASM is going to change the web and all the devices using it. Whether you want to or not, your machine is going to be used by those on the web who know how to write the code to use it (and can convince you to trust them enough to run it, which will be easy, because, let's face it, you're stupid and lazy).

Browsers are forming new botnets (accidentally and purposely), often legal ones at that. I mean this beyond the Chrome-botnet hype of a 4chan /g/entooman. This is really the last stage that was really missing. Everything else is just giving permissions to the browser and the sites that use them at this point. High performance, language-neutral, VM access to your machine's performance is already impressive, and it could do some very interesting distributed computing. WASM, however, is possibly more dangerous than people are recognizing.

The VM is really a sandbox; escapes past that sandbox are now incredibly dangerous (we've known this for a long time). You will be able to run any programming language you like to get the job done. Zero days and unknown, private exploits of this sandbox will be incredibly valuable, along with escalation to root. This is a profound runtime environment in how widespread it will be. It's ubiquity on every graphical platform is something to behold. 

Web Assembly competes in LLVM's space in a way. I think it is very interesting how Mozilla is a driving force behind this tool. I think it is ballsy. I think it is a technological step forward (not in any inventive way, but in a practical "they finally made a 'web' version of a technology we regularly use off the web" kind of way), but whether or not it will have a good result is a different question. It feels proto-singularity + proto-perfect-surveillance + proto-monoculture. They thought they were defeating Java, but instead a new monster will arise.

If and when distributed computing evolves to the point that it's easy to write code for distributed computing, this will be a key tool they target. 

Ultimately the browser continues and continues to advance toward being an OS itself. We've seen many OSes attempt it. With the halting of Moore's law for personal computing, and as mobile continues to make gains on desktop performance (reminds me, I need to have 1uxb0x and j3d1h look at ARM ASM), browser performance will start to normalize (and, page performance will continue to get worse in general). 

Everyone needs web access (whether they realize it or not). It's the one thing that almost all personal computing devices have in common. It's a common point of failure for the monsters that lurk.
This was the first month keeping a family log. I'm glad we started the practice. You can see the questions evolve. We're still working out the kinks. 

* [[2017.03.05 -- Family Log]]
* [[2017.03.12 -- Family Log]]
* [[2017.03.18 -- Family Log]]
* [[2017.03.26 -- Family Log]]
I started [[h0p3's Log]] officially this month. If you look through the snapshot archive in 🢔⦗[[Connect|Ways to Connect to this Wiki]]⦘🢖, you will find many incarnations of this tool/log. I would make them, collapse them, attempt to categorize them, etc. It was definitely a period of yet more necessary wandering.<<ref "1">> That's kind of what this wiki is about. I'm specializing my tools though. This is a catchall area in which to to grind when I don't have categories or specialized pages designed for the problem or thought at hand. It has an everydayness to it that I very much like. 

Obviously, I didn't know what I was doing this month. That's okay though. I'm still learning how to use this wiki. I'm still formulating it. I'm glad I took the time to write something down. It allowed me to look ahead, to see what I needed, and to start building it.

I wrote down what frustrated me. That's a start.

* [[2017.03.24 -- h0p3's Log]]
* [[2017.03.26 -- h0p3's Log]]
* [[2017.03.28 -- h0p3's Log]]

---

<<foonotes "1" "Which is not to say that I'm not still wandering.">>
This was a difficult month. We're still morphing because I will be working outside the house. We're getting there. It is clear that [[j3d1h]] is functioning better than [[1uxb0x]], but she is older (so she should). It did not use bullet points here, and instead I focused more on a written narrative. Perhaps I should use both.

* [[2017.03.04 -- Homeschooling Log]]
* [[2017.03.11 -- Homeschooling Log]]
* [[2017.03.18 -- Homeschooling Log]]
* [[2017.03.01 -- Pipefitting Log]]
* [[2017.03.02 -- Pipefitting Log]]
* [[2017.03.03 -- Pipefitting Log]]
* [[2017.03.06 -- Pipefitting Log]]
* [[2017.03.07 -- Pipefitting Log]]
* [[2017.03.08 -- Pipefitting Log]]
* [[2017.03.09 -- Pipefitting Log]]
* [[2017.03.13 -- Pipefitting Log]]
* [[2017.03.14 -- Pipefitting Log]]
* [[2017.03.16 -- Pipefitting Log]]
* [[2017.03.20 -- Pipefitting Log]]
* [[2017.03.21 -- Pipefitting Log]]
* [[2017.03.22 -- Pipefitting Log]]
* [[2017.03.23 -- Pipefitting Log]]
* [[2017.03.24 -- Pipefitting Log]]
* [[2017.03.27 -- Pipefitting Log]]
* [[2017.03.28 -- Pipefitting Log]]
* [[2017.03.29 -- Pipefitting Log]]
* [[2017.03.30 -- Pipefitting Log]]
* [[2017.03.31 -- Pipefitting Log]]
* [[2017.03.04 -- Programming Society]]
* [[2017.03.07 -- Vault 7]]
* [[2017.03.10 -- Culturalism and Israel]]
* [[2017.03.11 -- The American Food-Industrial Complex]]
* [[2017.03.12 -- Trump's Administrative Truncation]]
* [[2017.03.12 -- Generational Enslavement]]
* [[2017.03.22 -- The Second Cold War]]
* [[2017.03.22 -- ♫ It's beginning to look a lot like treason ♫]]
* [[2017.03.24 -- Injecting Fully Decentralized Networks Into Capitalist Political Systems]]
* [[2017.03.28 -- The Future of Reverse Engineering]]
* [[2017.03.29 -- Ivanka Trump: Pappa POTUS' Handler]]
* [[2017.03.31 -- The Mercer Family]]
Chris works hard. I admire it. I appreciate it. He realizes I'm waiting on him to catch up, and he's even apologetic about it (I tell him it isn't his fault, and I do not make a big deal about it). My partners weren't convinced we were off on our 6-piece-90. It was. I then explained how I wanted to fix it (went through the options with them). Grinding discouraged them greatly. I wasn't going to give up though. I continued, and I fixed it. They were surprised it worked. Regardless, I was happy about getting it done.

Afterwards, I was assigned to teach Chris the 3-piece-90. He did a good job. Then we moved to a 4-piece-90. He's still working on it. I'll help him with grinding on this one. 

I adore grinding. It is a form of sculpting. I like to sculpt.

I also asked if I could learn to weld and work on personal projects on Thursdays. My teacher happily agreed. Yay!
Today was an excellent day. My teacher brought over a ventilation machine and showed me how to run a basic bead. I made a ton of parallel ones that were snug/adjacent to each other. My teacher was blown away, shocked that I had never had any welding experience. Said it was better than his work. He brought the welding teacher over to look at it, and the welding teacher also praised it. Word spread around the pipefitting and welding classes. Many came to look. It turned out pretty good for a first-timer. 

Johnny, who is well-regarded in the class, who already has a job as a pipefitter, thought I had lied to him when I said I had never welded before (he was the one who offered to show me, but I didn't want to break any of the rules of the shop, so I politely declined). He could not believe it. Multiple people told me to stop being a pipefitter and go straight into welding. My head, obviously, has swelled.

I moved onto making a gift for my brother. In case he is reading this (which I highly doubt, by his own admission), I won't say what it is (since he wants a surprise). It's a piece of art using pipe and welding. I think it will be fairly cool. I'm about halfway done with it. This coming Thursday, I hope to have it finished.

I also went to the union on a whim today, and Randy was there! He didn't remember me though, a first, unfortunately. We talked about what I was working on. I pointed out that I was familiar with Blackboard as a teacher (this is not the first tech problem I've seen him have; I could be very useful on this front). I tried to convince him to give me the chance to show him that I will be possibly 3rd year apprentice material. He prefers experience to classwork, but I think I can impress him. We talked about how he is changing by-laws. It's clear that there will be wiggle room for him to see that I'm worth advancing. He changed the date now to possibly July for hiring. 

They don't use NCCER or the certifications I was told to get. I'm kinda annoyed at that. It's mainly for Eastman I guess. That's fine. They have an inhouse training system, but it looks thrown together. That said, some of the work in the shop looks excellent to me (although, some didn't). 

I also, with Randy there, got to pick the brain of a 4th year apprentice. He was a surly man, and obviously didn't make the union look very good (by face, not by content or pay). I can tell I will have many knuckleheads to work with. That's okay though. Building shit and making money, I can put up with it.

I'm feeling confident. I feel like there is a connected set of worlds I will be able to navigate and bootstrap myself through. Competence is achievable. I just need to push forward, reach out and grab it. It's mine there for the taking.
I must be a cool kid now because everyone has decided to try and imitate what I've done. They are buying their own auto-darkening welder masks and spending time welding instead of working on their pipefitting. Nash, too, is doing it. He didn't do jack shit today. Chris, however, is taking our work seriously (for now). He hates the tedium, the detail, etc. of it. He hates pipefitting. He straight up is only doing this to get a job, to get his foot in the door, and to eventually get back on the path to being a millwright (so he says). 

Chris' 4-piece-90 pieces weren't very good. His cuts were fucking terrible. It took some serious grind work to get it back in shape. I was embarrassed to have my name associated with it. Our teacher was just fine with it though (he's become forgiving to us at this point; if I say it's done, he just believes me [he doesn't even check anymore unless I imply I'm not satisfied with it]). Our teacher commissioned some x-piece-90's from us for a tradeshow. He grabbed some stainless steel rods (they make beautiful chromatic discolorations) so that our tacks will look right. 

We're moving onto a 7-piece-90. Nash did not lift a finger. I tried to involve him, but he was having none of it (he wanted to practice welding instead). That's on him. We are going to leave him in the dust. Chris is working hard (at least he knows why he is there; and he's working hard to catchup). We'll rock it on Monday or Tuesday.

I hate to say it, but I work faster and cleaner by myself (with a helper for small things). I'm decent at leading in some respects. I see the tasks, problems, orderings, and delegations. The shop is a vacuum, but I believe I will still be good (or eventually good) at leading in the field. 

Chris, who has experience welding, promised to show me some more. I'll take as many perspectives as I can get. I have many Thursdays to go.

We have a field trip to Snap-on (a luxury tool maker in town) on Monday. I'm going to go, although I'm not convinced it will be worthwhile. That's okay though. 

Also, apparently we will be out of school for a week. This sucks. Maybe I need to see if they'll let me tag along at Eastman. I would work for free at this point. I don't want to waste my time. Maybe I could do something at the union; I don't know. I mean, I could take the week off; there are things I need to do around the house anyways. I will talk to k0sh3k; she will help me decide.
My dearest students failed to complete all of their journal work this week. 1uxb0x is clearly struggling to stay focused and apply his executive reasoning skills. j3d1h did her work (for which I am grateful), but did not complete her journal. We are overhauling our accountability reviews to be daily now. We will still have weekly guidance session, but now I must crack the whip.

It is crucial they become self-sufficient and self-motivated in their semi-autodidactism. It's about giving it 110%, Bobby.
//Technology is a double-edged blade. Who wields our greatest technological tools and for what purpose?//

We are biological computers living in deeply integrated computer networks and architectures. It's hard to fathom how the pieces fit together. One fact is clear: we are increasingly a data-controlled society. The shadow of Big Brother, a loose agglomeration of many competing national and multi-national political and financial interests, continues to solidify and take root. They wield increasingly sophisticated data-driven weapons against us. Golem is bootstrapping.

* Privately owned and operated institutional AI drives "progress" and herds us together into submissive pawns. 
* Credit scores have far less to do with risk assessment and far more to do with generating revolving debt-slaves. 
* Long-term computerized record keeping mixed with the inevitability of clandestine interventions, hacks, and blackmarket doxxing removes privacy and pigeon-holes us for life. 
* Competitive intelligence distorts markets and creates monopolized playing fields between privatized Big Data and everyone else.
* Filter-bubbles entertain us, blind us, and isolate us. 
* Propaganda and mass behavior shaping is increasingly accuratized and weaponized beyond our wildest dreams. You are not immune to psychocyberwarfare, although you delusionally think you aren't even partially a puppet (just like you think advertising has zero effect on you; idiot).
* Computerized "Minority Report" predictions of criminal risk are wielded as profiling and targeting tools which eliminate our autonomy and justify the unequal treatment of people.
* "Citizen Scores" exist in many nations, and their use will become more ubiquitous and profound in shaping every aspect of our lives.
* Fundamental, detailed, deep-learning digested, mass surveillance structures are rising. They are building the prisons around us as we speak. 

We are being remotely controlled bit by bit. It starts indirectly, shallow, hard-to-see, difficult to imagine, and innocuous appearing at first. We are persuaded, gas-lit in an entertaining and self-righteous feeling way, and nudged into the positions set for us by our masters. Technological tendrils and chains penetrate, bind, incapacitate, and manipulate our society. In an oversimplified explanation: those in power pay people to program computers to program us. We are embedded and caught in this ever complexifying feedback loop, a political network of slave-computers.

Let's be clear: this is not some perfectly choreographed political experience machine. It's deeply chaotic. There are many competing forces. There are many unknowns. Data-controlled societies emerge from the culmination of these many processes through a marriage of purpose and accident. The technopolitical tectonic plates are shifting. Society is in exponential flux. We are politically polarized and fragmented. Who will have the power when the dust settles? As we move towards this technologic Singularity, who will own it? One thing is clear: it won't be "we the people." Superintelligence is a unique beast, and whoever creates and tames it first will form the new House Targaryen (amplified beyond our imaginations). Power begets power; capital begets capital; information begets information; intelligence begets intelligence; they each beget each other. These powers continue to centralize and are wielded by fewer and fewer people. 

Why should we be subject to their definitions of The Good and The Right? Good and Right 'for whom'? Do you really think they have our best interests at heart? Do you really see philosopher kings and wise statesmen at the controls? Fools. Those in power are psychopaths. The appearance of paternalism is the beginning of slavery. But, eventually, their power will be too intelligently-driven and profound for us to fight back. Our autonomy is dissolving before our eyes, and we will never get it back. Subversion, dissent, counterculture, and freedom-fighting are and will be calculated for and neutralized. Unfortunately, even if we could stop it, we won't. The masses are too illiterate to realize what is happening. Ignorance and malice gel into the slavery-apocalypse. Yo, the end is nigh! 
We have show and tell on postmodern Google-translations (corruptions) of "Be Prepared" and "Bohemian Rhapsody." We also covered a physicists remix of Bohemian Rhapsody. 

*What happened last week?
** 1uxb0x
*** Played with friends a lot, and it made him happy. 
*** He is organizing his nerf kits. 
*** Finally cleaned his room. Very pleased with himself. =) 
** j3d1h
*** Enjoyed talking about [[Club Unlimited]]
*** Also cleaned her room. Very pleased with herself. =)
*** Liked her art. She drew a sneaker shoe. It looked "realisticish."
*** Finalized plans for the server
*** Wrote the minecraft IP address of her server on her room's window (advertising)
** k0sh3k
*** Got her chapter back, accepted with minor edits. 
*** Finisher her class on "Color"
*** Taught her Lent class; it went well. 
*** Dealt with ILL problems.
** h0p3
*** Wrote a bunch on my wiki
*** I learned to weld, and that it rocked. 
*** Lectured several times this week. 
* How are we feeling? (health, emotional, etc.)
** 1uxb0x
*** Overall: Pretty good, happy.
*** Didn't get headaches or feel feverish this week. 
*** Yesterday was rough. He wasn't worried though. He didn't have butterflies.
*** Wednesday he was worried, but his mother was keeping him accountable to his work.
** j3d1h
*** Angry at herself and sad for not having finished her journal.
*** Didn't accomplish any projects (besides art) that she wanted to finish, makes her unhappy.
*** Otherwise and overall, pretty good to okay.
** k0sh3k
*** Felt good. Not too tired this week. 
*** Not a single headache all week, even during the storm. This is weird (and good). [Achievement unlocked!]
*** Haven't missed meat yet (gave it up for Lent).
*** Sad about her mom having the flu.
*** More nosebleeds, but this may be change in weather.
** h0p3
*** I've had a variety of emotions. That's normal. 
*** Perhaps I need to reset my tolerance to cannabis. It doesn't seem to be necessary. I didn't even take it yesterday. I hope to wean off. 
* Are you happy? Why or why not?
** 1uxb0x
*** Definitely happy. Having friends, going outside, etc. 
*** Happy about having dreams.
** j3d1h
*** Relatively happy, yup. Normal mood.
** k0sh3k
*** Feeling fine.
** h0p3
*** I am happy. It has been a good week. I've lacked hope a few times, but that's okay. The trajectory is up.
* In what ways did we successfully empathize with ourselves and others this week?
** 1uxb0x
*** Doesn't think he empathized with anyone this week, except saving his soda and playing nerf with his friends. 
** j3d1h
*** Cleaning up quickly occurred because she empathized with herself. She valued her time.
** k0sh3k
*** Nuffin' -- jk -- Lenten study didn't want to last minute. Did it throughout the week.
*** Didn't eat chocolate that would make her sick. Empathizing with herself.
** h0p3
*** Started to learn welding.
*** Did my best in my conversation over vidchat with my parents.
* In what ways did we fail to empathize with ourselves and others this week?
** 1uxb0x
*** Barely writing journal.
** j3d1h
*** Didn't finish her kitchen chores very quickly. Didn't work as hard as she would have liked.
** k0sh3k
*** Forgot to take her medicine on time several days. Coffee as well.
** h0p3
*** Failed to empathize with humanity in general many times. 
* What will we do this week?
** 1uxb0x
*** Try to play outside more, which means finishing his work earlier and on time.
** j3d1h
*** Finish journal everyday by doing it after each subject. 
*** Learn to be concise in journaling.
** k0sh3k
*** Going to develop lesson plan over the course of the week.
*** Get a weekly pillcase
*** Paper editing/formatting
** h0p3
*** Find a way to get pipefitting experience over spring break.
*** Cut cannabliss this week (or try). 

Today was an interesting day. I studied for my test (which I never got to take; tomorrow, I guess). We then went to a Snap-On plant as a field trip. It was boring and everything I expected. I'm so glad I'm not doing factory labor. That is souldraining. The PR/Manager spokewoman was openly in favor of enslaving people. She spoke glowingly about how the governor was good because the he made laws which benefited employers instead of employees. Nobody else seem phased by it. It was gross. As for the process though, it felt like I was watching the discovery channel on the tour. There was a ton of pipe in there too. I could build quite a bit of it. I still, obviously, have much to learn. The mounting of this stuff, that's where I know jackshit.

I spoke with Ferguson (he was my ride) about religion and philosophy today. He's a nice guy. I have a very negative perspective, but he was surprisingly charitable towards me nonetheless (that is quite rare). 

I did get the cuts and most of the grinding work done on the 7-piece-90. I was interrupted though. My teacher asked for four 6" long 3/4" diameter pipe for the welding class. As we were finishing these (I was actually making sure Chris could do them, since I've yet to see him do screwpipe; I showed him one, and he did an okay job on the rest), my teacher interrupted that as well. He told me to come with him. We went over to the welder's giant HVAC machines which were having problems. We had to thread by hand a hole to fit our "nipples" (the little 6" long pipes we made). I've never done that before. My teacher gave me "on the job training" for it. I have 3 more to finish tomorrow or the next day. I'm soaked. I have extremely sticky thread-metal shards in my hair, I ruined my gloves, and I've had to wash my hands about 7 times. It didn't work out as cleanly as we'd have hoped (not my fault), but it works. 

Tomorrow I get to see a presentation by the union. I hope to make a good impression and learn a lot.

Also, I asked my teacher to see if he could find a place for me to practice pipefitting over springbreak. I don't mind if I don't get paid (although, I'd like to if I could). Internships are fine at this point. I need every ounce of practice I can get.

Today I finished the dirty, wet work I started yesterday. We tapped the giant machines, installed the nipples and valves. My neck is very sore now. It was quite claustrophobic feeling down there. I cleaned the tools and returned them to their owners. 

We took our test. It was funny because we were given none of the usual study points (although, my teacher was convinced he did). That's okay. I had read the section (glossed, in this case), and it wasn't a difficult one.

Afterwards, we welded the 7-piece-90 together. It was tougher than usual. We burned a hole (my teacher made it too hot for stainless; he didn't want sputtering though). I partially fixed it (after the others tried) by making it a cold 50 amps and carefully adding around the edges of the circumference. This didn't fill it correctly though (the teacher thought it was a good idea nonetheless). The teacher gave us a piece of brass to put underneath (I'm assuming it lacks Iron, and that's why our metal didn't weld to it). I just filled it up, and blam, it was sealed. Nice trick. I'll have to remember that one.

Post-lunch the union gave us a presentation in the auditorium. They talked a lot of shit about college degrees and how awesome we were for going into the trades (/masturbate). The big man from Chattanooga's union made it sound excellent. Their training program is highly renowned in the area, and they have a strong relationship with TVA (kush job, apparently). Randy, the local union rep recognized me (but still didn't know my name) this time as he pointed me out during the presentation. 

After the presentation, I talked with the 4 union guys. We talked, and apparently this man from 3.5 hours away knew who I was before I introduced myself. That's a good sign. He thought it was very odd and cool for someone with 10 years of post-secondary education to go into the trades. Chattanooga-guy said he wanted me to apply this year (instead of next). They only take applications in March, so it is now or next year. I'm going next week Tuesday to apply. He told me that when I got there that I needed to tell the secretary (or whatever) that he asked to see me when I arrived. I'll be shown around, probably have an impromptu interview of sorts, be tested, and fill out my application. Eventually, I'll have an official interview, I believe with the committee. July is roughly when I'd start. I'd have to learn more about union history, get my OSHA-30 (waste of time to get my OSHA-10), etc. 

Anyways, the union guys walked around the shop (appearances and relationships matter for my teacher as well, it seems), and we were told to start working on a "Y" without help (to figure it out). I think I know how to do it though, so that's cool.

I asked my teacher which union he thought I should go into and the specialties I should pursue. Valves, welding, and plumbing would be killer useful he thought. Madmoney. The Chattanooga union really does have a better teaching program. That said, Randy here in the local might let me join in August and would possibly allow me to join as a 3rd year apprentice. That would be a leap forward from only 6 months of work. Apparently, Randy was impressed by my visits and wanted me to become their teacher (after I passed the journeyman test). I suspect that I will be asked to teach or speak wherever I go due to my background. 

Chattanooga is local, but 3.5 hours away. I'd only see my family on weekends. The local union does no local work, and I'd be away from months at a time. Chattanooga seems like a much wiser long term plan for many reasons. I could get journeyman here at my local faster and transfer, but I think the education I'd get at Chattanooga could really make the difference. I value learning it right the first time. 

Long-term, I want to own my own business (which you can do while in the union, as long as you pay union dues). So, I'm talking with k0sh3k about what I'm going to do. We're not sure yet. I'm feeling confident that I'll have a decent paying job by August though (which is well before I complete this class). 
According to Wikileaks' Year Zero disclosure today, the CIA has lost control of a very large treasure trove of remote control malware systems, denial of service attacks (even against the internet infrastructure at large), privilege escalation, hoarded zero-day exploits, documentation, and sourcecode to a wide variety of major software ecosystems and standard electronic devices (including smart TVs,<<ref "1">> lulz). Some of these tools are extremely sophisticated (e.g. this is the first time I've seen weaponized air-gap jumping malware in production). It is thought to be the entire hacking capacity of the CIA, which was not previously publicly known to be this extensive. This systematic cyberwar chest now appears to be in the hands of multiple parties. This is incredibly dangerous. From what I can tell, no major computing system has escaped unscathed from this warchest.

The lack of digital fingerprints on these tools are meant to prevent implicating CIA agents. The real humdinger, however, is that 
these tools were declassified to protect agents from legal action. Essentially, they are unaccountable for black-ops because "anyone" could have used these tools. Now that multiple-parties control it, it is possible we will see these tools wielded openly and strongly in the coming months (before they get patched [assuming they ever do get patched]). It is very worrying.

Beyond the problem that they had these in the first place (no disclosures or attempts to plug these holes), cyberweapon proliferation is wildly different from standard physical weapons (copy and paste, motherfuckas). Also, this is why you don't accept mandated backdoors. When they've got more code than Facebook does and lose it, why should we think they would keep keys to mandatory backdoors safe and unleaked?

Their cyberweapons holdings are in violation of executive orders from the Obama administration (although, I'm far from convinced that Obama was actually in favor of limiting CIA powers). We see the intelligence community is either beholden to no one, not even their direct leaders, over and over again in history, or have been directly empowered to violate basic human digital rights again and again.

It is interesting to see the CIA duplicating the efforts of the NSA. It is difficult to understand exactly how and why it has played out as it has and even harder to understand what it means. While there is cooperation between intelligence agencies, this level of competition says something important about the political climate and relationships between our intelligence agencies, and more importantly, about the lack of oversight from our elected government officials. I don't think this is a good thing, and I don't mean that from a fiscal sense (double-spending, etc.). The CIA lacks accountability and is not controlled even indirectly by the people, and this is a serious problem. They are a threat to democracy and world stability. This is just another player in the deep state (which we've known for a while, but this only highlights how dangerously powerful they really are).

 
Engage your tinfoil hats people. It's not the matter of //if// you will be compromised, but the matter of //when//. I don't give a shit about real or perceived vulnerabilities in technology companies as it relates to their loss of marketshare. I do care that a race towards an technological oligaculture enables the world-scale systematic infiltration, permanent infestation, and loss of control and privacy (and anonymity) of users around the world. 

The only positive to this is that Apple products got hit really hard (I hate people, especially Applefanbois). What do you expect when the wealthy and cool use the same ecosystem? I hope those fucking sheeptards will see the light (they won't). Linux, BSD, and perhaps the lesser-known OSes appear to be the most resistant (although, even these were hit to some extent).

Lastly, I'd like to call into question Wikileaks' release by calling into question Assange and Wikileaks themselves.

As I have worried for many months, Julian Assange didn't demonstrate control of the wikileaks private key during his last Reddit AMA. Since the scare last year, he has yet to cryptographically prove himself to be alive (and the cryptographic indicators we do have do not look good). Of course, having the private key doesn't show that Julian Assange is alive or not compromised, but it would at least do something. Given that Assange and Wikileaks have broken their standard crypto and communications protocols (starting about half a year ago), I am still not 100% convinced that Julian Assange and Wikileaks are not compromised. Something is still fishy here. 

Of course, you can point to numerous interviews over the past months and even second-hand accounts of having seen him. I see no reason to trust these second-hand accounts, and the interviews are not necessarily real.

Let's be clear. Assange posed a ridiculous threat to the Hyperclass and the Deep State. Even if he is a psychopath, he is a hero. I'm sure enormous resources have been invested into trying to take Assange and Wikileaks down. Forging interviews is a real possibility.

Text-to-Voice, even for the common man, using any person's imprinted voice, is now so clean that you can't tell the difference between the real thing and the artificial without very serious analysis. However, take state-of-the-art state-level actors intelligence community technology, people who are world class at this, and I believe Text-to-Voice is likely indistinguishable from the real thing at this point. 

Fake facial video can also be created using opensource tools from academia right now. Again, state-of-the-art tools may make it so that we can no longer distinguish real from artificial video footage. Photoshop has long been there. It was only a matter of time before video footage was going to get hit by the same trust problem.

Here's the kicker: even civilian impersonation tools can be computed and displayed in real time. Watching a live interview over video doesn't mean anything at this level. State-level actors could impersonate Assange if they ever captured him. It can't be trusted completely anymore (not that it ever could, but now it is too simple and easy forge human likeness and speech). 

So, here is where I go full-blown conspiracy theory tinfoil hat on you: 

Since there is a non-trivial chance that Julian Assange is compromised, how can we interpret this Wikileaks disclosure of CIA tools? Many parties seem to benefit from it. Why is the CIA being undermined or publicly humiliated? If Wikileaks is a puppet, it is desperately unclear who is in charge and why they've done it. Since we have no proof of these exploits and only a "release" talking about it without any third-party vetting (from what I can tell), there may be another game being played.

At this point, I have no idea. Assange and Wikileaks may not be compromised. I don't think we have the resources to know right now. In either case, it's a terrible thing. If our truth-telling whistleblowers are compromised puppets, we're boned. If they aren't, then the CIA has made legions of costly mistakes which we may all be paying for soon enough.

My maximally irresponsible, speculative conjecture today is that the Russians have armed Wikileaks with this information (I say this as a cosmopolitan who despises nationalism of any variety). Russians likely already have the tools. If so, and perhaps they are the puppetmasters, then Trump's administration will be fighting against a politically weakened CIA. The CIA is thought not to trust the Trump administration. Let us pay attention to if and how Trump responds and benefits from this loss of confidence in the CIA. Trump as fascist and lazy individual seems likely to hand them significant powers though. My vision is foggy.

I do believe we are at sociopolitical war with Russia. I don't mean that we are fighting Communism (although, there are plenty of fucktards who would buy that). We are fighting the memetic hypernormalization and deep psychopathic corruption of a trillion-dollar kleptocratic Putin cabal who not only owns Russia, but now takes aim at destabilizing the world all over (on top of the Western hyperclass variants). Republicans, conservatives, and capitalists are taking a page out of Putin's playbook.

People, it is no accident that the forever neutral Sweden brought back its draft. There are always wars going on, but war on a much larger scale is coming on all fronts. Jesus Christ. I'm holding my breath. I hope I can protect my family in time.

Lastly, I take it to be no accident that the NSA got hit and then the CIA. The FBI and a handful of other agencies may be next.

-------------------

<<footnotes "1" "No ~IoTs, please. I don't need that shit in my car, fridge, toaster, TV, buttplug, or anything else. Give me control and as much analogueness as is reasonably possible without significant losses in primary function.">>
Today I barely even started on my Y-piece when my teacher told us we had another project to work on. We had to install regulators on the flow hoods for the grinding stations used by the welding class. It was cool. We took apart the pipe system and finally got to use unions. The math worked perfectly. I was quite pleased. 

My teacher attempted to convince me today instead to rethink the local union, particularly if they allow me to jump to 3rd year apprentice out of the gate. That would be a significant jump in pay, no doubt. 
Today was another fantastic day. Welding in the pipefitting class makes me feel like a savant (I know I'm not at this). Thursdays  rock. This was my second Thursday practicing welding, and it went quite well. I spent a lot of time learning/practicing beveling as well (which is a key pipefitter skill). 

I setup everything at my workstation before my teacher had the initial morning meeting. I'm going to continue doing that as best as I can. I can't really start setting things up entirely without access to the tool room, but I can at least try. I want squeeze out every moment of practice that I can. My time is valuable to me, and I love myself. Empathize!

I went straight into finishing my brother [[JRE]]'s present. It's quite a project. The superficial/exterior welds are finished. I burned a couple holes in the thin pipe, but I don't care. I know how to fill them in, but the holes fit the project nicely (I even accentuated them because it drives home the theme of the art piece). I also gave it a grind to make it partially shiny. No one else thinks it looks awesome. But, I think it looks amazing. It's the thing I'm most proud of today, even if no one else thinks so. I think they just don't see what it will look like at the end. 

I decided to make something cool out of my first piece of welding. It was fairly clean parallel beadwork on a carbon steel slab. I cut it into a heart shape (with TJ's help) and did some major grinding to make it shiny. I cleaned it up. The shape is not perfect (yet?). I should continue to work on it to make it as nice for my brother, [[AIR]], as I possibly can. My brother might think it's dumb or he might not. All I know is that I love it. This was the piece that shocked everyone last week, and I can see why. I think it doesn't look nearly as good to people who don't care about welding though. I don't know what to say. My brother is a chef; I think he'll see it as I do: an extension of learning a craft (which he undergoes everyday).

I moved onto something entirely new which I know all welders must learn. I took two carbon steel plates and told my teacher I wanted to weld them together. He told me how and showed me how to measure my angle for the bevel. This is my first time doing any serious beveling (although, I fucked around twice on a pipe to get the feel it). I'm a good beveler, imho. I have very steady hands and a natural talent for shaping it. My spatial reasoning is generally far above average.

I tacked the ends and laid a root. There is the idea that I should have a keyhole that slowly fills in from the pool. It was there. I will need to learn to control it. I need to get my flow on. The root was shit though. It didn't look pretty from the bottom, that was the problem. I cleaned it, and then I filled it. I also went on the backside and dropped a bead. My teacher came back and told me I wasn't supposed to do the back. I didn't know. I won't do it again (although, in real life, I think it is completely reasonable to do it; just not for welding tests). He said my fill looked really good though. He told me to run 3 stringers on it. So, that's what I did. They weren't super clean, but they were clean enough.

I moved onto making a ring. This is probably a dumb idea. I'm trying it anyways. Welded steel is profoundly strong, and it would make a decent ring. I just loop around, chip, clean, and repeat. I'm going to use a cutting disk to cut it off the plate next week (I hope). I'll shape it afterwards. I think I know how I'm going to make the inside the size I want it. I need to do that first, then I can work on the outside. Anyways, as I working on the ring, my teacher told me that Randy (the union training coordinator) was driving over today to see my work. That was cool. 

I moved onto to taking very thick slabs of carbon steel and beveling them. Jesus, it took forever. I even switched up to a better grinding disk for it. My arms and wrists are like jello. They look clean as fuck though. Seriously. It looks like a machine made them. I'm almost too afraid to use them because of how long it took to bevel them. I want to get more practice dropping roots in before I do this. Everything is crap if the root is wrong. I need to nail the root, and then I can fill it. The filling will be tricky on this one too. I'm going to burn a ton of rods welding it together. Seriously. It's almost an inch away at the top of the bevel from the side on each plate. I don't know how to fill it something this wide. I'm assuming I'll have to make many filling passes. I hope my teacher can tell me.

Anyways, Randy came over to look at my work. My teacher wasn't there (although, Randy found him on campus after having visited me). He was impressed. He told I had the job! Although, to clarify, I only have the job assuming they actually hire apprentices in August as they have planned to do. He said I would have the job for my welding, if nothing else. He said I'd have the job just for continuing to show him that I'm invested in this and from having met him multiple times about it, if nothing else. He said I'd have the job just because I'll be damn useful at helping him with the computer systems and teaching as well. He can see I'm serious about it. 

I have a feeling that my teacher, who is much closer in relationship and power dynamics to Randy (who sits on the board of my program), has been trying to show Randy that they want to snap me up before I head to Chattanooga. I will be quiet and courteous about this. I need to do whatever is best for my family, period.

Oh, the welding teacher came later (Tim had hinted that I should leave the plate out, but I was cleaning). He said it very good work. He also gave me a pointer for getting less splatter (I'm messy). He told me to turn the heat down and stick closer. When we looked at my heat, it was actually too cold (he said this can cause it as well though). I will do what he says, since he knows what the fuck he is doing.

Also, I told Chris how I moved so quickly through the computer course: literally click through the homework/practice/lessons/quizzes and only care about the exams. This shit is common sense, but they make you "learn it" anyways, even if you could pass the test beforehand (they won't let you skip straight to the exam). Apparently, I saved him a bundle of time. I think I'm the only person who has seen the through the cracks on that computer-based curriculum.

Oh, I tacked for Gary's project today and helped him get it together (despite having no experience with buttweld pipefitting). 
Humans are humans. I'm a cosmopolitan. I despise nationalism and racism. Despite memetic and genetic differences between each individual on the planet (we are all unique), we are all human. We must respect human dignity. It's the golden rule.

There are superior genetics, but they don't belong to any particular race. All things being equal, the person who has a 10% chance to get cancer is genetically superior to the person who has a 20% chance to get cancer. Does that make them morally (right) superior? Fuck no. Does that make them a better human specimen as defined the Human Good? Of course. I'd say the same thing about a starving child vs. a well fed child. One case is clearly better than another. Does that mean they deserve unequal treatment or that they deserve their suffering? FUCK NO!

There are superior memetics, but they don't belong to any particular race. All things being equal, the person who can do basic math is memetically superior to the person who can't. Does that make them morally superior? Fuck no. Does that make them a better human specimen as defined the Human Good? Of course...and so on.

Be real for a second. You have a standard of the good. As much as you want to escape Perfectionist tendencies in your metaethics, you simply can't. You are delusional if you think you can, moronic even. You've deeply misunderstood the fundamental concepts of morality to deny it. Now, don't get me wrong: I think your confusion is the name of something noble. You are so horrified by the enslavement, torture, genocide, and lack of egalitarianism in human history that you are bending over backwards to make sure your point of view could never, ever be used to go down that terrible road again. Problematically, it is deeply anti-intellectual. It is burying your head in the sand. It is a failure to be honest. The consequences of your approach are dire. For that, I say: fuck you.

Obviously, we have no control over who we were born as. You might even deny autonomy altogether, and I'm willing to walk down that road.<<ref "1">> I will do my best to make sure I do not hold people accountable for their morally arbitrary characteristics. It's my mission to be fair in my judgment. 

I am a culturalist though (and I don't mean this in the standard sense, but more in the discriminatory 'ism' sense). I take certain configurations of memes to be superior to others, at least instrumentally, if not intrinsically, towards the kaleidoscopic spectrum of the human good. If you think for a moment, you know it's true. It's why you think there is epistemic normativity at all. You've begged the question. We all have. Even the nihilists can't help themselves. It is our plight. And, to be clear, what you believe matters. 

Here's the key: culture is reducible to memes and practices which emerge from those memes. Culture isn't special in itself. What you believe matters, but that doesn't mean the content of what you believe is correct. Being right matters. Doing what is right matters. Having a shitty culture is a bad thing. There are superior memetics, and hence there are superior cultures. QED.

That sounds horrifying to you. Even a good Kantian should recognize the truth of it though. Nazism, as a culture, is awful. Do you agree with me? Yes. You are a culturist too. There's nothing inherently wrong with being culturalist. Do you respect the human dignity of Nazi's? Of course, even though they are deeply wrong. They are psychopathic. I have no respect for their culture, even if I take the human beings to be intrinsically valuable (despite the beliefs they hold). I will, however, discriminate against Nazi's in many ways. 

I'm not going to promote the survival of their memes, their culture. I will, however, feed a hungry Nazi. I will give them books to read. I will be as kind to them as I can. I will not aid their goals though. Their memes must die. It is a fine line to walk. But, the virtuous must walk it. I have the same approach to all cultures (although, not all cultures are as strictly wrong about so many crucial things).

Alright, that is a long preamble to explain that I am not anti-semitic. It's absurd that I must spend so much time explaining it, but people are not rational on this topic (neither conservative nor liberal, and especially not the religious). 

The Hebrews with Abraham, Israel with Jacob, and the Jews with Judah, and whatever other memetic ancestry and transformations have occurred (this becomes a matter of even more serious theological, sociological, linguistic, and historical contention) are one of the great memetic lineages of human history. We owe much to it. That doesn't make it right though. Exactly how this Great Meme is related to a genetic lineage is another matter as well. I couldn't give two shits about genetic lineage. My mother is convinced we are partially Ashkenazi Jew. She could easily be right. Genetics are just unimportant to me in a discriminatory sense. Humans are humans. Memes and behaviors which derives from those beliefs, however, I will discriminate against. 

It is patently obvious to me that modern Israel is an extension of capitalist interests. They are war-criminals, as are their enemies. None are redeemable. I'm tired of war, especially for the sake of capitalism and religion. I have no respect for either. 

Does that mean I think genetic Jewish people deserve any drop less respect than other humans? Fuck no. Do I think their memes, along with almost everyone else's are terribly wrong? Yes. 

I favor the end of memetic and political Israel, just as I do for Christianity, Islam, superstition, Libertarianism, the Alt-Right, and every other ridiculous set of beliefs which support capitalism, slavery, war, and eventually the end of human life. 

Genetically, humans are my friends. Memetically, they are generally my enemies. We are at memetic war, people. I hope your beliefs die because what you believe sucks. I'm not telling you to kill yourselves, but I'm begging you to kill that memetic part of yourselves that I really hate.

--------------------

<<footnotes "1" "It's a dark road, friend. I've walked it much longer than you have. I believe I know what it means better than you, and I don't think you'd survive it, at least not with your integrity.">>
j3d1h did a fantastic job this week. She really tried hard, and it showed. She may not have accomplished what she hoped to accomplish with her effort, but my judgment is concerned with whether or not she did or her best. Effort is what I want. While she is still getting her journal/recording/reflection down pat (was fine this week), I really appreciate that she takes herself and her work seriously.

Wealthy people certainly wouldn’t want their own children to have to play the game of life on a fair, even playing field against poor children. Competitive advantage in education, experience, etc. are too valuable for maintaining status and happiness.
Preface: I suck at controlling my eating habits, and that is at least partially my fault. I am not as disciplined as I should be. I'm working on it though. It's hard to do when you are depressed. I often lack the emotional, temporal, and financial resources to do it right. I use food as a drug, without a doubt. My whole family does, and we know it. My poor health is at least partially my fault. But, it isn't all my fault. There is plenty of blame to go around. My goal here is not only to highlight my hypocrisy, but to point out how we are seriously fucking up on feeding ourselves in crucial ways.

We don't produce food and feed ourselves as we should. Capitalism does not incentivize people to be moral, regulate themselves, or make choices which benefit us in general or in the long-term. The American Food-Industrial Complex does not exist to ethically feed humanity; it exists to line the pockets of psychopaths, regardless of the costs.

* The food industry, including a variety of service industries, severely limits or makes it impossible for workers to call in sick. Beyond enslavement, this is a significant public health problem.
* We produce more than enough food to feed everyone in our country and then some. Businesses would rather let food go to waste than miss a sale. They really don't care about feeding the poor, needy, and hungry. Blemished (but perfectly edible) food that lacks marketplace appeal is discarded rather than used to feed the masses.
* Through agricultural subsidies and predatory food manufacturer strategies, it is cheaper, both financially and by time-investment, for the poor to buy highly-addictive ("craveable") food with low or poor nutritional value than healthy options. Our laws are designed to help capitalists target and enslave the poor to these foods.
* Dietary guidelines, studies, and laws are paid for, defined by, and manufactured by food industries and lobbyists who have a vested interest in promoting terrible cultivation methods, distribution strategies, and eating habits for the general population.
* Antibiotic usage in meat industries is a leading cause of the acceleration of antibiotic resistance. The problem may be out of control. Perhaps it is only a matter of time before we see a new and unstoppable Bubonic "Black" Plague.
* The subsidization of corn has artificially distorted several markets, including energy, sugar, livestock feed, etc. It isn't sustainable, and it doesn't create the correct incentives we desperately need in these markets.
* Our foodstuffs breeding programs have eliminated the nutritional value of many of ours foods. It gets worse and worse each passing year, primarily because we're overly interested in the price efficiency of volume, as well as surviving pests and harsh weather.
* GMOs are safe, but we are not nearly cautious enough in how we modify our ecosystems. The process and protective measures we take matter. We regulate the industry to some extent. It is an expanding industry, and it seems obvious we need as much regulation as we can muster. The history of genetic modification and breeding have produced serious weapons, and the possibilities of problems arising from genetic modification should not be taken lightly. It should be regulated heavily (although, we obviously must favor and fund research in this area). I agree we are forced to "play god," but we need to be as wise as we can be in our GMO pursuits.
* GMO oligopolies and IP-rights have led to very problematic business practices. We are tying ourselves to capitalist distortions on seed supply.
* Bees are going extinct, and it is likely from agricultural causes. Their pollination is crucial to our existence. Unlike plenty of animals (except for balancing food web-chains in a broad sense), we desperately and almost directly need bees.
* The ecological effects of overfishing are not well-enough understood to justify it. We need to farm fish.
* Farm mammals are significant causes of global warming.
* We treat many farm animals very poorly. I'm not against eating meat. I'm against torturing beings that feel pain without excellent justification on a reasonable utilitarian calculus. Pain should be minimized. We're obviously not maximizing utility.
* The Food-industrial complex is not held to any reasonable standards in advertisement. 
* The Food-industrial complex seeks to privatize land, natural resources (including fresh water), and the ability to produce food. The goal is to enslave us.
* Hungry people lead to unnecessary wars. Hunger exists because we have a fundamental world-wide power struggle with capitalists. We the people are losing, and even more violence is coming for us all.
* The legal fight and conservative movement against the poor and homeless prevents us from even giving them food in many cases. This is no accident.
* Hunger is on the rise.

We have a serious and complex crisis escalating, and capitalism is at the heart of it. This is yet another form of power that continues to centralize in the hands of fewer and fewer people who do not have our best interests at heart. 
*What happened last week?
** 1uxb0x
*** Didn't do his homework. He's planning how to hold himself accountable (and to prove to his sister that he is working).
** j3d1h
*** Frustrated by the fact that she couldn't get virtualbox to work (although Vmware worked), even though nothing seemed wrong otherwise. 
*** Pleased to finish her journal and format it. 
** k0sh3k
*** She prepared her Lenten study over the week. No procrastination was nice.
** h0p3
*** Made a lot of progress towards getting into the Union. We have good options, which pleases me.

* How are we feeling? (health, emotional, etc.)
** 1uxb0x
*** Sad and happy. Feeling healthy though.
** j3d1h
*** Happy. Got a lot accomplished. Healthwise: pretty damn good.
** k0sh3k
*** Feels really run down this week. Period. Came fast this time, but hit hard. The vitamins have been much easier on her stomach.
** h0p3
*** I've had that fizzy feeling that I had after coming off my SSRI's. I've a drink each day this week, but I had no cannabliss either. I haven't been drunk. I slept quite a bit as well. I skipped DCK this week, and that was probably a mistake according to j3d1h. The lack of Cannabliss didn't seem to affect my affect.

* Are you happy? Why or why not?
** 1uxb0x
*** Feeling happy because he has plans for his future. He feels sad about the past week. It's a new week.
** j3d1h
*** Happy because she came up with some cool ideas for projects/presents (has to keep them secret). 
** k0sh3k
*** Indifferent to sleepy. First headache in a while. But, this is to be expected on her period. The weather has been insane this week as well.
** h0p3
*** I've felt really angry and cynical this week.

* In what ways did we successfully empathize with ourselves and others this week?
** 1uxb0x
*** Planning for his future this week. Figuring out how he's going to get his work done. He also cleaned his room and did the kitchen quickly.
** j3d1h
*** Making muffins for the family. 
** k0sh3k
*** Planning our long-term future, finances.
** h0p3
*** Planning our long-term future, finances.

* In what ways did we fail to empathize with ourselves and others this week?
** 1uxb0x
*** Not doing his homework.
** j3d1h
*** Not doing the kitchen quickly.
** k0sh3k
*** Did not edit her paper.
** h0p3
*** Didn't take DCK.

* What will we do this week?
** 1uxb0x
*** Stop himself from playing and being distracted when he should be doing his homework.
** j3d1h
*** Trying to finish homework before 4pm and help her brother do the same.
** k0sh3k
*** Edit her paper. Not eat BBQ on Thursday (Lent).
** h0p3
*** Work on welding. Get Will, PoAs signed at 3pm tomorrow. Drive to Chattanooga and apply to the union. Use the Cannabliss. Go through my very large bookmarks collection.
//Society grows great when old men plant trees whose shade they know they shall never sit in.//

I realize many sane people are quick to put down generation hitpieces. I can only say: be honest. Do you really believe people are responsible for their actions or not? If no, then you have no rational grounds from which to complain that I write this. If yes, then show me I'm wrong in how I've pointed my finger.

I see why I have duties to the generations after me (that's fundamental golden rule work behind the Veil of Ignorance). I'm quite unclear about why I have duties to the generations before me. It's a world of their creation. Of course, you can claim, "Not all baby-boomers." And, to that I say, I'll forgive the leftist Boomers and to a lesser extent the disenfranchised. Sanders may be wrong, but he is wrong for the right reasons. They at least tried, and they didn't give up. But, why should I forgive the rest? Isn't it obvious they have fucked us?

I think Boomers are the most psychopathic generation we've ever seen.<<ref "1">> Their personalities, values, beliefs, and behaviors demonstrate a clear distortion into the dark triad spectrum. Their hypocrisy is legendary. I'm pissed off at them, and I have been for years. I've seen plenty of Millenial hate, and I took it very seriously.<<ref "2">> Now the tables turn. Be prepared to be judged, assholes. I am entitled, and rationally so! I am convinced that Boomers have attempted to enslave and exploit the world and future generations.<<ref "3">> Why should I empathize with those psychopaths?

Baby-Boomers:

* pulled up the ladder behind them.
* are usurers, pimps, and loan-sharks.
* seek order at the expense of justice.
* destroyed the environment and do not seek to curb it.
* openly enabled capitalists to rape us.
* gave our freedom away, support and uphold the Establishment. deregulated the market and financial industries, and centralized power in the hands of the Hyperclass.
* deconstructed The New Deal.
* are war-mongers (I've lost track at this point).
* systematically choose to be misinformed and ignorant.
* did not earn their wealth, but act like they did.
* allowed our infrastructure to fall apart or become privatized.
* lived in a bubble and do not empathize with future generations.
* blindly believe that if they are happier then everyone else will be happier, as if the point of justice is to make them happy.
* heavily engage in Rent-Seeking behavior, especially towards later generations.
* are the primary actors/causes of our national, medical, and educational debts.
* either have no concept of real unemployment, buying power, upward mobility, the nature of the standards of living over the course of human history, and worker rights, or they don't care.
* are hugely responsible for why suicide rates, depression, and mental illness have been on the rise.
* are completely responsible for the lack of medical care available to everyone in the US. The number of deaths and amount of suffering on their hands is mind-boggling.
* are conservatives. Please, burn in hell.
* are the most racist, sexist, discriminatory generation alive.
* generated and maintained safety-nets only for themselves while simultaneously off-loading the risk and debt to younger generations.
* aggressively sought to enslave us through food addictions, advertisements, IP-regimes, and censorship.
* do not pay their fair share, and completely fail the "to whom much is given, much is required" test.
* complain about the generation they raised.
* are the first to bemoan the loss of family values while having the highest rates of divorce of any generation ever (among many other "family values" and dysfunctional family sins).


Oh, they aren't solely responsible for these problems, and they aren't the only people who believe and behave in these ways. They are still thoroughly and profoundly guilty though.

The fact is that generations tend to prey upon weaker, younger, powerless generations. Baby-boomers did not fight that urge, and it shows. 

I have no idea how the grandchildren of Millenials will feel about their predecessors. But, I'm not even convinced we will survive to have grandchildren at this point. Even if we did, even if we could fix these problems in time, I doubt my age-peers will do anything. 

The iniquitous consequences of the sins of the father lasts for generations. I'm done making excuses for you. I'm fed up with your abuse and gaslighting. I'm ready to fight back. So, officially, to most baby-boomers: suck my dick and please KYS.<<ref "4">> The world would be better without you.



-----------------------

<<footnotes "1" "I'm far from convinced that lead exposure explains why the Baby-Boomer generation is what it is.">>

<<footnotes "2" "Some of it is accurate, some of it made me realize the Pots were calling the Kettles black, and some of it was gaslighting.">>

<<footnotes "3" "Although, let's be clear, there is plenty of blame to go around. I really do hate most people.">>

<<footnotes "4" "The good news is that without healthcare or any savings (because, why plan for the future: you're a psychopath towards yourself too!), Boomers are going to start dropping like flies. Rejoice!">>
When Trump won the election, he spent an enormous amount of time and energy vetting and interviewing people for his administration. He clearly cares about who he works with, who works under him, and making sure that the executive branch falls in line under him (which, in a sense, is fine). His choices have been atrocious, as expected. What seems surprising to many people is the number of vacant positions that Trump has not filled. There is a standard administrative body we see in the executive branch (which has been expanding in power term after term). Trump is breaking from the tradition, as I pointed out: [[2017.01.31 -- Open Shadow Government]]

Trump is following Bannon's advice in deconstructing the executive branch's administrative and internal political structures. This means less transparency and a greater degree of centralization of power in the hands of fewer people. But, this is also an absurd application of "minimalist" state Libertarianism where it obviously doesn't belong. Let us be clear, this is not cleaning beuracratic house. This is artificial truncation, and it allows him to sabotage significant governing requirements he does not favor. Without the political structures in place, no one will do the work. It's actually kind of mad genius. It is a deep freeze on select executive functions of the government. 

Trump is dismantling oversight and functionality he deems unnecessary while centralizing the power he cares about in the hands of capitalists and alt-right advisers. The goal is to destroy the people's state (whatever appearance of it was left, at any rate) while putting his cabal of friends in charge to enslave and exploit the world as much as they possibly can. 

It feels like fascism and fleecing.
I woke up late because I forgot to set my alarm clock for daylight savings time yesterday. That's okay. Nobody was required to come to class today. In fact, I was the only student to show up to the entire school today. I didn't get much done, admittedly.

My teacher wasn't there when I arrived, so I couldn't get in the tool room. I raided the welding shop for some rods, and I found some very thick hot burning rods (gaaaaaayyyyy, um...yum?). Anyways, none of my welds looked good with it. There was a ton of spatter. I tried many different heat settings. I think I just got lucky with the rods I've been using. There is clearly much to learn. 

I didn't cut my ring correctly, so that project died. Ha. 

I decided not to weld my extremely thick flat plates because they took so long to bevel. I wanted to practice my roots on thinner plates first. This was a good call. I beveled plates quickly, and I tacked the plates too close together (I did the same thing as last time). My teacher took me to the millwright shop to grab the thick wire we needed to get the appropriate distance. I cut the tacks and got the right width. I welded these plates together. I went too slowly, letting it build up far too much (no need for filler, it was that bad). My root was...not worse than last time, but not acceptable. I didn't penetrate the edges on the bottom well enough, and it wasn't very even. This is definitely a practice problem. Most importantly, I was slightly off on my angle and not nearly deep enough. I will have a better angle, be absolutely at the root, and move more quickly. My teacher told me to try different passing styles too. I was going back and forth on the keyhole. Next time, I will try circles.

Also, my teacher told me a way to practice at home. I can use a vice grip and a pencil, and I can draw the lightest most consistent circular (or otherwise) patterns possible like that. I will practice at home. 

I didn't want to waste my plates and continue going through new ones. I asked how we could reuse what I had. We couldn't cut them with saws since they are quite long. So, my teacher taught me to cut them with the torch!

So, I learned how to use the acetylene cutting torch today. It was awesome. I just want to write down the procedure here to make sure I don't forget. I may not get much practice with it, so I want a mental checklist. 

* Have the material to be cut clamped and in a safe position. I put aluminum plate on the ground as well. Having someone to catch the piece your cutting is also damn useful. Be safe!
* Move it into a safe position.
* Make sure there is no oil anywhere on the lines, gauges, connectors, etc. Never use teflon tape either. It will explode.
* Make sure the headpiece is cleaned. 
* The right gauge shows total tank pressure (how much is in the tank), while the left gauge shows the pressure in the hose.
* Stay away from the pressure release valve handles while turning the gases on.
* Turn the oxygen all the way on. It should go to around 40 pounds. 
* Turn the acetylene on with a quarter turn (make it easy to turn off) to around 8-10 pounds. Never go to 15 or more, that is dangerous.
* Put your shaded glasses on. I want to wear a face shield for it too. That shit flies and it's crazy hot.
* Have your igniter ready and torch in hand. Turn the oxygen knob (at the bottom of the torch, the upside) and light it. 
* Set the oxygen correctly by turn it up until the flame has a small half centimer disconnect from the head, then turn it down until it connects (maybe a hair past it). 
* Turn the acetylene on, and keep it going up until the blue moves all the way to the head. Then pull the trigger and make sure there is still no more blue. Keep turning it up until the blue hits the head while the trigger is on.
* Make sure you are comfortable (an armwrest is nice, use a stand or block of wood).
* WIthout the trigger, get to your starting edge and get it cherry red hot. 
* Pull the trigger, keep about a centimeterish distance and move at a good speed.
* You can pull off and restart, but restart at a place where it doesn't matter.
* Be careful about slag. The goal is to cut while minimizing slag. Going to fast or too slow allows for slag buildup, if I understand correctly.

When you are done:

* Turn off oxygen, then acetylene on the torch. 
* Turn off oxygen and acetylene on the container valves.
* Empty the oxygen in the lines with the trigger.
* Empty the acetylene in the lines with the torch knobs (and close it back again).

Having a cutting torch to use will be useful. I'm going to cut my next ring with it. 

My teacher and I shot the shit for a while. I heard there may be a 20 year job coming to Knoxville that our union might be getting. That would be sweet. In any case, despite the fact that there are long term reasons to want to go to Chattanooga, I would much rather live in KY with the rest of my family anyways. My teacher said that either way is great. He thinks it would be really hard to turn down coming in as a 2nd or 3rd year apprentice before I even finished this program, since that is simply unheard of. It would be sick money, and we desperately need it. We are taking a huge risk, and I want to mitigate that as much as possible. 

My teacher says he doesn't blame me one bit for turning down the Eastman job. He thinks it was the right move.

I won't be going to Chattanooga tomorrow. I want my shop time. I can go Thursday. I really do need to visit though. Chattanooga is probably plan B at this point, but I need to make sure I have that plan B.
I actually became discouraged. My roots are really bad. I'm having a hard time figuring out the appropriate heat (amperage), distance between flat plats, the bevel, how far to keep the stick down, the motion, the look of the keyhole, etc. I'm having a hard time getting the penetration around the edges I'm looking for. It's okay though. I'll get there.

Since it was just me, and the teacher didn't want to be there, he sent me home early, again. 
We know we have identities and consciousness. We are conscious of being agents, but we aren't actually agents outside of compatibilism. We are compatibilist agents. We just don't know how they work. 
* The higher your IQ, the less likely you are to reproduce. 
* The more affluent you are, the less likely you are to reproduce.
* The less religious you are, the less likely you are to reproduce.

This is not an accident, and this has profound consequences. 

Smart people are far less likely to have kids than dumb ones. The memes that dumb people believe are more like to be passed down through generations of children, while the memes that smart people believe are more likely to be passed down through schools, books, etc.
There are fairly high rates of pornography use among all genders. This makes sense, since virtually all of us like to have sex, think about sex, watch sex, etc. to varying degrees. The differences between consumers of prostitution and consumers of pornography tell us something important though. 

As a preface, of course, I'm not here to blame the victim. Many prostitutes don't have a choice in the matter. Many are literally forced into it. Others are enslaved more indirectly. And, of course, some see it as the best means to happiness. It's a broad spectrum. Further, there are deep problems of psychopathy, abuse, use, and treating as mere means in most directions in the world of prostitution.

It seems perfectly obvious to me that moral prostitution is at least conceptually possible. Utilitarianism knows this. Moral prostitution is not just a theoretical possibility. In fact, I think it happens all the time. Without a doubt, there are cases of prostitution which we all accept as if it is perfectly normal, we simply call these practices by other names (we don't even think of them as prostitution). Again, this isn't advocating prostitution; description but not prescription.

What is prostitution? The selling or trade of sex.

Here's a fact:

* Men are overwhelmingly more willing to pay for sex in more contexts, instances, and cases than women. 
* Male-to-female transgenders are by far more common than female-to-male.

Being wanted for sex matters. It's much easier to accomplish as a female. There is clearly a sexual marketplace, and men tend to be the buyers. There is a deep selfishness embedded in the sexual game. We see it in every species.
I drove 3.5 hours to Chattanooga. I had to wander since it was locked down. They even thought I was an intruder. They have actual security for that building. I take that to be a very odd sign. In any case, as soon as I got in and asked for an application, they told me I'd need my highschool transcript. I said I didn't have my transcripts with me. They said I couldn't apply without them. This is weird, and it is part of the corporate policy mixed with government regulations. Normally, application procedures which require transcripts give you time and even allow you to space out the application process into chunks.

They said I couldn't take the application home and that I couldn't fill it out. I tried calling my wife and schools I've attended. None could help me in the time period I had. I was annoyed since I had traveled a long distance and brought what I thought necessary. Clearly, they do not have their heads on straight enough to explain the requirements (Keaton also showed up randomly after I did and also didn't bring what he needed). This is a bad sign.

I talked to Jeff, the training coordinator. He gives me the psychopathic heebie-jeebies. He's almost proud of it. He has the idealogical traits and behavioral markers for it. It felt slimy (and this isn't just my jaded unhappiness over the application, but even when I heard him speak the first time and met him back home). He talked with the board to see if they could change the policy for me, especially since I don't have high school transcripts. Apparently, they wouldn't take any transcripts from my decade of post-secondary education. It was high school or nothing. I had to convince Jeff, gently, that my education was at least at a high school level, lol. He then acted like he solved my problem, but didn't and tried to send me on my way. He doesn't sound like the kind of boss I want to work with, and the people are not good people (I met several [some of the second time]). 

That said, I was given a tour of the facility after requesting it (which was part of the reason I was there). The facility is amazing. Business in booming in that area. Growth exists. I could make a living there. I could learn anything and everything in the trade. They have millions and millions of dollars of equipment there, including welding robots, to learn on. They might be terrible people, but I could strongly benefit from them. In contrast, the local union is more like drunk incompetence. I fear I wouldn't learn what I really need there.

Anyways, as I was leaving, I saw Keaton. We were surprised to see each other. If I do move down there, perhaps I'll room with Keaton (assuming he goes that direction as well). We're planning to come back down together on the 28th, I believe, for the tests I needed to take. Basically, little of what I told was going to happen when I arrived actually occurred, and not without my prodding.

In any case, I left, hit a gas station. Their pump didn't work, so I found another one. About 20 minutes onto I-75N I got a flat. Luckily, I noticed something was off immediately (you only have seconds) and started slowing down (my bucket'o'bolts is barely holding it together; I am truly blessed that my car has lasted as long as it has given the $1.8k we paid for it). Anyways, the tired broke oddly (disconcerting). I put the donut on the car, and I called my insurer for the nearest tire change service center. As I was driving there, they told me they had my tire in stock, but that a tornado had recently destroyed their shop. My directions were wrong. So, they guided my over the phone to their location. I got there, they took my car, and then they discovered they didn't have my tire. They kindly made 2 phone calls, but no one had my tire size. So, they said my best chance was to try Wal-mart. So, I went to Wal-mart. 

Wal-mart took forever at every stage. They said they had the tire, but it took 20 minutes of searching. Eventually, I joined in searching with them. It then took 2.5 hours for them to change the tired (I was 3rd in the queue). It was very late when I got home. It was not the best of days. I will not give up though. 
* How has our health been this week?
** 1uxb0x
*** Good, except for today, headache.
** j3d1h
*** Allergies or humidity causing sniffles while outside. Not a problem indoors though.
** k0sh3k
*** Lots of migraines this week. Period though. Trying out folate + B12 for MTHFR (plausible genetic explanation for lifelong problems). Feels she's had memory problems this week.
** h0p3
*** Like j3d1h, I've been sneezing a lot. My belly hasn't been feeling great. 

* What happened last week? Have you been happy this past week? Why or why not?
** 1uxb0x
*** Pleased with progress in school journal, but still worried that he didn't do well enough (not worried now though). Felt helpful this week. He was productive. Definitely happy this week, except that one day where he didn't any of his work.
** j3d1h
*** Stressed about finishing homework on Saturday. Otherwise, feeling happy about the week. Happy to finish her Spanish book. Excited to try Duolingo.
** k0sh3k
*** Have been happy. Her lesson turned out better than she thought it would. Student lunch went well, and we got lots of leftovers. Hopefuly about the folate+b12.  Has felt her week has been off, but doesn't know what it is. Still happy though.
** h0p3
*** Practiced welding even though I didn't have to. Glad to have the chance. I tried to apply for the union position, and I got to see how excellent their facility really is (even if the people suck). I talked to a lot of friends and family this week on the phone. I've been relatively happy, although I've been unhappy with the car. I'm ready to begin having my normalized schedule again.

* In what ways did we successfully empathize or fail to empathize with ourselves and others this week? 
** 1uxb0x
*** He played a lot. Sometimes this was empathizing, but often it was not empathizing with himself. Empathized with himself by doing his chores fairly quickly. 
** j3d1h
*** Ditto on the chores. j3d1h shared her treats from Israel with her family. 
** k0sh3k
*** Didn't fire her student workers, which is pretty good (they merited it this week). Happy fun times with her husband! (woot!) Ate too much BBQ, but it is the mini-Easter of Lent. 
** h0p3
*** Empathized with myself by working instead of taking a break for Spring Break. Empathized with 1uxb0x by cutting Problem solving and thinking about how best to give him a practical lifeskill, and decided j3d1h will continue her writing (and cultivating her abilities as a computer scientist).

* What will we do this week?
** 1uxb0x
*** Try hard. Play on the computer. 
** j3d1h
*** Make the remote server, including getting a VPS and domain name. Finish homework everyday.
** k0sh3k
*** Finish one of her classes. Work on another one. Finish editing her paper. Lesson plan too.
** h0p3
*** Will learn to be a pipefitter, once and for all! I would like to take the car in and have it inspected/aligned/etc.
Both children struggled to finish their journals, again. But, it is getting better. Progress is progress. 

j3d1h is doing a good job; she kicks it out. She's beginning to see the value of her journal more and more. My worry is that she thinks she understands what she doesn't in her reading. She has collegiate literature, philosophy, and programming. Her math is geared for mathematicians, and in our investigations, she only has the a beginners understanding of what she has read. This is perfectly normal. I just want to make sure that we push far into new frontiers for her, but come back and gain an even deeper understanding on the second (and beyond) pass of content she has only been introduced to.

I'm explicitly gearing her formal curriculum toward philosophy and computer science now. Those are the two things I can give her.

1uxb0x is still struggling to stay on task. This week was better though. Most days were completed. He had one day where he got in serious trouble. His journal is slowly improving. Getting him to express himself is very difficult. It's just time and practice. We will get there. At least he now will tell us about what he's learned and will attempt to digest it in his journal. Time, pressure, and encouragement. I need to say every positive thing I can to him. He often feels inferior, and I need to encourage him, to help him climb out of that attitude. 

I believe he should work with his hands. I could be wrong, but I'm going to try and see what I can do to help him begin building things with hands. It's crucial that he starts building a practical skill. I need him to have options and gateways to pass through. He has to believe in himself.

I'm leaning more heavily towards the local union at this point. That said, I talked to Keaton. He's willing to be roommates, assuming that's the direction we're both heading. I guess next week Tuesday would be the last day. I'll need to call up the sociopath to make sure everything is set as well.<<ref "1">>

 I called the Louisville fitters union. They aren't taking applications until September, and they won't actually begin the program until August of next year. It would technically be possible for me to hit Journeyman with a year or two of that. The pay is about the same adjusted for the cost of living. I'll apply when I can. It wouldn't hurt.

Anyways, getting up was harder than usual this morning, but once I stepped back into the shop, I felt right at home. I'm very glad I got to go today. In fact, I was straight up giddy to get my hands dirty again. 

The teacher asked us to make sure the pieces we've made are as safe for handling as possible. Apparently, he really is going to use them again for some demonstration/fair thing. I thought it was just for the union visitors.

We finished the Y in no time, then we moved onto studying for our usual Monday test. We're crushing it. Chris was borderline confrontational/accusatory with the teacher about being held back at Nash's pace (that was not my doing...Chris clearly has seen what I've seen though). Nash didn't show up today.

We took the test. I assume we passed. I've yet to not do well on a test.

We then started working on saddles. My teacher did an exceptionally poor job teaching us this time, but with enough questions we were able to extract the necessary information out of him (in addition to figuring some of it out on our own). The initial work was done within half an hour. But, it wasn't up to snuff. We worked on it for quite a while. Unfortunately, there is still the tiniest sliver of light coming through. The teacher expected it to be a perfect seal, apparently (which doesn't make perfect sense to me because this is supposed to be welded anyways). At the end of the day, I quietly asked the upperclassmen to look at it. Several said it was the best saddle they've ever seen and that it obviously should pass (their work was passed with far lower standards). I find it odd that it isn't passing yet. That's okay. I'll keep working on it. Practice makes perfect. I realize this will get harder, and I might as well understand and practice as much as I can.

Chris was annoyed by a remark the teacher made, a "nono" we committed that we weren't told about. We beveled inside to make it fit even closer (although, it obviously weakens the walls, and I should have known better), just like the example he handed us. The teacher clearly should have said something about it on the example he gave us if he didn't want us to do the same. That's okay. It wasn't too complicated to fix. 

The teacher really doesn't spend time teaching. But, in a very weird way, I kinda' like it. I enjoy having to figure it out to some extent. I'm forced to make my own deductions, which I enjoy doing (at least when there is no pressure). I like being held in check on whether or not I actually know something, to know the boundaries and limits of where my knowledge and reason can take me, and most importantly, to know when it is time to ask for help. This is key. 

Also, I need to call/text AB&T for more forms. 

-------------------

<<footnotes "1" "I had a conversation with my father on his birthday about it. I never know what to say my dad anymore (and he would tell you the same thing from his direction as well). I couldn't articulate why I thought the man was a sociopath to my father (although, my father clearly has that switch inside him as well; he just uses it more wisely than most sociopaths). The training coordinator is an ex-football player, evangelical Christian, who studies psychological tricks to manipulate people (he's sadly proud of it; definitely dark triadic), demonstrates that clearly in his communications with me, his secretary, and his board members, is slick as fuck (knows how to make himself likeable, despite lacking empathy), and is apparently famous for a lack of impulse control. He has no problem lying. The markers and signs are there. I'm tellin' ya, the guy gives me the heebie-jeebies.">>
He passed the saddle early this morning, said it was great (we didn't change it from yesterday though). We started working on a larger saddle. We smashed that. We then started 45 degree laterals (he had a meeting to goto, so he left us to it). We did a good job, or so we thought (but again, the same yesterday). We even moved onto a 4-on-4 (which is apparently much harder), and he said it was great. He wanted us to continue to tweak it. We did. I also had time to get some welding done. That was nice.
Today was really effed up. My head is spinning: Gorsuch, Manafort, Nunes, and Schiff. The day keeps on giving. Let's be clear, a huge fucking net neutrality vote is tomorrow (my pet, my love, my savior), and that is like the last thing on my mind right now. ~McCain called for a select committee to investigate the Trump-Russia relationship. It's like watching Watergate unfold. It's a kind of political blitzkrieg and chaos that I don't think I've ever seen the likes of in my lifetime (and I was forced to witness the 9/11 hysteria around me as a teenager).

The checks and balances that do exist are barely there, not very trustworthy, largely RNC controlled, and completely bought by crony capitalists (I'd like to extend my weekly "fuck you" to the DNC here as well). We the American people are simply observers and slaves to this theater. Obviously, there are monsters bubbling beneath the surface. It's a spectacle at this point.<<ref "1">>

Perhaps the Impeachment Dagger is being unsheathed. We must watch the RNC closely. They may be forced to amputate. It is unclear. What good comes from nurturing this? It's crazy messy. If it passes by, they will truly be gods of men; hypernormalized deities. Assuming they are unsheathing the dagger, how hard will the RNC backstab? It sounds weird to say, but Trump may literally be charged with treason, depending on the evidence. It is possible he could go straight to prison after having collected millions.

Ah, I am dreaming. I need to stop. I must not allow myself to be beguiled. The RNC will squeeze every ounce of political utility from their sacrificial lamb. There are trades here I cannot see.

I'll tell you this, I have no fucking clue what dirt Mother Russia has on Trump, but it must be insane. It is possible they've been cultivating him for years. The coercive force they wield over him must be immense.

Assuming impeachment, do we move straight into Pence or do we get to redo the election?  I figure that the RNC really gets to call the shots here. I'm guessing Pence. 

I have one other quite conspiratorial (yet entirely unoriginal, I'm sure) thought. Assume a very huge impeachment debacle. Let's say we don't get to have an election, and let's say Pence gets taken down with Trump. That leaves Paul Ryan as next in the line of succession. Ol' Paul "Randian" Ryan, folks. Full Blown Capitalist, to the max. Ayn Rand is the new Locke of actualized/practiced American political philosophy, but not nearly as fun or correct. Thank the Libertarians for this mess. Note that Ryan was one of the reasons Trump was ever even partially accepted by the GOP. Thus, my claim is that there is a non-trivial chance that Paul Ryan will be POTUS, and that it may not be an accident.<<ref "2">>

But, I'm not counting my impeachment chickens just yet. This is all unprecedented<<ref "3">>. What are we, 60 days into this presidency? Watergate took quite a while. 

---------

<<footnotes "1" "Pass the popcorn, please!">>

<<footnotes "2" "For the giggles, I'd like to point out Rex Tillerson is fourth in the line of succession.">>

<<footnotes "3" "A word which has remarkable similarities to unpre//si//dented.">>
Today was a great day. 

We got our study points for our next exam, and I got my AB&T form signed (and mailed). I've yet to text for more though. We put fake finishing touches on the work we did yesterday, and our teacher eventually told us to make a 4 on 6 Lateral and Saddle (he would check them after his meeting). We smashed through them. I did the saddle myself, which has cardinal direction symmetry to it, and my initial portaband saw cut was so clean that I not only made a super clean piece, but decided to fuck around by making the leftover piece into a saddle as well. He eventually graded it (I wasn't there to hand him the pieces), and he took the ;eftover crappy saddle (not my perfect one) as the piece to be judged (said it was good). I think he's purposely saying he doesn't like stuff to slow us down. The reason I think this: our good pieces aren't changing, and he gives us different appraisals even when there aren't differences. Anyways, I'm glad that even my trash piece was up to snuff.

My theory about why he's slowing us down:  if we finish all the content too early, it poses problems for him as a teacher. We're completing everything the upperclassmen have done and then some, and we're still accelerating through the program. We're probably a month ahead in shopwork and about a month and half in bookwork. Assuming socket welds and butt welds are going to be easy (since I've become a reasonable beveler, and many screwpipe principles transfer), we may smash through the entire course in 8 months or less.

We moved onto the simulator. The simulator is different because we had to draw to fit. We were told to draw for the 1" pipe flanges (3 of them on the sim), get it approved, then do the measurements. I'm the only one who can draw it (Nash and Chris, hilariously, have previously had classes specifically on construction drawings, especially isometric...It's just not their thing, especially Nash). It was approved, and then our teacher showed us how he wanted to measure. My teacher felt that some of the things I wanted to measure on the drawing weren't worth measuring. I think he's wrong. The way he wanted to do stuff wasn't on paper. He wanted us to chalk mark the floor beneath the simulator. While we did this to some extent, it wasn't to the extent he was suggesting. 

He's against what he calls "stovepiping," which is just putting in a piece at a time and eyeballing (my teacher is obviously wise in this respect; planning is everything). Ironically, I fear that even his method has a kind of stovepiping element to it though. I strongly prefer having the drawing representation do most or all the work for me. I'm fine doing the math. I trust it more than doing it all by measurement. Don't get me wrong, I'll measure all day long. I want accurate initial measurements for key parts of the drawing, and then I want to do the math to figure out the rest. I'll still measure again after doing the math, if I can. Multiple verification for validity and coherence of your gameplan is crucial.

Obviously, I don't sound super confident. I've never done this before. My gut tells me my teacher doesn't exactly know what he's saying on this one though. He does not speak with the confidence I expect, and the way he attempts to solve certain kinds of geometry and measuring problems seem inefficient (and perhaps even less accurate) to me. But, not doing it his way may turn out poorly. I'm hoping it works. I think it should. We'll see.  It looks right to me. Execution details are another matter, but even that should be fine (I'm unspokenly in charge of what we do in our group). What we're building is structurally simple, it's just really big and unwieldy, and we can't really afford to be off even by perhaps more than an eighth of an inch anywhere. 

Anyways, we got all the pieces cut, taped, and I started building before we left. If we're really lucky, we could finish this by the end of next Friday. Once we do, we move straight to socket welds (which everyone is just itching to try). I'm happy to do the simulator though. I wanted to do something complex, but my group mates did not. So, I decided to help them instead. Given the requirements, I designed what I felt would be the easiest to design around. Given that we'll have to do three other fabrications to fit into place alongside the one we've designed, we should give ourselves room. So, trying to find the simplest, flexible, and easy way was also a kind of challenge I enjoyed.

I have a new nickname today. Apparently, I am magic. 

My teacher offered me (but not the others) the X-piece-90's and Y to take home. I find that weird, since Chris definitely helped make them (and even Nash, to a much lesser extent). 


In 2013, Rex Tillerson at Exxon Mobile brokered a deal with Russia to extract oil from large swathes of Russian land. This oil was pumped through Ukraine. Ukraine taxed this oil and was seeking to join NATO (not quite Russian-friendly). Putin's attack on the Ukraine in 2014 was to seize control of the port, eliminate taxation, and enrich himself (virtuous-of-the-practice kleptocrat that he is). Russia had been sanctioned. These handcuffs bottlenecked Putin's profits (I believe Putin has long been a dark money trillionaire). 

Fast-forward, and Rex Tillerson, recipient of the Russian Order of Friendship medal, is now our Secretary of State. Clearly, at least part of Trump's blackmail payment is installing Rex. Russian interference with our political processes and subversion of our pseudo-democratic election cycle has truly paid off for Putin. 

Assuming Trump even survives the political turmoil accumulation (and he might, he's straight fucking crazy and backed by many powerful interests; plus, he's made it this far), there is a reasonable chance that the sanctions made in the Obama era will be lifted. Putin stands to gain untold wealth; he continues to snowball hard. To be clear, the House approved a resolution killing SEC requirement for oil, gas, mining companies to disclose payments to foreign governments. Further, the US Treasury Dept announced it’s easing sanctions to allow companies to do transactions with Russia’s FSB. Lastly, Steele, the infamous Dossier's compiler, predicted this as well. The string of high-profile deaths in Russia are no accident.<<ref "2">>

As I've noted [[before|2017.03.12 -- Trump's Administrative Truncation]], the executive branch is being deconstructed. In its place, a handful of very successful psychopaths are taking even deeper control of it. The State Department has been purged, and Rex is going to own it from top to bottom. As Trump told us on the campaign trail, he would not be in charge of foreign or domestic affairs. He was telling the truth (as much as he could). Trump is the figurehead, the disposable scapegoat, the pawn and puppet. Rex, capitalist of capitalists, is in bed with Putin. 

The American government has always been bought by the elite. Putin is an incredibly evil and dangerous man, and he's only joining the throng-pit of struggling gladiator-kings in our deep state. Who can solve these problems? Only we can.<<ref "1">> No, but for real, Russophobia may lead many Americans to give away their freedom even further (like the Patriot Act). I will not accept this false compromise.

In any case, we are clearly in a Second Cold War, fought not only on the world's stage, but also by proxy, in darkness, guerrilla-style, on the internet, and through backchannels and subterfuge. 

-------------------

<<footnotes "1" "Rofl! I crack myself up.">>

<<footnotes "2" "For posterity's sake, I'd like to point out that in this edit that former Russian parliamentarian Denis Voronenkov, Putin critic of the annexation of Crimea, died a day after I wrote this post. This pattern is not an accident, and I can tell you, it's not God causing it (just human gods).">>
Today was excellent. I finished a second tree project. Afterwards, I wanted to try the torch again. I failed to get the torch to work today. Honestly, it was a bit scary the way it acted. The oxygen wasn't high enough because I couldn't get the flame to separate (and I couldn't seem to get it higher). I tried twice, and even Keaton couldn't get it to work. I'll get my teacher to help me the next time. The good news is that I'll just use our large bandsaw to cut carbon steel plates when I need to bevel for practicing laying roots.

Oh, I went for another flat weld today. I experimented this time, since I know I need to find my groove and a method that works for me. Of the 12 inches, I got about 3 inches of excellent root. The rest was trash to varying degrees. I need to make sure I'm not burning too hot. I know my low heat settings aren't the recommended settings, but everyone has to find their own way (there are serious variations among welder norms/practices, from what I understand). That's what I'm going to do. The root is getting there, but I need to practice more. I'm getting better with controlling keyholes. Spatter is marginally better. Going perpendicular and staying deep is helping. 

I asked my teacher if I could watch the advanced welding students and pick their brains (only after asking the welding teacher, ofc). He said yes. I asked the welding teacher, and he said yes. I asked him to recommend students to shadow, and he pointed out several who were graduating in a week. I walked up to one, and we hit it off. He was TIG welding (I've never done it, and I've never seen it before either). You should have seen his walking the cup method and the gorgeous fucking welds he made. I was straight up envious and blown away. These were sick welds, like straight up welder porn. 

His control was amazing, his root was perfect, and the bead looked like a robot-artist had done it. He took his time, and it was beautiful. I saw him drop a root on stainless schedule 10 pipe (he had different approaches for different kinds of pipe). After lunch, I saw him drop a cap on it. We talked about its shape (barely noticeable droop towards the bottom) and how he was working against gravity (apparently, he was worried about the [lightest possible] criticism I made, since he said the teacher would probably say the same about it). 

My hood, btw, doesn't trigger perfectly on TIG, although I wasn't very close (another advanced student commented that it happens if you aren't close enough). I need argon to practice TIG, and it isn't obvious that we have that available in the pipefitter shop. We have the machine. I'll ask my teacher. I would love to at least have tried it. Another student, Ferguson, is a handy guy, but he's not bright: he might be able to show me as well (although, I weld better than he does, I just don't know as much in general). 

After watching the TIG cap, I beveled pipe (looked decent enough), and I tried to stick weld it. Something was weird about this pipe though (I've never seen this kind before). I couldn't even get beads to start on the side. It was not a normal carbon steel pipe, and it wasn't stainless. I'm not sure what was up. I tried to different amps, and nothing worked unless I was blowing holes through it. I'll figure it out. I need to just read and look it up.

Chris was sitting there after lunch. He was tired of computer work (he thanked me again for my strategy, which has wildly accelerated him through the bullshit), and because the teacher knows he works hard, Chris gets cut extra slack (and doesn't have to stay in the computer room). The teacher asked him if he wanted to get to work on the simulator. Chris decided that's what he wanted to do. I joined him (since it's my project too). Chris has never put together larger projects like this before (and neither of us have used a simulator). It showed, but none of his mistakes were big or hard to correct. 

We fabricated very quickly (Chris is profoundly better at this than Nash. That said, Chris already has a 2-year associates with a class in screwpipe, so he should.). Chris understands the problems I'm thinking about almost immediately as I explain them (not the answers, but the problems); he's a pleasure to work with. He's not incredibly creative, but he has a good head on his shoulders. We didn't have access to the 2-hole inserts for the flanges, but my eye-balling on this is trained well enough now that it is fairly accurate (and we could adjust on the fly if we had to). 

We went to check and see if this 20 foot spider monster actually fit. It did. We couldn't find bolts that fit perfectly. Our teacher interrupted us and said he'd show us later, but that we had something else we needed to do. We were given our third project for the school itself today. We're building a clothes hangar (two) for the bookstore. We had to find pipe they'd like, cut it to length, and I had to cut carbon steel plates of certain size, grind off burrs, and punch-hole the midpoints for the drill press (I assume we'll weld these to the pipes and drill them into the wall). We'll drill tomorrow and mount it.

Our teacher showed us how to find the correct sized bolts in our bluebook. We didn't have any in the shop, but he had some which were close. We used those. Let me tell you, that shit gets heavy. I held it up (with a stand helping me) as Chris put the bolts in at the bottom (so he could slip the gasket inside and have it land on the bolts). Our teacher watched. He said our work was very good. This is the first time he's had students build it correctly on the first try. 

Apparently, there is a tightening strategy. You tighten about 25% of the way in star patterns around the flange. We also have a tool that helps us line the flanges together. I forget the name. It's the first time I've seen it. Apparently, there's a trick with this tool for holding pipe in place so that I don't have to bear the weight of it. Neat. 

I got a lot of shit done. I'm now going to study for the test tomorrow. I'm not ready for it.

I use to be pro-life, top to bottom, hardcore pacifism and all. Now that I have seen the value in taking my own life, in realizing how less precious life really is, in realizing that some lives aren't worth living, in realizing that death is sometimes a compassionate gift to so many human beings in so many contexts, I've lost my pro-life stance.

Once the Kantian Bubble is burst, it is up to the Utilitarian to pick up the pieces and find the more rational argument.

If shaping our genes is really about shaping the sum of human experiences, then what is eugenics really? Is eugenics really just modifying genes in a good way? What counts as a good way? The contents of that are probably spelled out in a utilitarian calculus or weighing model of human goods. Our happiness matters to eugenics. Good for whom?

Abortions are often or always eugenic, depending on how we think about it. Euthanasia seems highly eugenic to me in certain ways. It seems obvious that genetic manipulation is eugenic. We might even think that gene testing and genome sequencing are profound tools of eugenics. The person who doesn't have a baby because they predict a high chance of birth defects is engaging in eugenic, and so is the peron who aborts their down-syndrome fetus. The person who sterilizes anyone for any reason is doing a kind of eugenics. Those who don't have kids because they know they would be bad parents are practicing eugenics. That we pay people to get kicked in the balls in video productions like Jackass (and numerous Youtube copycats) is a form of eugenics. That we don't wish to destroy our own genes is eugenics (mmm... cancer is bad...mmmmkay). That we think we should reproduce is a form of eugenics (you probably think you're improving the gene pool don't you, idiot?). That we have married bloodlines, that we care about the status and genetics (even if only as it pertains to the memetics) of our children's spouses.

Ultimately, who is hurt? A ball of cells that doesn't have the nervous system necessary to feel pain like ours? Doesn't seem like it is really hurt. Now, as the fetus develop, it can feel pain. What if we ended its life without it feeling pain? What's wrong with that? It wasn't a person at all. It was still a lump of flesh and no more. Even those who are not even conceived miss out on opportunities. They are mere possibilities. They aren't persons though. We have no duties to them except insofar as they become persons.

Why shouldn't you trash the world? Because you owe duties to fetuses that will eventually grow enough to become persons. Does that mean you owe duties to all fetuses? No.
Had a flat tired last week. Something about the car has been off since it was replaced. It has been vibrating and getting worse. I took it into the Wal-Mart tire center here. They said they would look at it for free (since it was a Wal-Mart that fixed it a week ago). I got an oil change as well, since...might as well, right? Turns out the other front tire was about to go. They also recommended I get a new rim and control arm. I'm gonna check around to see if I can find a cheap one. I'm not sure if I can change it myself, but I probably should. I changed the front end on our old black Toyota before. I can probably figure this one out too (that said, if I get it wrong, it would be incredibly costly, possibly). 
Let's say the world doesn't end anytime soon. What can it look like? There may be many possibilities. Are there hopes for the masses amongst any of those possible worlds? How many and to what extent? When weighing the average risk-assessed utility over all the possible worlds, does this favor us wanting to live or not? Is there a reason for us, the masses, to live? Let us say there were good reasons. What would those be? How do we maximize the chances of having a world worth living in for the masses (Veil of Ignorance)? What are the means to our ends? I am convinced one of these means and perhaps necessary conditions for such a world will be //decentralizing information//. This is a form of decentralizing power; the old adage [[Knowledge is Power]] is fundamentally true in many crucial categories of cases in our general lives. 

Not all decentralized networks are good, of course; I spoke about this [[before|2017.02.28 -- Web Assembly: The Browser VM as Decentralized Cloud]]. Maximizing decentrality is key though. Partial decentralization still has the problems of relying upon central powers. I believe there is a chance that completely decentralized networks are a fundamental cryptoanarchic tool for both socialist and libertarian utopias. This is old news to many. And, of course, I'm not saying utopia is achievable. I'm talking about the most ideal practical utopia that is possible; the Leibnizian Best Possible World sense (which, logically, must be open to some very shitty worlds). I think there is a reasonable chance we could all be relatively happy people on the planet if everyone worked together right now to throw our yokes off. 

Decentralized networks of information are decentralized networks of power. 

# It is a crucial method for uniting [[The People]] of the world. 
# It is a fundamental necessary condition on the autonomy of the People in the future as well.

These two facts are deeply intertwined, obviously. 

I also think there is a chance that decentralized networks not controlled by major corporations will be able to live in the future. The dangers these networks pose to those in power is still not completely clear to the entire Hyperclass (but obviously to some of them). If they were to fully realize the threat posed by decentralized networks, they might kill them faster or require at least some degree of "accountability" centralization. Yes, it is possible for these to be squeezed out through legal systems and significant financial pressures. There are those who wish to destroy decentrality. Thus, we must preserve publicly owned, fully decentralized systems by commercializing it (the GNU model is excellent). Like standard VPN technology, we need full decentralization to be so key-turn easy and fundamental to the software ecosystem that it would be unfathomable to make it illegal.

Decentralized tools like Bittorrent got a bad wrap, yes, in the name of piracy. I also think there are significant federalist/centralists/capitalists in power that have desperately tried to stop decentralized technology (except for parallel computing) in a generalized way. I think there is an attack on the decentralized web coming from multiple directions. We have to make it necessary now to those in power before it becomes illegal. The hopes of the survival of revolution rest upon injecting decentrality into the very network architectures of the wealthy and powerful. Make it too painful for them to lose it, and we won't.

The only way for the People to maintain and grow their power will be through decentralized networks. If we close them out, people will be compartmentalized, completely owned and managed from surveillers and controllers. Those with the financial interests to have these powers will have them, and it isn't obvious that anything will stop them from trying to maximize their control. The free gateways to the Wild West are closing as the Walled Gardens continue to grow so large they shrink/tame every corner of the Wild West map. 

I will admit, there is a deep irony to the fact that this is now revolutionary. The oldschool hacker ethic has an increasingly smaller voice amongst those who shape the internet. 
Today was short, as expected. We finished the 1" simulator project off today. I had left the tools out (carefully) because I didn't want to wait for the toolroom to be unlocked to finish it (the teacher, at this point, trusts me to unlock and lock everything [but, he can't give me a key], and to get and use whatever I want). It looked clean (well, the very top flange wasn't perfect to my liking, but it didn't bother anyone else, so I let it go). Lots of "very goods" were handed out. All the warm fuzzies be unto us. 

If we were being honest with ourselves, while the flanges fit and the pipes were level, I saw that the longest pipe (about 10 feet long) had actually bent slightly after the complete mount. It wasn't blatant and in your face, but it was there definitely there. If our teacher was paying more attention, he definitely would have said something about it. That means we made a mistake. I'll have to measure it later to try and figure out what I did wrong.

We were going to put up the bookstore project up, but apparently, the governor "claimed" he would be here with some legislators. There was a big to-do in the large conference auditorium/room today, next to the bookstore. We didn't want to bother them. We'll finish it Monday.

Instead of moving onto taking our test (the three of us wanted to study for it), the teacher had us move onto the 1.5" section of the simulator. This time, they didn't even try to draw. We talked about what we wanted it to look like, and what we felt would be easiest to mount. Now that the 1" section is already mounted, it will be harder to fit the following sections. I was clever to give us space to do it. The 1" was on the outerside, and this 1.5" will be in the middle, and the 2" will be on the outside (towards the back). This will make it easy on us. As I said, it wasn't my ultimate vision, but trying to find the easiest and cleanest way to push the series of projects together is a different and still very interesting challenge. 

The teacher handed us a pre-made 3-1/16th" nipple. He said that he's never had to make nipples like this on the job, and his first time every producing them was in the shopclass itself. The 535 Ridgid threading machine has a nipple attachment (I've only used it once [this is sounding extraordinarily sexual, said the pipefitter]). He said it was a hint. I thought about what he meant by this, since it was not obvious how it was going to be a huge "hint" to us. I figured out what it was though (it was roughly the gameplan I already had), and it was mainly to deal with a tighter spot we were in at the top of simulator (but, I could have cut and threaded my way out of it even without a tiny nipple). 

Since he went through the trouble to give us this "hint," I felt it would hurt his feelings if I didn't use the nipple he gave us (his nipple was shorter than it needed to be, making construction harder and planning more elaborate). This meant that I didn't get to free hand the design. I needed to build around the nipple. That meant I had to add the takeouts to find the true length (kind of reverse engineer the process, and maybe that was his intent), and then find the rest of the TLs. It went smoothly enough. I'm paranoid about being off. A 1/16th there and another over there, etc. add up. The other guys did not take measuring seriously enough. I know they don't enjoy it, but I really don't want to waste my effort. 

I drew it, the teacher didn't complain about all the measurements I wanted this time. The guys realized I was right about it after pointing out how it helped us avoid some tedious work by hand (and give us more exact measurements). We measured. I'm still learning to do this well. I need more practice at it. This is all very good experience. 

We did the math, and I'm glad I had Chris check it. I did the wrong takeout for one of the pipes (I should be more careful, and I hope this is the last time that I choose to not double-check my own math before having someone else check it). We cut the pipes (I think my teacher was disappointed that we couldn't find more scrap to use in it, but this project is very long). I worked on the scrap parts I could use, and I had to readjust my threads which went too deep. I asked the guys if they were checking the threads. They said they hadn't. 

After I finished my pieces, I checked theirs (I check all the components because I don't trust anyone). They fucked up all of their pipes. I couldn't even get a full rotation on some of the threads (it should be between 3 and 4). Nash didn't think it was a big deal, but we have been down this road. It is heartbreaking to put in all that labor just to have it not work and need to redo it all. Chris immediately understood how the pipes were just going to be way too long (despite the fact that they cut all of their pipes 1/8" short -- why aren't they fucking measuring!?). 

So, I fixed the machine and showed them what I wanted. You can technically (although, I've never been told it is acceptable to do) rethread a threaded pipe a bit deeper (into the wall of the pipe deeper) and even a bit deeper into the length of the pipe if you need. The trick is to barely applying pressure to let the threads catch in the die. If you put pressure, you'll break threads (which sucks). Chris realized how it worked after I showed him and tested it. I'm glad he saw the reason in it. Nash didn't seem to give a shit =/. Chris sorted it while cataloged and organized our materials for Monday. 

We didn't take a test. We will on Monday. I want to study for it. I tried to explain to the guys that while the core book does have some boilerplate bullshit in it, I definitely want to deeply understand everything in our Pipefitter books. I take these books very seriously. I assume journeyman know this stuff inside and out.  At this point, I'd rather do one a week, since I don't want to merely pass tests: I want to understand the material. Plus, it doesn't help us to accelerate faster than our actual shop work. There are no time gains, and the bookwork and shopwork do not track each other content-wise. 

Oh, I forgot, I texted AB&T. I'll get my next set of forms on Thursday. As long as school is paid for, I won't have problems, right? ;P

Also, I turned down a 1-week construction job (they weren't paying very well). I couldn't pass the drug test if I had to (unless they just let cannabliss fly). 

I stopped by the local union. He gave me some books to read. I learned about the size of our jurisdiction and that we in fact act as traveling union members to other unions around the country. Also, Knoxville's job will be huge. There is a chance I could work there, which would be sweet. He guaranteed me a spot again today. I think I was tiring his patience with all my questions. We talked about my concern that I wouldn't be able to receive the same amount of training here as I would in Chattanooga. The new facility they are building (forced by the UA) is designed to alleviate that exact worry. They are hunting for a building now (when I walked in, he was on the phone talking about it with his bosses).

He told me what MIG was for, which is, as I suspected, to just push tons of weld material really quickly. If it doesn't have to be pretty, perfect, and completely clean, MIG is the real deal. What could take 4 hours of painstaking work could be handled by some the MIG-like machines in an hour. He said he doesn't own his own welding tools. Whatever he needs he uses at in the giant union shop. I think that's interesting. He hinted that owning your own machine would be useful for oddjobs and working outside the union though.
* How has our health been this week?
** 1uxb0x
*** Normal. Felt a bit sick on day this week, but taking a nap fixed it.
** j3d1h
*** Same as ever. 
** k0sh3k
*** Headaches for the past couple days, but have felt more energetic. Folate/B12 might be working. It would have "kicked in" this week. Might be placebo; we don't know yet. Stomach hurt all day yesterday. No idea what it was.
** h0p3
*** I'm feeling fatter this week. I slept well enough. My gut has had serious pain towards the very bottom a couple times. 

* What happened last week? Have you been happy this past week? Why or why not?
** 1uxb0x
*** Not happy for two reasons. 
**** Didn't make my parents proud. (*He needs to work on himself because he values himself)
**** Friend of his went on spring break, and he was planning to play with them, but they traveled.
** j3d1h
*** Feeling crappy because she didn't do her journal. She also didn't have backups for the journal she messed up, and she has to redo it. Not feeling happy about it.
** k0sh3k
*** Finished editing her part of the paper. Terrified that her co-worker won't get it done. Car died, and couldn't go to church (sadface). Generally happy though.
** h0p3
*** I accomplished a lot this week. I learned and practiced much. I figured out that I really want to stay at the local union here. I'm sad that I haven't helped my kids stay on task well enough this week.

* In what ways did we successfully empathize or fail to empathize with ourselves and others this week? 
** 1uxb0x
*** Not doing journal; failing to empathize with himself and his parents. Not having saved his work.
** j3d1h
*** Not doing journal; failing to empathize with himself and his parents. Not having backups.
** k0sh3k
*** Editing, did it. Empathized with herself. Didn't freak out when her co-worker said she hasn't done anything. Gave her some tips.
** h0p3
*** I got the car vibration fixed. 

* What will we do this week?
** 1uxb0x
*** Devote more to nature.
** j3d1h
*** Get her journal done, top priority
** k0sh3k
*** Turn in her paper. 
*** Plan for edible books festival
*** Tiddlywiki, everyday. 10 minutes. 
** h0p3
*** Finish fixing the car.
The battery died. Something's definitely up with our car's circuits. I have no idea what it is. k0sh3k missed church (sucks, since she spent a lot of time preparing her lesson). Luckily, I had bought the battery, in case we needed it. I learned how to replace the battery in this car. We took back the non-working charger and I picked up a dumber one (I hope). I really just need it to trust me when I say I've connected it to the terminals on the battery. I can't reprogram these specialized devices though. I want it to be as analogue as possible because it gives me the most freedom possible. 

We also setup sites for the whole family.
The bookstore said to hold off on the rack. Apparently, the director wanted something that curved, and another person didn't want us to drill in the brick. So, that is on hold, perhaps indefinitely. That's okay though. I had a good time getting it ready.

We took our test. I got an 88 =/, yuck. I knew what I did wrong though. The curriculum is actually pass/fail. Still, I would like to ace it. I have 4 more tests left in my second book, and 9 more in the third book. This can be done in around 7-13 weeks, and I'll still be crushing it. The other guys want to push even faster in these books (Chris does as well as I do, but Nash is barely passing these tests), and I just don't think it is necessary or wise. I want to keep up though. I think I can study on our April break to prepare to take a bunch of exams when we get back. Technically, I have ~34ish weeks of class left (I don't anticipate being in class that long, obviously). I don't see a reason to push faster than I want to though, since there is no way that I can finish before July-ish anyways, and even then, I technically still have to show up to class (or co-op).

Also, I should push hard. Even if I'm done with the content of the course, I can at least continue working on welding and possibly Millwright. They'd let me, I think.

I'm putting the cart before the horse though. Speaking of rocking it, and yet failing pretty hard today (but not giving up, ofc! ;P): I also did poorly on my second simulator piece today (relatively poorly). We put it together (we being Chris and I; Nash did about jackshit today, as usual), and dragged it over to the simulator to mount. We very quickly found out we had the height on the top leg wrong. I immediately knew what we did wrong. It took me a couple minutes to convince the other guys what we did wrong. We forgot to subtract from our initial measurements (we had obviously planned to do it, and we took the measurements for that purpose; we just didn't follow through on a single piece of subtraction [I feel like an idiot, to say the least {ofc, we all make mistakes!}.]). We took the top leg off, and I quickly cut and threaded it to the right size.

We put it back together and tried to mount it again. We were off, again. This time, I have no idea why we were off. We decided to cheat: to stovepipe it (however minorly). We partially mounted it (heavy mother fucker, just holding it). Nash was here to "help," but clearly had no idea what the problem was. This kid can't actually do the work. Nash did not understand what he needed to measure. He finally figured out after we were holding this heavy monster trying to explain it. It was off by 1-9/16". This part did not make sense. Our math was right given the measurements we had. The construct itself also measured out to our schematic's specifications. The only other option was that our initial measurements were wrong. 

It is weird to be off by that much and not immediately have a good explanation. My theory, at this point, that we failed to measure from the correct points on the flanges. It's my responsibility to get it right. I'm going center to center from now on, and I'm going to be even slower in my graphing. Anyways, we chopped the toe off the leg, and I did the cutting and threading (since Nash was too lazy, and Chris is legitimately worried he would continue to cut too short [which is fair; my records of our job show he continues to cut too short]). We put it back together and mounted it. It fit. The teacher smiled as I explained what we thought went wrong. He said good job and to move on.

We then started the 2" simulator stage. We drew it up and took the measurements. Cool fact, given the position/direction of the 2" flanges, we didn't have to measure the distance from the flange to the simulator backbone. Between the flanges and the floor, we could get everything we needed. It is trickier now with the 1" and 1.5" simulator stages already mounted; they get in the way of accurate measurements. We did what we could, and then we did the math. Everyone agrees it should work (consensus and commitment: go teamwork!). We went center-center on everything this time. We were careful on our floor measurements. Next time, I'm just going to pinch the plumb-bob and measure it to the pinch mark. This was one has a valve built into it. The teacher told me to "wing it" on figuring out the valve takeouts (since he didn't know a better way). Lol. Alright. I can do that.

Tomorrow, we'll bang it out. You know, I think I'd like to double check my measurements for the schematic itself yet again. Couldn't hurt.

At the end of the day, my teacher asked me if I had seen Randy. I said, yes, and that Randy gave me some books to read. He "guessed" they were history books. I'm 90% sure that my teacher knew I had seen Randy (they talk), and had probably heard from Randy himself. 

Also, this is third time I've found Harold with my stuff. It was two pieces today: my tape measure and the two-holes that I "checked out" from Tim, on loan, basically. Multiple people have experienced this. I'm annoyed by the tape measure, but I was actually a bit pissed about the two-holes. To a small degree, that's my reputation on the line if they get fucked up. I told him not to touch my things without my permission, and that included the two-holes since I was responsible for their well-being (we'll see if he's assholish enough to retaliate). The teacher, apparently, already knew about it. He had been watching the table that took our things. He gave me permission to be more aggressive about it (but I won't; there's no value in it), and said the kid would have his fingers broken if he had done that in the field. Apparently, our teacher will be giving us a serious talk tomorrow about it.






Cat crapped in downstairs bathroom. The toilet overflowed in the upstairs. Water leaked down onto the kitchen counters. It's a mess to cleanup today. Lol.
We were given our new study guide questions. I'm trying another study method (since mine is obviously not good enough). Hopefully I get the kind of coverage I'm looking for. We were told to move onto the simulator (probably because the other guys weren't even trying to study). 

We measured again because I just wanted to make sure we didn't miss anything. We did the math twice. I'm glad we thought carefully about the valve, since we put true lengths on the graph (my preference, strongly), and thus we had to do what I will call "add-ons" instead of takeouts. This was a smart way to do it. After 15 minutes, I was satisfied by our measurements, drawing, and math. So, we moved onto construction. 

They went straight for threading, while I setup the work area, gathered the materials (we are consuming all the nuts/bolts and flanges the shop has available to us to build this simulator). I cut and threaded the tiny nipples because I wanted to guarantee they were correct. They did check the threads this time (thank god). 

After we had finished the fabrication, and right before we were about to mount it, I crossed the teacher in the storage area. He had a shit-eating grin on his face. He had a valve in each hand (I wondered if and when he would introduce these, since he had hinted he would). He claimed "the engineer changed his plans, and we needed to insert them into our previous projects." I laughed.

I found a clean way to make the insertion without having to remove everything. Ultimately, I didn't even need to loosen any secondary flanges. I screwed the leg off the spiders, made the cuts, inserted and leveled, and put it back on (I thought I made a mistake towards the end of the day, but realized I was on track: I was just tired). But, we didn't complete these steps until the end because I wanted to mount our current project before backtracking to add valves to the older ones. Since I knew we could do it, we did.

We mounted this third simulator project without a hitch. It went on very cleanly. Our teacher gave us a very unique hand-made tool that he says could not be bought anywhere. He earned it at Eastman. Says it is amazing. It was quite useful for aligning the flanges. He called it a bull's penis; it looked a bit like a shepherd's staff with the end of the crook straightened out and conical. It's like a cheater-bar for alignment and holding shit in place. The 90 degree angle on it is very interesting. I'm going to make one of these, I believe.

Anyways, we then did the work for the rest. I did the math. They checked it (well, Chris did), and we did it. At the end of the day, we were told that it would have been better for the bottom valve to have been facing up (wish he said that before we built around it). Luckily, I had thought he might have said something about how one of them was off. We cheated by taking two wrenches, one on each adjacent pipe and turned together to get it placed where we wanted it. I'll try to do the same tomorrow with the bottom valve; it only needs to turn 90 degrees.

The teacher called up the company that donated the materials for our simulator. He wants to build and install a second one next to the one we have. This would allow us to make far more complex objects. I think it's a good idea. We talked about where to place it. They e-mailed him back immediately to ask for a materials list. I'll compile it tomorrow. We may be building it soon. That's be cool.

My teacher told us that we'll be doing rolling-offset screwpipe for at least this week instead of moving onto socket welds because Chris hasn't done rolling-offsets in practice (although, he has done the math). I need to make sure that Chris aces this if we are going to move on. Nash is going to be as useless as ever, I'm sure, lol. 

Nash was saying at the end of the day that he was pissed we weren't getting out early. He feels entitled to maximum breaktime. Now, I totally understand that approach in a work environment in which people are legitimately trying to exploit you. You absolutely have to fight for every inch. Our class, however, isn't exploitation (or at least not in this respect). We're here for ourselves, and we move at our own pace. I take limited breaks because I want to keep working on myself. That's what I'm there to do. I'm sure I would have made the same mistakes (or worse) at his age though. I can't say much. I try to encourage him. That said, I'm sure he will turn into another conservative capitalist monster. =/ I can't help that he's evil though. 

Also, I need to finish the gifts I'm making for my parents'-in-law to thank them.

Over the years, I've come across a lot of novel obfuscation and DRM techniques. Some are more fun and interesting than others, but none are unbeatable. Yet. 

Reverse engineering is one of the fews ways we have to guarantee that intellectual property (IP) rights are merely legal barriers rather than technological and epistemic barriers. Essentially, without reverse engineering, a significant portion of IP would be trade secret protected to the Nth degree. Natural technical monopolies would arise more frequently, and they would be much harder to break. In the technical world, these monopolies would start breeding, clumping together, and devouring the rest of the ecosystem.

Without reverse engineering we'd have market distortions ripe for an even stronger degree of exploitation, enslavement, and fleecing than we already have. Therefore, I take reverse engineering to be part of the toolkit necessary to maintaining some degrees and kinds of freedom from the exploitation of capitalist pigs. 

Capitalists are fighting back, and hard. One obvious example is the centralization of computing into vertical data/computation silos. It's hard to reverse engineer that which you never have access to (or only have minor access to). You can only attempt to understand what they do from the outside and script your own (like ~WoW private servers, but on an epic scale). You probably don't have the hardware or the human capital for it either. Hint: you can't replace Google for internet search at this point. Nothing comes close (and it's been that way for a long time). 

We must maintain our ability to understand what IP owners are doing at a technical level. Without it, we are lost. It has already begun on multiple fronts. The sky is falling. The fight is not over though. We can still win. Here is an example of when we will begin to lose the ability to fight back and reverse engineer (assuming it is even possible):

//Black-box cryptographic obfuscation//

We may get to a point where cryptography will obfuscate programs so as to guarantee that we cannot possibly have a sufficient amount of computing power to reverse engineer it. This is a non-trivial problem actively being worked on in the field of cryptography. Such breakthroughs may exist (and may have already been found by state-actors). If it ever becomes viable, there will be software that we, the people who often only access the binary at best, cannot understand or dissect for ourselves by definition. 

Imagine running a full suite of software which isn't just a bunch of blackbox binary blobs to you, but are literally blackbox binary blobs to everyone (even the experts among experts). You literally cannot know what it is fully doing, and no one can. Without the ability to reverse engineer it, you have lost control of your machine in fundamental ways. 

This will be the beginning of extremely powerful malware. But, beyond malware, the software ecosystem will radically evolve because of it. Incentives and behaviors change when technical capacities do, especially when significant power imbalances arise. This is part of that two-edged sword of cryptography. 

The Crypto-Blackbox Walled Garden is coming. This is only one sufficient cause for the death or near death of reverse engineering, at least insofar as it benefits the masses. There are other surfaces to attack. Our power equalization tools are increasingly vulnerable and may eventually become obsolete.

The future of reverse engineering continues to look grimmer each passing decade. There will be a point of no return. Our masters are busy locking us out of the fleeting utopia they are creating just for themselves.

Ivanka Trump is delicious.<<ref "1">> Even Donald thinks so. She knows it, and it seems like she's experienced it as well. Her body language towards him bespeaks a deep divide in her. I am quite convinced that Donald has raped her (to various degrees) before (yo, intelligence agencies: are you reading this?). The abductive evidence is there; the inference is clear. 

Like all of Donald's children (just like himself), Ivanka Trump financially and politically benefits from being her father's daughter. Donald's sons are mere middlemen between Donald and his businesses (and methods for making money off our government and through transnational bribes). Ivanka's place, however, has been much less obvious to me. She clearly needs to benefit strongly to justify spending so much time with her rapist. 

She has an office in the Whitehouse. She has top security clearances. She doesn't get paid. She does a job though. Nobody has given it a title, not even Ivanka. This is hilariously ironic, considering how she once organized a campaign to encourage women to share their job titles. What is this job, which can't be called a job because it is even legally (not just morally) indefensible nepotism? 

Ivanka is her father's handler. 

He is a loose cannon, a demented idiot that flies off the handle bars, and a psychopath seriously lacking impulse control. She's his caretaker, manager, babysitter, and hand-holder. In a weird way, she might be acting First Lady. She can charm that snake (in so many ways) and tame that beast to some extent. To the best of her abilities, insofar as it aligns with her interests, she keeps The Donald on task, on topic, and defuses his insanity in meetings. She keeps The Donald centered, balanced, and as emotionally stable and calm as she can (ofc, only insofar as it pleases her). She is an anchor which loosely tethers him to reality.

Perhaps you are thinking: "Anything to try to reign him in, right?" Maybe she's the only person that can do it. I don't know.  It is unobvious how effective a puppeteer she is with her father. Thus, it is unclear how much direct power she has. More problematically, she isn't the only puppeteer. In a way though, she appears to be unchallenged, and that could be because even Donald's detractors and political enemies find him more bearable with Ivanka than without. 

I would like to caution against this line of reasoning though. Ivanka plays an absurdly significant role in our government, and she is not elected to do so. That alone makes her very dangerous. Her role is unchecked, with minimal transparency. The habit of relying upon her is forming. Her power may only grow. Perhaps she is being groomed. I wonder who she serves as a means to serving herself.

This is a very twisted version of The Aristocrats Joke.

-------------------------

<<footnotes "1" "If you are going to be evil, at least be hot. My brain can suffer though it better.">>

I fixed the valves (made them all pretty-ish). I also measured the simulator and drew up the materials list for another one. I went on to double check Chris' math; he made several errors (had to restart twice). We essentially built two rolling offset constructs today. I didn't push as hard (although, I still did the lion's share of the work). I had built them before, and I wanted to let Chris get more practice in. The teacher needed to see that Chris could do it on his own. Ultimately, however, when it came to measuring the degrees and lengths, I stepped in to get it done right. 

They both wanted to know if we would be moving onto socket welds after this. We should. I said I wasn't sure though. I know I went through several offset constructions that Chris and Nash haven't. One or two of them were fairly tricky. I didn't want to ruin the surprise for them, just in case our teacher slings it at them as well.

Funnily enough, the teacher did not perform the 90 degree rotation of the object to check both roll and rise. We had been down this road before though, and he knew he could not answer why it would be off. It's okay. After having mounted this stuff, I'm thinking it will be okay for now. There is some wiggle room. 

Afterwards, we studied for the exam. It was kind of a brief day. I learned very little, but I was happy to have the opportunity to practice and review. Hopefully it is crystallizing for me in my virtue-theoretic Fastmind.
Today was very good, although it had a weird moment.

TJ and I were waiting to see the coordinator from AB&T, Jo. Jo reminds me of the hairline lip of a number Bob's Burgers characters. She is very interesting. It not would not be just anyone who would help me. In any case, she brought me the forms I needed. Towards the end of our conversation, she asked me how I was doing in class. She was excited to use me as a case study as well (of switching gears radically). I said excellent. Talked about how I'm going with the union. We talked about the unions in general, and my goal to be a journeyman (I can only do so effectively through a union in my state). Somehow, my explanation of it to her made her quiet. I'm 99% sure she "realized" in that moment that I'm a crazy person. Lol. It's okay. She really does need to succeed, or I'd make her look bad. I'm convinced she will help me even if she knows I'm mentally atypical. Anyways, the conversation ended cordially, however, abruptly. 

TJ talked about how he was going into the union as well. I wouldn't mind working with him. Now, this man is also very interesting. Let me tell you. Been to prison a few times. Smart as a tack though for having so little education. He works hard. His life appears to be on an upward trajectory. TJ has family in the union. He has strong situational awareness.

I finished the heart. The heart just took some grinding. Since I've spent time working on stainless steel, I've developed a better spatial reasoning sense for how to sculpt. It's easier to imagine the relief I'm trying to generate. Becoming a good sculptor would take a lot of practice. Absurd amounts. The heart is for [R]. I have to thank her for taking the time to talk to me. It meant a lot. 

 I finished the chopped down log. This took more work. I had to cut it, torch it, bend it, make round plates, weld them to the tops, tack the pieces together, buff it and make my highlights. I cleaned it up. I made a final portaband cut, and then I made a mini-saw. I needed the welder's shop to help me make it. The mini-saw doesn't look great, but it works. The rest of it looks pretty cool though. 

I asked about TIG. The teacher said we had it, but that I needed to finish working on stick. That's completely reasonable. I am no where near where I need to be. I will eventually get to try it though, which is cool. I have one more set of crafts I want to finish, but I'll weave them into doing my actual training too. I want to become much better at welding. 

My teacher gave me my fourth construction job for the school. This one was simple. I made holes in concrete with a hammer drill. I then mounted warning signs about the hazards of welding without proper ventilation. I weld with the portable ventilator, except for tacks here and there.

I did weld at the very end of the day, like for real practice. I cut a long but thin plate (which is the right thing to practice on!), beveled it, and dropped a root. This was my best root yet on average. I do like the shelf, a lot. I need to try different shelf sizes. Full edge penetration wasn't there, but it was much closer. More importantly, it was extremely consistent. Now that I have something consisent, I can push it and pull my techniques and strategies, the way I practice, slowly adjusting it in the right directions. This is where I learn to really weld now.

Remember: stainless steel, thin, 60 amps, keep it deep and tight, straight up and down. 

Chris was unmotivated today. He finished two tests and called it. We'll see what he does with his Thursdays. He took a test today from the book as well, since he wasn't coming in tomorrow. I think he will likely end up just taking all Fridays off. He really feels like it is a waste of his time. In a way, he's right. We mostly take tests and clean up on Friday. By skipping Fridays, he does not miss out on shop time. Gary does the same by leaving at 2:00 every day. I will need to watch out for laziness. It will not always be obvious to me that laziness is the motivator when it is. 

The test tomorrow is apparently very difficult.
Today was short, but productive. I studied for the test. Took it. Made a 100. I was not expecting to do well considering how Chris didn't do well. I studied more than he did for this one, I think. 

Afterwards, I was told to go tack weld for Ferguson on his socket weld project (I've been dying to start socket welds for weeks). Ferguson is quite odd, definitely has aspergers (has the classic facial structure of it too, imho). His ability spatial reasoning is actually fairly impressive in some respects (he can mentally rotate the assembly fairly effectively, although he is not efficient about how often he must do it). We both fit the pieces, and I tacked.

As to tacking, I need to keep higher heat, 75ish on the carbon steel pipe. It's hard to strike the arc otherwise. The tacks looked decent enough (most of them looked better than what Ferguson and Harold had done [they've been at this for 3-4 months). I will be excellent at it with another day of practice (I had about an hour's worth today, but most of it wasn't even tacking). I will probably fling the red ember off the tip from now on. It does make it easier to strike the arc again. I'm used to burning whole rods, and I rarely have to restart. Constantly tacking requires efficiently making multiple uses of the same rod. Also, don't forget to strike horizontally, and keep yourself in a comfortable 2-handed position. Find out how to do that in all cases, positions, angles, etc.

I can see that socket weld will be fairly easy. Screwpipe concepts transfer very well. I found the takeouts part of my book for it. Cutting the pipe will be even simpler than screwpipe since we get to use the wonderful bandsaw. There seem to be two tricky parts to socket welds from what I can see. 

The first is making sure your pieces are in good shape (we recycle everything). There's so much leftover slag and weld stuck on the fittings (and pipe to a lesser extent). It is angle-grinder and even die-grinder central. Of course, this just boils down to being systematic in our gathering and preparation of materials (which I'm good at). I'll eventually have Nash do this part after I've mastered it, since it is clearly bitchwork. I've done the same on screwpipe. Since I have competitive advantage in everything compared to Nash, I should work on those tasks in which I have the highest degree of competitive advantage over him. It's the most efficient use of our time. The fact is that I perform the actual planning and fitting to a much greater degree than Nash when compared to our performances of menial labor tasks.

So, for our projects, one person will grab and prepare the fittings and flanges. Another will grab and cut pipe. The pipe can definitely make use of two people, even though it can be done by one. Eventually, we will all need to grind the last 1.5-2 inches of each end of each pipe (probably going to be a 2-person max kind of thing given our space). Label (although, this should be done at cutting time), double check, and start building. 

The second trick is making sure that everything is level. Here screwpipe concepts don't appear to transfer as well, and this is apparently where I will eventually learn to love socketwelds so much more than screwpipe. There's definitely a lot less heavy lifting work to be done, from what I can tell. For now, we would fit and level/plumb, tack once, check it/bend it, tack on the other side, check it/bend it (and sometimes rotate the assembly to do it again), then make the final tacks. If we fail, then we have to grind the tacks off and do it again. That's a waste of time. Being level is key. Putting the fittings on correctly is tough. You have to literally put the levels straight on the fittings. I do not get to rely so heavily upon having the secondary/tertiary pipes fitted to finalize my level as I do with screwpipe. I am told that buttwelds are even easier, and I can kind of see it (once someone is truly careful in their initially fitting), as there is so much wiggle room in socket welds. 

Also, I was told not to fit entirely into the back of the fitting, but leave an 1/8th of an inch space. I assume this is for heat expansion reasons and perhaps to give more options while fitting.

It will take some practice get the correct process flow down for it. I will streamline that sumbitch before too long though, I guarantee it.

Another noteworthy consideration: tacking requires having multiple people. Traditionally, the fitter "fits" the pipe and holds it while the welder tacks it. Since I'm going to be a craftsman, I will see if I can learn to do it by myself. That would be a truly useful thing to learn. I have read about alignment dogs and other tools which hold pipes in place, but we have none in the shop. It will be a place to be creative, experimental, and thoughtful.

My teacher brought me into his office before lunch. He told me that he's never had students like Chris and me before who smash through the computer and book tests  (and, from what I gather, he's never had anyone complete the shopwork at the pace we do, even though he has had actual pipefitter apprentices in his class before). It is conceivable that we will finish the 1st pipefitter book (the book after the core book) by the end of the first trimester. We are hot on the heels of the class before us. I anticipate catching up to them within a month or two. When we do catchup, I hope I won't be slowed down by them. I don't want to hold their hands and babysit. I'm going to grab Chris and make sure he is my permanent partner in this class. Your partners matter a ton. I expect this is true almost everywhere and nearly always. 

Anyways, so in his office, he told me that since we're moving so quickly through the course, he's decided to offer an "elective" portion of the course. Essentially, he wants to give us the option to do the 3rd NCCER pipefitter book (these are fairly expensive, and the school will pay for it). I think this is a great idea, and I told him so. I believe I will very quickly master the two forms of fitting I've yet to learn, and even with side projects and additional tools to learn, I will have more time on my hands than I know what to do with. The 3rd NCCER book and welding should keep me busy.

Honestly, it would be sick if I could finish the entire NCCER pipefitter's certification in less than a year. That's probably dreaming though. I'll do what I can, eh? I think I need to ask for the study points in advance of our time off in April. I want to cover 1-test a day in my week off. That's totally doable. It would be great to come back and have a test-taking day. Jumping ahead half a book or more would be a worthwhile use of my time off. 

It is is clear to me that I have much to learn. I'm smashing through the easy beginner stuff, but the world of pipefitting is still quite large (not as large as Philosophy by any stretch), especially when you take up the adjacent fields. 

We talked about the history of pipefitting and how little it has changed over the years. I think that is fascinating. I have to say, I'm kind of pleased to be in a field that isn't likely to make huge transformations. I like learning things that will last me for a long time. It is one of the problems I have with applied computer science. 



I've been dancing around this family for a while. I've noted many times how much power Bannon has, and I've even touched on [[Cambridge Analytica|2017.02.14 -- Automated Memetic Warfare]]. Both are funded by the Mercer Family.

Essentially, the computional Hedge-Fund Manager Robert Mercer and his daughter Rebekah are part of the core reason for how Trump was elected president. They are dark-money demagogues. Think 21st century Rupert Murdoch meets the Koch brothers, but quieter and far more intelligent in some respects (but just as crazy). They may be the most successful supporters of the Alt-Right we've seen so far. They obviously know how to spend their money effectively (except for that whole Cruz thing). They are incredibly talented at betting on the market, and it seems like they have the knack for political betting as well (not these two are that far apart). Their goals are terrifying, and they are sadly very successful at achieving their goals. 

Let's see, they:

* bankrolled Bannon and Breitbart. 
* bankrolled Kellyanne Conway's superPAC.
* injected David Bossie from Citizens United into Trump's campaign team.
* invested in Cambridge Analytica, and are clearly committed to memetic warfare against the People of the world.
* painted Hillary as corrupt; produced the hitpiece book entitled //Clinton Cash//.<<ref "1">> 
* have masterfully herded, converted, and redirected the growing insurgency and discontent with the hyperclass towards red herrings and into the arms of Trump.
* had Rebekah planted in Trump's transition team.

 The Mercer's, alongside Putin, are in non-trivial ways responsible for the mass psychosis we're experiencing in the United States (and perhaps the West at large). Of course, controlling POTUS is not the same thing as controlling Congress itself (the much more powerful political body). I have no idea how much power the Mercer's ultimately wield, especially considering how effectively private and secretive they've made their lives.

--------------

<<footnotes "1" "Let me be the first to throw stones at the Clintons. They are corrupt. However, we should still be worried about the Mercer's fairly absurd propaganda. I believe the Clinton's are war-criminals, and murderers too, but Bob Mercer thinks they are murderers in the more standard sense too, lol. Maybe he knows something I don't (and he very well could), but the evidence isn't there.">>
Honestly, getting my son to write anything at this point is doing well. That sounds terrible. He's 9. But, try and see that he couldn't even speak until he was 4. He has grown tremendously. This is about practice and encouragement to help him reach his potential for the sake of his long-term happiness. Being able to communicate is hard for everyone, but especially for him. Take it one day at a time. Slowly move the goal-posts and improve. 

* [[2017.04.23 -- 1uxb0x's Wiki Log]]
* [[2017.04.30 -- 1uxb0x's Wiki Log]]
I think it is still a good idea for my kids to meditate. I can't keep piling things on for them to do. They need to be comfortable and fast with what they already have on their plates. I have to triage what we'll accomplish and what we won't.

Part of these meditations hover between useless and crazy. Other times I make acceptable points. I have actually gone on to implement some of these ideas. You can't be right or brilliant 100% of the time. You have to sift the sands. Tune it for signal-to-noise ratio.

Overall, it is clear that DCK is doing good in my life. It makes life positive for me.

* [[2017.04.16 -- DCK Meditation]]
* [[2017.04.21 -- DCK Meditation]]
* [[2017.04.30 -- DCK Meditation]]
Average calories per day: 2098.5

I eat a fruit. That's good. I don't eat enough vegetables. I now eat something for dessert every day. Salads have been kicking ass. I should eat more salads. I like to load them with vegetables, and the dressing I use is delicious while not costing many calories (that's hard to find!).

* [[2017.04.23 -- Diet Log]]
* [[2017.04.24 -- Diet Log]]
* [[2017.04.25 -- Diet Log]]
* [[2017.04.26 -- Diet Log]]
* [[2017.04.27 -- Diet Log]]
* [[2017.04.28 -- Diet Log]]
* [[2017.04.29 -- Diet Log]]
* [[2017.04.30 -- Diet Log]]
!! Log:

* [[2017.04.02 -- Family Log]]
* [[2017.04.16 -- Family Log]]
* [[2017.04.23 -- Family Log]]
* [[2017.04.30 -- Family Log]]

!! Review:

*I can see that [[1uxb0x]] didn't do much of what we wanted to accomplish. It was a good month for him though.
* [[j3d1h]] is able to stay on task better and does accomplish more of her personal goals. 
* Hopefully, in time both will be adept at triaging, prioritizing, focusing, and other executive function skills that enable them to make the most of their time.
* [[k0sh3k]] had stomach problems which we eventually found were due to milk in a sugar candy she had received from work. Her period, allergies, headaches, and sleeping problems have not dissipated. 
* I spent a month not fixing a dryer. Jesus.
!! Log:

* [[2017.04.01 -- h0p3's Log]]
* [[2017.04.02 -- h0p3's Log]]
* [[2017.04.05 -- h0p3's Log]]
* [[2017.04.07 -- h0p3's Log]]
* [[2017.04.10 -- h0p3's Log]]
* [[2017.04.11 -- h0p3's Log]]
* [[2017.04.12 -- h0p3's Log]]
* [[2017.04.14 -- h0p3's Log]]
* [[2017.04.21 -- h0p3's Log]]
* [[2017.04.23 -- h0p3's Log]]
* [[2017.04.25 -- h0p3's Log]]
* [[2017.04.27 -- h0p3's Log]]
* [[2017.04.28 -- h0p3's Log]]

!! Review:

* I'm pretty sure that [[h0p3's Log]] this month helped me realize that I need templates and more logs. It helped me see the value in at least attempting to be systematic and disciplined in having a conversation with myself.
* I think it helped me reflect a lot. It was hit-or-miss in helping motivate me in my daily life.
* It clearly evolved over the month. I'm not sure what else I can do to improve upon the process, but I will keep my eyes open. I can see it is valuable.
* I had a serious dip in my depression, and this was due to not taking DCK. It got bad in the middle of the month. It was a huge mistake to stop taking DCK for so long. My brother [[JRE]] says it is quite common for people to stop taking their meds because they feel fine. The various anti-depressants and anti-anxiety meds I've taken didn't actually work, but DCK did. I was actually better. But, at the same time, because I felt better, and because DCK can be a struggle, I felt I could do without. Eventually, I do want to take myself off it. I need to get myself to a place where I'm happy with life though. I'm not there yet. I can, of course, afford to not use DCK for a week or two to pass a drug test. However, I should not go off it completely at this point. I was able to successfully drop cannabis without serious consequences.
* My sleep schedule has improved with DCK. If I'm consistently not sleeping well, that is a sign that something is wrong. ARE YOU LISTENING!? 
* I'm hoping that meeting with my parents in a couple weeks will go well and have a positive impact in our lives.
* I'm so happy I've been reflecting like this. I don't always have something to say everyday. But, it has been useful. I'm so grateful to myself for taking the time to do this.
This month was yet another turning point. It was another iteration of how we engage in the practice of homeschooling. I have done much of planning, structuring, organizing, design, etc. But, implementation, accountability, and effectively cultivating it in my children is not something I can do alone or even well. My wife has taken up the bulk of responsibilities in that domain now. It has been very effective. 

* [[2017.04.02 -- Homeschooling Log]]
* [[2017.04.14 -- Homeschooling Log]]
* [[2017.04.21 -- Homeschooling Log]]
* [[2017.04.29 -- Homeschooling Log]]
Honestly, many of the suggestions I've made haven't been implemented. Many, however, were. This may just be a shotgun approach. We will eventually get where we need to be. Think about how long it took to create what I have on this wiki. There's work on here from over a decade ago. Give it time to develop.

* [[2017.04.23 -- j3d1h's Wiki Log]]
* [[2017.04.30 -- j3d1h's Wiki Log]]
This was a month of just pushing my wife to even get into writing on her wiki. She kind of didn't want to, but she was also very busy with other things. I'm glad she jumped into it. I'm grateful.

* [[2017.04.23 -- k0sh3k's Wiki Log]]
* [[2017.04.30 -- k0sh3k's Wiki Log]]
My links are not surprising to me. There is a heavy amount of technology and socialism that I highlight. There's some philosophy and psychology. I have very little else that seemed to resonate with me enough to say, "hey, I should save that." Do I need to change these behaviors? Is my curation process good enough?

One thing I feel like I'm not doing in my routine is curating information about pipefitting itself. I need to do that. I could try to make that a goal, yeah? Pipefitting links.

* [[2017.04.25 -- Link Log]]
* [[2017.04.26 -- Link Log]]
* [[2017.04.27 -- Link Log]]
* [[2017.04.28 -- Link Log]]
* [[2017.04.29 -- Link Log]]
* [[2017.04.30 -- Link Log]]
*Nash continues to be useless. Chris continues to be a decent peer. Luke has become a fun partner to work with. 
*I have changed my mind about the nature of the extra NCCER bookwork and my trajectory in this class over the month. It's clear my teacher really is trying to slow us down.
*The break wasn't as bad as I thought it would be.
*I didn't create a networking section on this wiki. I think I really just need a private rolodex. I can't put their personally information on this site. I can only handle so many pseudonyms. 
** It will be important to keep my bridges.
* We didn't move straight into buttwelds in the second trimester like our teacher claimed.
* I talked a lot with my teacher this past month
* I'm clearly working harder than others in the shop.
* I spend significant time cataloging what other people do and why I think they do it. I think this is useful. I have to find the weaknesses of being autism and build good coping mechanism into my socialization.
* I actually feel bad for Chris often. He is a dad that is just trying to make it work. 
* The conflict between my teacher and Luke is clear. I think that my teacher may see me as taking up Luke's side. Or, at least I worry about that possibility.
* I didn't really accomplish nearly as much in welding as I'd like.
* I feel like I'm not asking my teacher enough questions about the nature, dynamics, requirements, and goals of pipefitting. I'm not sure how to get myself to figure out what questions I need to be asking. My teacher often doesn't seem to know what it is that he needs to be saying to us. I don't know how to pry out the information I need to know because I don't know it!
* Being the first in the toolroom is valuable, particularly if know which tools are worthwhile. When I'm on the job in the field, I think being first will be useful. It gives you a natural priority.
* Luke was willing to change his behaviors with me to some extent. This may be part of his personality that he attempts to blend in with those around him. 
* Extending respect often paid off directly with people, but indirectly it actually had repercussions (sometimes negative ones) with others. 
* This month had a lot of AB&T stuff going on.
* Overall, this was not my most productive month. That is a shame. 

---

* [[2017.04.03 -- Pipefitting Log]]
* [[2017.04.04 -- Pipefitting Log]]
* [[2017.04.05 -- Pipefitting Log]]
* [[2017.04.06 -- Pipefitting Log]]
* [[2017.04.07 -- Pipefitting Log]]
* [[2017.04.10 -- Pipefitting Log]]
* [[2017.04.11 -- Pipefitting Log]]
* [[2017.04.12 -- Pipefitting Log]]
* [[2017.04.13 -- Pipefitting Log]]
* [[2017.04.14 -- Pipefitting Log]]
* [[2017.04.17 -- Pipefitting Log]]
* [[2017.04.18 -- Pipefitting Log]]
* [[2017.04.19 -- Pipefitting Log]]
* [[2017.04.20 -- Pipefitting Log]]
* [[2017.04.21 -- Pipefitting Log]]
* [[2017.04.25 -- Pipefitting Log]]
My Realpolitik section has continued to focus more and more upon the intersection of technology and politics. I've also been posting less. Like the rest of the American people, I'm starting to become desensitized to the insanity of Trump's presidency bit by bit. It's disheartening, but also "yup, that guys an idiot, what else is new?" This is likely the wrong outlook. 

* [[2017.04.02 -- Brave New Experience Machine]]
* [[2017.04.02 -- The Divorce of Productivity and Compensation]]
* [[2017.04.10 -- The Renewable Resource]]
* [[2017.04.10 -- Redpilled Platonic Philosophy]]
* [[2017.04.13 -- Mainstream Media]]
* [[2017.04.13 -- Internet Shutdowns]]
* [[2017.04.15 -- Parasitic Bitcoin Hashing: Wallet Burglary]]
* [[2017.04.17 -- Ransomware Economic Strategies]]
* [[2017.04.17 -- Automating Digital Social Class Stratification]]
* [[2017.04.21 -- Energy Subsidies]]
* [[2017.04.25 -- Privatized Quantum Computing]]
* [[2017.04.25 -- Rectifying Our News Process Disintegration]]
* [[2017.04.27 -- Wiki Review Log]]
* [[2017.04.28 -- Wiki Review Log]]
* [[2017.04.29 -- Wiki Review Log]]
* [[2017.04.30 -- Wiki Review Log]]
Did the normal stuff today, but also tried to fix the dryer. I took the front off and cleaned it. I think the heating element or something is wrong. I picked up a cheap multimeter, and I'll try to and figure it out. Will probably ask for my brother's help/thoughts. I also visited in-law family. It went very well. I met k0sh3k's cousin, a 42-year-old programmer Democrat. Interesting guy. He's hopeful. Silly man. Still, obviously intelligent.
It's always sad to see that Orwell and Huxley can both be at least half right at the same time. I tend to cover the Orwellian perspective the most, especially since I consider it the most coercive. But, that is not a complete story. Huxley's vision has enormous explanatory power as well. Huxley was right about the way in which humanity continues to trend towards pleasuring ourselves. His understanding of the systematic effect of the mix between technology and egoism on the world at large was prophetic, even if not always accurate.

As someone who has emerged from severe depression (or still is emerging), I can completely see the moral and prudential viability of taking [[Cypher's Choice]] in The Matrix. Embedding ourselves in experience machines is arguably what we are all trying to do in the first place. However sad it may be, it appears to be a morally permissible (if not obligatory) option. Arguing against experience machines, in my experience, rests upon unjustified intuitions and assumptions. I've yet to see an argument that remotely comes close to diffusing the virtual bomb against reality.

Seriously, what is the purpose of life? To be happy. Right? We're going to beg the question here; it's innately axiomatic (I am fully aware of the is/ought distinction, and I still take this argument to be valid). Any sufficiently advanced species in the universe has likely been egoistically motivated through evolutionary processes. I don't mean this as a natural fallacy either. Surely we can be justified, insofar as metamodern justification is even plausible, in at least many cases of building things around us that augment and replace reality. I think you already accept this to some degree, you just don't realize the implications of taking your principles to the Nth degree. We maximize our utility through tools, avoid danger and pain, and pay the lowest cost for the highest systematic pleasure returns. Virtual reality seems like an obvious space in which to live the kinds of lives we want to live without paying the physical costs (many of which are impossible to pay) of making such a world "real" in the flesh. 

It is far more price-efficient to derive meaning and satisfaction from virtual reality than reality itself. Our species is evolving to short circuit the evolutionary drive for survival and pleasure through standard, brutal reality. Instead of accepting and living in bare reality, we use drugs, tell stories, play games, live in virtual worlds, etc. to replace our usual lives. We've been making experience machines for ourselves for a very long time. Psychotropic drug use is older than written history, even the lower animals play games (and use drugs!), stories might just definitionally be the human experience, and religion is also an experience machine (an opiate of the masses). As we evolve and innovate, we discover more effective and efficient pleasure chemical inducing practices. 

Experience machines are the potent means to our ends as a species. The grass can always be greener, that is the essence of hope. Hope is the belief that this is not all there is, that we can be happier, more purpose-filled, meaningful, content, joyful, and satisfied. Experience machines provide the firmament for worlds with greener grasses. This is what enlightenment is actually pursuing. Use tools to make life easier and avoid the hardships of nature. Take your Soma because you seek bliss. Immerse yourself in virtual worlds, in soap operas, in games, in religion to be happier. Perhaps it will only be a matter of time until we have the technology to rig our brains with neural laces or a brain fungus to permanently exist in a state of sublime orgasm.

I've given you the theory, now let us inspect the application we see today. Video games are but one profound example of this systemic contemporary Brave New Experience Machine which devours our first-world youth. Now, growing up, I heard plenty of bullshit about the futility and uselessness of video games. The truth is more complex than that.

I think video games are wonderful tools. Video games are microcosms. They even teach us about the real world, give us narratives and other worlds to explore,  provide us characters and communities of RL people with which to empathize and connect to, and even improve dexterity, problem solving, and technical skills. Hell, I'm literally trying to play life like a video game, that's how convinced I am by the positive influence that video games can have on our lives. I was a proponent of video games long before they were completely mainstream,<<ref "1">> but even I'm willing to point out their flaws.

Like any drug or skinner-box activity, addiction is a fundamental problem. If pleasure is fundamentally what drives us, the shortcut that video games provide to pumping the pleasure center of our brain can easily warp our behavior so as to provide us short-sighted, instant-gratification driven, poor executive functioning. It's hard to be wise when you can merely push buttons for pleasure. It's hard to engage in longer-term thinking. However, I want to point out that while video game addiction is quite real (you're listening to a survivor), more and more I see video game dependence as not being negative (standardly addictive) because it is literally the best utility-generating option for too many people.

Many rational utility seekers (to various degrees) are withdrawing from society to play video games. They do not participate in our economy. It is sad that the best method for them to maximize their utility is through our poor experience machine video game bubbles. I'm not here to victim blame though (I think it would border on fundamental attribution error). There is something logical about their approach, a utility-maximization we should appreciate.

The fact is that work is generally a means to an end in our world. Few have jobs they enjoy or find intrinsic value in. Thus, for most folks, the end is all that matters. The means is variable. If being unemployed can achieve acceptable ends, then why work? Again. I'm not claiming they are "lazy bums" or some other conservative lunacy (I say it again to you conservatives: please KYS; we'd all be much happier without you). Not working means you have more time to enjoy the luxuries you do have. I see these brave souls as sucking the marrow out of life, of making do with their predicament. These are utility-maximizing rational tradeoffs.

No doubt, the long-term consequences for their lives and our human capital will be severe. I think this is the hikikomori hope though, however bleak it may be. The game of life is rigged against us, and the end appears to be coming. There is a threshold at which it is hard to justify empathizing with your future self or humanity. Assuming we will fail as a species, I guess I'm saying: we need radically better experience machines. I'm coming out as a transhumanist in prescription, but not predictive description for the masses.

Huxley, yet again, was a visionary.

--------------

<<footnotes "1" "I don't mean this as some useless hipsterism or appeal to authority.">>
* How has our health been this week?
** 1uxb0x
*** Good.
** j3d1h
*** Blowing her nose quite a bit.
** k0sh3k
*** Fine. Evened out energy levels. Not unduly tired or dizzy.
** h0p3
*** My fingernails have been giving me a lot of trouble. 

* What happened last week? Have you been happy this past week? Why or why not?
** 1uxb0x
*** Happy about his friends coming back. 
** j3d1h
*** Played with some new friends. Pretty happy overall. Felt days were fast paced.
** k0sh3k
*** Yes. Very productive, even despite having logistics problems. Several students told her they were glad she is a librarian at the school. Had fun with her parents.
*** Decided to use a daily schedule bullet journal. 
** h0p3
*** Was happy with my own work.

* What will we do this week?
** 1uxb0x
*** Keep his desk clean. Zero toys.
** j3d1h
*** Finish MC VM.
** k0sh3k
*** Fix Resilio
*** Put bullets into tiddly
** h0p3
*** Use the multimeter to check which part of the dryer isn't working. Find a place to buy it cheaply. If we're lucky, we'll have the part in time to fix the dryer.
My multimeter is not functioning. It was a cheap one. I got what I paid for, according to my brother. That's okay. We'll use the laundromat this week. I've purchased another multimeter, it will be here Wednesday. This one is highly rated amongst users and it was still fairly cheap ($18). I'll find out on Wednesday what part I need, and I'll call shops around the area to see if they the part I need at a reasonable price. If not, I'll buy the part online as well. It will be at least another week before I can fix this. That's okay.
j3d1h has completed most of her content. 

* She needs to work on more verbose freewriting.
* She must explain more of the content of what she learned for Spanish.
* She needs a meaning/purpose statement for each piece of writing she covers in literature.
* She wasted her time on problem solving. The thing she should have accomplished in one day took her a week, and she still didn't finish.
* She needs to structure her wiki, and follow through on the feedback she's been given.

1uxb0x

* Graft old journal into the new one
* Morning routine should be honest
* He must put dates inside the individual subject journals. The point is to see a timeline of each subject.
* Math is lacking an explanation of the pages and book covered alongside the content of what was covered.
* Curatio needs to be organized and structured.
From ~1940-1970, productivity and hourly wage compensation tracked each other. They grew together. They were married together. In 1970, they got a divorce. Wages stagnated (haven't really moved since then) while productivity continued to climb higher and higher. That trend continues today. I believe there are two fundamental causes for this divorce:

# The beginning of the information age and the rapid growth of labor automation.
# Psychopathic Randian Libertarianism's increasing corruption of the Hyperclass which serves to destroy those seeking equality, fairness, or to not be enslaved.

Paired together, the Hyperclass continues to centralize their wealth, power, and monopolistic stranglehold on technologic progress. They reap an exponentially increasing lion's share of the rewards. Real Productivity is rising due to automation, but only a fraction of the world is ultimately benefiting from it in the longrun. The number of people who benefit will continue to shrink and shrink. The global utility equation is a crisis. When we centralize the control and profits of automation and technology into the hands of fewer and fewer people, we will continue to see this divorce between productivity and compensation.

Let's be clear. I'm not blaming automation. That's the fucking point of technology throughout the history of the //homo sapien// species: make life better.<<ref "1">> I don't mean just that we get to buy smartphones and medicine (oh wait, we can't afford that anymore). Of course, some technology does eventually benefit the masses. I mean more than that. I mean not only that we have nicer things, but that we all directly get be productive and reap the rewards of being productive with technology. Insofar as that is logistically difficult, then we need to enforce it through redistribution. It's the only fair thing to do.

We should not allow only a tiny select elite to reap the rewards of being productive with technology. Talk about innovation incentives all you want: you're either an //idiot// or a //psychopath//. It's clear to me that publicly funded innovation is central to our progress. The privatization of the "last mile" of progress just gives away the public's hard work and investment into the hands of the few. They've robbed us!

No human has a claim to own non-personal data, concepts, or any other intellectual objects.<<ref "2">> IP rights must be abolished; it is strengthening our masters beyond their wildest dreams. We are supercharging the Hyperclass with dangerous tools. They are snowballing power against us. They are draining us for everything we are worth before they finish building their own geopolitical structures (of course, "legitimately" government backed, legislated, adjudicated, and military-police protected), close us out, starve us, and enslave us "with our consent" when we come back begging. We will only pass through their guarded gates when we are willing to accept any power dynamic on their terms (read: master/slave)  for the sake of our mere survival.

In the ultimate analysis, automation is useful to us as a society at large only insofar as we maintain political and economic systems which can fairly distribute the value of technologic progress. Power imbalances must be answered because they are a threat to any proper implementation of the Veil of Ignorance. 

We must stop them before it is too late! Are you listening!?! Our time is running out. This is not like the other cycles of human and political history. Marx was wrong guys!<<ref "3">> He was so fundamentally right about some of the most important concepts about humanity that we will ever know as citizens, but he was still wrong about this. Marx was a human visionary, but not a technologic one. I know the difference. 

Marx had no idea how profoundly efficient and effective our technology would be, how influential it would be, how much power and raw ability it would give the future generations. Even understanding the broader changes in society (narrow and detailed being even more impossible) at every level in The Earth Stack is already beyond our comprehension, and we have over 130 years at our advantage. He could not see this pattern, and we shouldn't have expected him to. 

The fact is that technology has and continues to progress to the point that the powerful will be a position to permanently enslave the rest of humanity. The means to this terrible end are just having the right tools and the will power, and both are coming to fruition. 

Since I don't blame technology, then I blame the people wielding it and those who enable our masters. It's time to take get our compensation back. We need to see the permanent marriage of Productivity and Compensation. This is the socialist face of "Taxation without representation is tyranny."

<<<
Kill the masters.

--Grey Worm the Unsullied, Game of Thrones
<<<

-------------

<<footnotes "1" "That goes for plenty of other species as well.">>

<<footnotes "2" "Where personal has to do with what is standardly called 'private' information, but I worry that the word 'private' has been so thoroughly corrupted that only 'personal' can clearly allow to point out the obvious here.">>

<<footnotes "3" "I imagine I'm either preaching to the choice or you're thinking: 'No shit, sherlock. He was wrong about everything.' If the latter, you're an idiot; if the former, you should be charitable.">>
Today we took a test on Oxy-fuel cutting. It was a long chapter. It wasn't too bad though. I thought we'd be moving straight into socket welds. Nope. Wrong again. /sad-face. The teacher decided to have us go back to laterals. This time we did a giant pipe, 4-on-10 lateral. I honestly didn't do much besides the math, planning, and drawing on the material. Nash and Chris wanted to do the cutting and grinding. Alright (I wish I could just do it all; I enjoy it). I did the finishing touches on the bevel (although, it is unclear to me why be beveled in this section other than the possibility that we are reinforcing it?) because Nash doesn't quite have it down. One interesting part of the planning was that we use schedule 40 for the branch pipe after having decided not to use the much thicker schedule 80. I checked the bottom pipe (the trunk?) and found it was schedule 20. The teacher confirmed. It didn't interfere with our measurements though (or, I hope it won't). Remember that Outer Diameter is the nominal size after 12 inches, but Inner diameter up to 12 inches.

I also helped Ferguson a bit on his socketweld project as I wandered around waiting for Nash to get through it. He lacks both an understanding of where to grind and finesse with the grinder.

I then hammered marks on the soapstone rings I drew with Chris into the large pipe. We are fabricating a reinforcement ring for this lateral out of the part of the large pipe. Remember that the width (not thickness) of reinforcement rings are 1/2 of the branch pipe diameter. To make this ring, we need to cut it very cleanly. Thus, we had the chance to put our theory into practice by using the oxy-fuel cutting torch today. The teacher was slightly miffed that I was working ahead (instead of getting him, but he was quite busy), but my work was fine (slightly tighter than he'd have liked on the inner circle). Anyways, we got it set, and so I went to get him this time. I told him we were ready to cut. The teacher said, "go for it." Lulz. Well, I've done it a few times, so fine. I taught the guys how to use it (I think the teacher should have taught them to use this very dangerous machine, not me). 

They were scared as fuck. Shaking. Nash has an admitted phobia about it even. He wouldn't even cut except the first time. I understand being scared of it. This thing is really fucking dangerous. Anyways, I taught 'em on some practice pipe to try it out. I then cut the center piece out of our primary piece, since it needed to be the most exact of the cuts (I did an okay job; the problem was that I had to freehand one section). Also, don't forget to make yourself comfortable! Think of it as welding, but way more dangerous. Be comfortable. Maximize your fine-grained control. It didn't help that we were basically on a timer because we were running low on oxygen. Afterwards, Chris cut the outer loop. It needs some grind work. I'll jump on it asap tomorrow. Afterwards, I guess we'll tack. I'd love to take a shot at welding the damn thing. Might as well though, right? If this is just practice, it's the perfect time to screw it all up (because, in a sense, it doesn't matter if I mess up). 

On a sadder note, Connor finished his work today. He has graduate. He left, for good it seems. I said goodbye and wished him luck in life. 
I read some of the Union history book before class started. We jumped into our project. The guys immediately went for grinding. Since there are 3 of us and only 1 piece, I decided to try and find something else to do. I decided it would be reasonable to cut the final hole in the "trunk." I asked my teacher to make sure this was reasonable. It was.

So, I drew the hole (outside and in, but in is what mattered). I used the hole-puncher (wears on my hands, I tell ya what) around the bright soapstone circle I made. I then grabbed the oxy-fuel cutting torch and cut it out. I didn't go too close to the line. I'd rather grind than completely fuck it up on the initial cut.

I ended up using an actual grinder to do the majority of the shaping on both pieces. Nash and Chris were lazy today. That's fine with me. I'll take the practice. I'm going to be excellent at this. The inner edges were tight and hard to grind cleanly. We eventually found rock grinders that did the trick (I forget the exact name, but they are literally made of a rock-like substance). I thought I may have ground the reinforcement plate down a bit too much. Turns out, the teacher said it was just right or that in the field I'd find I may need to go even further.

They went on break, and I finished it. The high-lo was clean. The pieces fit. I was pleased.

Afterwards, I asked my teacher if we could actually try to weld it (and not merely tack it). I knew my teacher was running out of things for us to do (I saw his wandering), and it's clear he doesn't want us to move onto socket welds (I think he knows we are going to smash it). Since I'm less interested in hashing content I feel very comfortable doing, I'd rather work on things I suck at.

Further, Nash had been saying all morning he wanted to weld. It seemed like a good thing to do. Ultimately, Nash didn't really want to do that much welding. He wanted to screw around for a few minutes posing as a welder-in-training. He didn't really want to practice. The welds took hours. Chris did some, but he was clearly discouraged as well. I was doing half and letting them do the other half. I ended up doing the vast majority of it. Not a problem for me though, lol. This was some fairly expensive jumbo (as far as the shop goes) pipe to be practicing on. I doubt I'll get the opportunity to do that often.

As to the weld, it was tricky. Pipewelding is its own art/subfield of welding. I have much to learn. I fucked up grinding a non-root bead. I didn't realize it was a no-no. I don't see the difference between the root and others on this matter, but I'm going to take my teacher's word for it. He may not have explained why, but at this point, I'm sure he correct. It was very difficult to make clean welds. I tried several techniques. Eventually, I went with the large rods for the final caps. The teacher was pleased enough with them. More importantly, I was pleased enough with them. It wasn't perfect. It wasn't even respectable for a professional. It would have worked in a pinch though, I tell ya' h'what.

We also got our study points. I'm about halfway through them. We were talking later in the day about how we have 3 more books to complete after this one. I need to keep pushing hard. Certifications, homie: get 'em. I need to find out if there is an NCCER practicum aspect of the curriculum. Basically, I would be unhappy going through the extra books not to be certified (although, I'd still do it). 
I'm going to start using a template in this blog. I can still freewheel it in here, but I also want to systematically and consistently ask myself certain questions. It's key to program yourself on this wiki. [[2017.04.05 -- Pipefitting Log]] is the case example for why I need to have another Log. I basically answer the questions from the template there. I need to compartmentalize these logs to maximize signal-to-noise ratio in each of them, but to also give me clearer data structures to analyze. This is what [[h0p3's Log]] is meant to be. 
We actually got to start socketwelds today! Yay! As predicted, we are rocking it. Rocking it as in: I could throw down with any of the upperclassmen today on it. Put us in a race where we are both doing our best, and I will do at least as well as they do. In time, I will eclipse them. I don't mean to sound smug here. I'm not running with the horses. 

Before we got to start, we had to clean the entire shop. Basically, the 3rd trimester students have abandoned learning anything more. They just want to finish their tests and leave. They've paid for more time, but they don't want it. Perhaps I will feel the same way. Maybe I'm too harsh on them. I have seen their work though, =/. These guys aren't virtuous enough at the practice  to think they //should// walk away from the free shop time, as far as I can tell. It's dumb to spend more time as a waiter or pizza delivery driver when you don't have to (they don't), and you are trying to move into pipefitting. Throw yourself in! They really do just want to cut class as much as possible; the piece of paper is all that matters to them. That's on them though. They will be irrational. I'm completely convinced that even in the less academic world of the tradeskills that certification is valuable, but knowledge and practiced talent are still incredibly valuable after you've gotten your foot in the door with a certificate. There is much to learn.

So, we cleaned up their messes. That's fine. We took out the thin cutting disks and dismantled everything, then we recycled the parts. It didn't take long, and now I have the run of the shop without them. 

Also, the second trimester students have dwindled or went co-op. The teacher joked with us that the 12-hour shifts are eating their lunches; I'm sure it will be difficult for me to adjust to it as well. I couldn't pass the drug test at this point, but I will when the time comes. I stop in June so that I'll be prepared to take it in August. That is extraordinarily paranoid, but I desperately want to pass the drug test (of course, I'll be taking my own to ensure that I can pass their test). Beyond the drug test, I believe my time is still best spent mastering pipefitting itself. They are doing firewatches, cleanup, and bitchwork. I have no problem doing these things, especially when I'm getting paid for them! However, when I look in the long-term, I believe I need to squeeze every drop I can from this short-term schooling rock because it will have a profound effect my initial "placement" in the workforce as an apprentice.

Starting out as a 3rd year pipefitter instead of a 1st year pipefitter apprentice will be huge. That's probably $7/hour difference, and where the "gravy" zone even begins (where working actually becomes worth it past the initial costs). Placement matters. It always does. Your initial starting point, your context, has enormously strong correlations with your outcomes. Let's hope I can be the god of pipefitting that I was in video games as a teenager. Understanding the social and power dynamics of the world will be key. Reputation instrumentally matters even if not intrinsically.

It is much better to skip that 1-week shutdown job to continue learning and practicing pipefitting itself while I still can. The time adds up. I'm not just trying to finish 12 months of work in 10, but actually 8. And, beyond that, I'm not trying to have a half-assed training on it. I want to be really good at it before I leave the shop. Additionally, I'm trying to finish 4 pipefitter books (and the core), not just 2. I'm trying to fit all 4 years of pipefitting booklearning into half a year. Now, that might be insane, but I'm really fucking smart and dedicated. I can do it. I'm trying to learn how to weld too. There is much to do that is worth doing, and the co-op seems to detract from it. My exception would be an actual pipefitting job more directly, not just work for random "construction" company as a general worker. It may happen though. I will take whatever is the best option for my children's futures.

Onto the goodstuff: our teacher gave us a drawing, told us to acquire the parts and prepare them. Chris and I did the math. We grabbed our supplies. I measured and marked. Nash and Chris worked together to just "cut" the pipe (lame). In reality, Nash literally did nothing again: his loss.

I took the fittings and started grinding the slag off them, and I used a die-bit on a drill to clean on the inside. The goal is to be able to slip pipe in them easily enough and have a roughly flat surface to level and tack on if you can (generally hard to get it level with these recycled parts). Plus, I don't want it to look like shit. 

You have to grind the 1.5" outter surface off the tips (1" according to the books, 1.5" according to my teacher) of the pipes. Make it shiny. I keep mine smooth looking too. Basically, they cut, and I did all the grind work. I'm quite fast and methodical about it. The abrasive cutting disks are beautiful for this kind of work. 

Once we had the parts ready, the teacher came to show us how to do it. He is usually too brief in his explanations, and so we pry the content out of him with questions. If you do it right, he is even thankful for it. 

Here's the gist of it. You put the fitting all the way on, then you let is "fall" a bit naturally (makes it crooked). This should be a 1/8th inch gap inside between the shelf inside the fitting and the pipe's edge (maybe 1/16th, depending on who you ask). This is necessary for dealing with heat expansion and having the wiggle room to align/level it all. You level it in the directions you can, and then you tack it at 12-o'clock (strongly preferred). Try not to have the fitting pointing down unless you absolutely can't do it otherwise. After the first tack, immediately align it and level it while it's redhot. It's malleable for only a few seconds. After that, it's hammer time. Failing that, it's grind and restart time.

Remember that tacking will slightly pull the pipe in that direction. It's not severe though. There may be other factors to account for. 

I've also found that when inserting vertical pipes that I lean it the side and tack it in the direction. that way when I hammer it won't rotate the fabrication in the vise. 

Anyways, we nailed the first project, except one of the pipes was cut too long by 1/8th of an inch. I had double checked the cuts and said something about it. They weren't worried, and I said we should see what happens (since this was our first time). It isn't like screwpipe, where being off an 1/8th can be accounted for by tightening a bit extra on both sides. Nope. It shows up directly, and it did. Since I had pointed it out in our final measurements (to make sure they met the requirements) before having the teacher actually inspect it, our teacher told us not to even worry about it. We had already told him how we were going to solve it (was marked already, and we had the portaband out for it). He passed it though.

He gave us a new one after we took the old one apart. We had done this new one before on screwpipe too. It was more towards the medium difficulty of the plans he has stored up for the class. Chris and I did the math, and Nash attempted to help Chris. Nash's mistake made Chris' calculations all wrong. Chris will just do it himself from now on too, I believe. Lazy, capitalist-pig Nash. The kid was born with a silver-spoon in his mouth for this region. It is clear he was the bully asshole in school too. Meh. Forget him. Chris has informally adopted his GF's child, and he's a working man. He might not be smart, he might be psychopathic in conservative ways, but at least he tries most of the time. I can respect that.  

I've convinced both Chris and Nash to continue using recycled pipe. I think it is ridiculous that previous classes didn't. It's obvious we can and should. It isn't much of a cost to us either in terms of work. I didn't do any measurements for this. They did. We will see if I can delegate this to Chris or not; I probably should check it anyways. I went straight for the flanges and fittings. I got those set. My grind work on the pipes also outpaced their cutting (I think that makes them look bad; the giant bandsaw is incredibly easy and fast to use.). 

The lady at the front office came in. We know each other (she helped me join the school last Spring and actually join pipefitting in January of this year). She said I looked funny in my equipment. She seemed so surprised that I was working hard and enjoying it. She's not a bright woman, but I handle the classic fat southern woman just fine in conversations. Joviality with virtue-signaled humility is the key. 

A few other noteworthy things sprinkled throughout the day:

The teacher said he "admired my dedication, but [I] need to start taking [my] breaks." I said okay, that I would comply (I didn't drop that 75 cent word on him). He went on to argue (I mean this philosophically) that when I would be employed, it would be expected that I would take my breaks. I quickly explained that I do take my breaks when I'm employed, every minute of it is //my// time. But, when I'm in class, I'm working on myself for myself. I need that job. That changed his mind. He decided to allow me to continue skipping breaks. Don't get me wrong. I still always take a breather on my breaks (and however much time I feel like I need). I grab a piece of fruit to eat. I get something to drink. Take a piss. Charge my mp3 player or rock out on my music for a few seconds to let it out. But, I put myself back on task because that's what I'm there to do. I will master this, and I will make enough money to make my children's lives as happy as I can (most people my age aren't lucky enough to be able to do that because our world sucks, but I believe I am exceptional enough to accomplish this goal). I'm their creator; they didn't choose to be created. Hence, I owe them the best life I can give them.

Also, the teacher gave us a quick intro to the different kinds of flanges. He decided to give us an impromptu teaching session on flanges because I had questions about them for this project (since screwpipe flanges are not the same as the other kinds, and this is the first time I've dealt with slip-on flanges). Three broad kinds so far:

* Buttweld
* Slip-on
* Lap-joint

He had a good deal to say about them. I had questions as well. There is obviously much to learn. He made a joke that he had overwhelmed us with information. He as right, but not in a bad way. I had a hard time remembering it all. My teacher realized it. Maybe he might not have been explicit or complete in his understanding of my mental stati, but the virtue-theoretic application of subsconcious knowledge and pattern-recognition was obviously kicking in. I think he knows I'm truly weird, an alien to him. It's so wonderful to be aliens with someone and yet friends. I don't have to tell him that I'm autistic, but the weirdness doesn't get in the way. We just find lives that are compatible with each other when we can. 

Oh, I made a tool! /roar. It wasn't much, but it was something useful. I didn't come up with the idea. Sometimes pipe is too short to use even a torpedo level on. So, we take a small bit of pipe, stack in on the pipe to be measured, and then put the torpedo on the smaller pipe. Ferguson decided to put a stick on the end of one (apparently, he got the idea from another student). I did the same. I've had to borrow this tool multiple times, and I can't keep asking for it. It's rude and a waste of my energy. 

Ferguson gave me a special yellow-paint pipe marker. He said he would, and he did. It's damn useful. He saw I was building a replica of his tool. We talked about it. He gave me another one, the one that he copied from. Ferguson has a knack for turning things into tools and seeing things as tools, even if he isn't terribly good with them.

I talked with mom on the way back.<<ref "1">> She sounded rougher today, but still much better than when I saw her in person. I believe most of my family thinks I'm overreacting when I believe my mother is dying. They may be correct. I have not been around enough dying people to know. I can tell you that the changes in her were profound. Physically and mentally, she is different (and I don't just mean that she behaves differently because our relationship is rocky). It is not obvious to me that she is actually getting significantly better. 

We talked about life, and what it was like being this old in function and feelings 2-3 decades before it would normally be expected. Our chat was nice enough. We walk on pins-and-needles with each other. We both read much into what is said, and every word is laced with great meaning to both of us. We're very sensitive to each other. When both of our ears are naturally sensitive than our mouths, we must take care in the golden mean to overshoot to the side of delicacy with our words to hope to hit the fitting mark. We might not be able to say what we mean (partly because we lack virtue in communication but also for reasons of disagreement [there are profound asymmetries in the ways and areas in which we can empathize with each other now - some places are very deep and others shallow to the point of silence]), but whatever we say means a lot. And, we really are trying to be constructive with each other. We both know it. Courtesy is what we owe to the new strangers we've become with each other. It is the nature of hospitality that we do our best not to otherise the other anymore than they already are other to us. We must pretend they are like us, even if we don't understand. We must see ourselves in the other and become aliens to ourselves. This is applied empathy. 

This is an odd post. It does not follow my usual. My pipefitting posts, on average, keep getting longer too. My method is different here. I've been a bit depressed lately or anxious, or something. This is me talking about stuff that I should be talking about, but in what are normally different parts of my wiki. Maybe I need to reorganize the wiki more to make it so I have more control and information about it to make even better choices. Talk and listen to yourself!

--------------

<<footnotes "1" "My brother JRE accidentally upset me last night talking about how my parents were unhappy about him giving a car to my other brother, AIR. My brother AIR deserves empathy, kindness, and help (even if he is dark-triadic, I truly love that man: he's my brother, and I am committed to being his brother [plus, I legit like him. I dislike basically everyone, but I almost always enjoy his company]). What JRE did was brotherly love. I wish I could be a brother as good as JRE sometimes. He's doing right by AIR. Maybe AIR will throw it away, and maybe he won't. My parents have given up on him though (actively don't like him; so thoroughly otherise their own child: FUCK THAT BULLSHIT! YOU CREATED SOMETHING, NOW DEAL WITH IT! YOU ARE MORALLY OBLIGATED TO SACRIFICE YOURSELF FOR YOUR CHILDREN, NOT THE OTHER WAY AROUND! YOU FUCKING PSYCHOPATHS! I KNOW WHAT THE BIBLE SAYS: YOU FUCKED UP [I am lucky to have the resources I do, to make up for your failures and mine]! YOUR LOGIC FAILS, EVEN ON YOUR OWN TERMS [you understand how to manipulate emotions better, but I still make the more complex and superior inferences about the world in general; Even with this gap in our abilities, I still hold you responsible for igno-malice in this case]. HOW DARE YOU CONFABULATE YOUR WAY OUT OF TAKING RESPONSIBILITY FOR YOUR ACTIONS!), which is atrocious given the mistakes they made (hyprocrites); it is intertwined with their absurd capitalist/conversative/pseudo-Christian point of view. I will not stand for that lack of integrity. Anyways, JRE probably doesn't even know I was upset (or maybe, he did abruptly change the topic). It spurred me to call my parents. I was hoping it would help me feel less anxious, depressed, and upset about it (I didn't know how. It seems I'm just "getting out it here" while screaming to the void, which is fine; it was worth calling them). Anyways, I'm glad I talked with my mom. It's just easier. I'm pretty convinced my dad and I just don't like each other at this point, and mom + my children are the only thing which holds us together. Finally, in case this ever matters, please see the 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 page.">>
Today was a good one. I spent lots of time with my teacher today 1-on-1. The perks of being the only student in the shop on Thursdays! =)

 I got plates ready and went for a 1G. It was a giant fucking mess this time. I don't know why =(. The root was just terrible. I switched to just dropping stringers because I was discouraged. They at least were clean. I dropped stringers on those stringers too. Clean. I even tried to vary their sizes and space them out. It looked nice. Later, I asked my teacher if he could help me with the root problem. He said it would be better to have the welding instructor teach me. So, we scheduled an appointment for tomorrow (the teacher was feeling sick today). The welding teacher is a slow-roller country boy. His reactions are quite reserved. I was pleased that he would be willing to show me though. I am excited to learn. I think I need to develop a better relationship with him to continue learning how to weld. The fact is that I can only do so much practice on my own. I really do need someone to show me how to do this. I need guidance. My teacher isn't as skilled as the welding instructor, so I need to go to the person who can actually help me. I'm going to continue asking for his guidance.

I tried a cut a plate on the bandsaw that was too long. I'm not sure if it would have ruined the bandsaw machine or not, but I'm glad my teacher stopped the machine.

I cut lots of plates, did quite a bit of beveling. Hopefully, I'll learn me sumfin tomorra' with that material. I truly suck at welding. My teacher continues to tell me that I've got to learn to crawl before I can walk; he thinks I'm doing just fine with the amount of time I've invested so far. 

My teacher gave me my 5th assignment constructing for the school. This was a simple fabrication. I had to create my own S-hooks to match his pair. He said I did an amazing job. They weren't amazing, but they did look pretty good for a first time. The vise, a hammer, and some pliers went a long way. Don't forget to grind burrs off! I used these S-hooks to secure the acetylene and oxygen tanks (more than 20 feet apart from each other). Apparently, TOSHA (Tennessee's OSHA) is surprise inspecting schools all over the state. I prepared our part of the building for them. I guess that's why I had mounted signs before too. 

I told him that I appreciate having the chance to do construction jobs for the school. The realness is nice, and I have to figure things that I've never done before. I don't mind the feeling like I don't know what I'm doing when the stakes aren't high. Speaking of which, my teacher told me today: "never be afraid." He's right. I am smart enough to do this.

I realized that as a traveling pipefitter, I will have a harder time generating long-term professional relationships. But, in a sense, this may play to my strengths. I tend to make very strong first impressions (or none at all if I have my guard up). Traveling doesn't have to be a bad thing. Networking with people around the country could be quite useful. I need to make sure that I keep logs of names, addresses, numbers, etc. Pictures would help a lot too. I can remember a face. I need to develop a networking section. Admittedly, that will be to be privatized. I hate to bifurcate my work into two wiki's. I simply can't be handing out other people's information.

As usual, Thursday's are a day to talk with my teacher for extended periods of time. We talked about a lot. I'm not sure I can remember it all. He sure does love to talk. It's part of the "countryfolk" way, I believe. When he sees I'm "engaged" in his stories, he believes I'm "with him" in a real sense. He retells the same stories all the time. I always treat it like it is the first time he is telling me, unless I have reason to believe he realizes he has told me before. About 70% of what he says is new though. I'll take it.

He said that we won't be on socketwelds for long. He says we'll move straight into buttwelds in our second trimester (normally, this is reserved for third trimester students). That means he anticipates we'll be done with an entire trimester's worth of work in 3 weeks. I think we can too. We're just crushing it. When asked about what we might do after buttwelds, he didnt' seem to have an answer. Either he's not thought about it, or I'm meant to realize that there is nothing else major to learn in his shop. The math for buttwelds is harder, and he believes it will take the semester. I'm not so sure. Once I get a handle of the math, there will only be so many curveballs he can throw at me. If I do finish everything much earlier than he anticipates, I think I'd like to work my way through the entire pipefitter's bible and fabricator's bible as well. There is still much to learn. Plus, welding and other trades are also in my sights. I just want to soak up as much as I possibly can before I hit the union. I have to hit the ground running. My brother continually tells me how much he wishes he went union first, and how they treat him differently, and how he feels inadequate. If my brother feels inadequate, then I'm probably in far more trouble. I will not have actually earned my right to 2nd or 3rd year status, but I need to make sure I can close the gaps as easily as I can. 

Ferguson will be finishing socketwelds at the same time that my class does. Ferguson's partner just got kicked out of school for not showing up (I'm glad to see Harold go). There is a big to-do about it. Whatever. I volunteered to be Ferguson's partner. After volunteering, I heard that Ferguson bullied a kid out of class last semester and was suspended for it. I am truly surprised.  This does not seem like Ferguson. I am sometimes deeply wrong about the world and the people in though. Perhaps I have misread it. I'm going to bet I'm only hearing part of the story here. In any case, I don't mind working with Ferguson. Harold and Ferguson got a long just fine, and Ferguson and I do as well (at least so far). 

With his absenteeism rate, I will probably have more opportunities to do the work myself. This works for me. Ferguson will have to get used to my sticklerness and doing it the way our teacher tells us to. This wears on Chris only a bit, but Nash moreso. However, they know I'm too often right to not at least hear me out and let me try my way first. Ferguson regularly remarks that he believes I'm extremely intelligent (I suppose he's trying to butter me up or seeks my approval), and so I may have some leeway with him in trying to convince him to do it my way. He hasn't quite faced my "disbelief" face yet, where I can't even mask my disbelief, and my expression alone takes him to task on what he's doing (I do try to be kind, but, of course, no one wants to consider the possibility they are doing it wrong). Being an older man, as far as the class goes, may help smooth it out too. 

My teacher asked me to be honest about his teaching. Obviously, I couldn't tell him everything that I thought. I only complimented him, of course. That's what you do. Too much rides on him liking me to mess it up with the whole truth. Lol. I do like being in his class though. It is easy to give him compliments because I legitimately think he does a good job in many ways. I realize there are tons of problems. I also think he does well with what he has in some respects. Administration, as usual, don't have the teacher's backs. This school is no different. 

I asked my teacher to help me draw up a list of pipefitter employers in the area. He was not quite pleased about it or at least hesitant. He feels I've already been offered a job at the union (the route he wished he had gone). I explained that the union is clearly my first choice. The problem is that there is no guarantee that the union is hiring in the fall, only a guarantee that I will get in if they do open their doors. He told me about how hard it was to get into unions due to nepotism when he was breaking into the trades. Like the unions leaders, my teacher thinks I should be a foreman, manager, contractor, etc. I have the chops. I may. He thinks work is exclusively for money. While this is mostly true, there are other considerations for me. I have not worked them all out yet. We will see. I do know that I will one day not want to do all the heavy lifting (although, I do want some physical labor!). 

What does it take to be a good boss? So many things. I need to keep metrics. I need to understand the ins-and-outs. Play it like a video game. Look at a group and understand what it can and can't accomplish, why and why not. I have precious little experience though. You have to believe in yourself. 

I found out that we are certified on bookwork alone. The practicum in the shop is just what my teacher wants us to do (and what I want to do too!). He told me that I could walk on any job site right now and do just fine for screwpipe and socketwelds, with the caveat that I haven't learned to do rafter work (and probably other things like it). The practice we get should be useful to us. The teacher didn't seem to think we would get through the 4th book though. I think he is worried about never having done the 3rd book before and wants to temper my expectations. That's fine. I'll take whatever I can get. Squeeze that rock dry!

He told me he has had actual journeyman pipefitters go through his course as well. They were journeyman on time requirements, but not knowledge. I'm confused, I have to say. Perhaps I will better understand out in the field. Apparently, one of them died last year. It was a sad affair. Derek, the union worker who came in as a journeyman, was one in the same class as that fellow. 

He continues to ask how my wife feels about my becoming a pipefitter. I had explained that she is happy that I've found purpose again in my life. He asked the right questions, and I didn't want to lie. So, I told him that I was depressed and suicidal last year. This surprised him. He asked why (and graciously gave me outs because it was private). Again, I really don't like not being myself. I told him that my loss of faith hit me really hard. I've been losing it for a long time, not just in God, but in Humanity (I did not say this part). How could I explain to this man who I was and who I am? He could study for the rest of his life and never understand what's going through my mind (I'm not saying that's worth doing on his part at all; I'm just trying to figure out what my elevator speech out to be for people like him). My teacher became from grave, of course, but decided to tell me a few stories and jokes about his brother (and a friend) going into the ministry after very rough living. Hopefully, he won't hold my atheism against me. Most do. He is more tolerant than most people around here though in some respects. We will see. It may have been quite unwise of me to open myself up. There was no reason to make myself vulnerable to this man with the truth.

My teacher made a comment about how some of the students (without saying me) didn't jump at the chance to do the last co-op shutdown job. He says that always means they can' pass the drug test. I have no shown my hand here, and I don't think I should. I think I have nothing to gain. Although, he talks about his drug and alcohol use with me. 

My brother values compartmentalization quite a bit. He's more talented at it than I am, and I mean that as a compliment.I should consider it carefully, especially since I can't trust my social instincts (I do not form fitting theories of minds of other people because I am autistic). 

My teacher talked to me some about his sons. Both are pipewelders.
I need to mail my thing to AB&T. I need to cash some checks. I need to fix the car (control arm and electrical); I feel uncomfortable doing these myself (but I'd like to). The electrical is too important to get wrong. I will take it to a shop for that. I need to fix the dryer; namely check the parts, buy them, and install them.

!! How is your health?

It's fine. I'm feeling a bit blue. I'm not sleeping as well as I'd like to. Twice this week I contemplated not getting up, but I decided I should. Normally, I'm happy to spring out of bed to approach the day. I've cut alcohol this week entirely. I think I should use DCK this Sunday.



!! What happened? Does it make you happy or unhappy? Why or why not?

I told my teacher that I was depressed and suicidal last year. I feel vulnerable for saying it. I think people lack empathy. It was probably a mistake.


!! Can you better explain what happened?Do you have a technologic, philosophical, empathic, or redpilled story to tell about what happened? Clarify the narrative you just told yourself.

I'm trying to figure out how to explain my existential crisis to others in a sound bite that makes sense. It is very hard for people to empathize with those in psychic pain (it is difficult for them to represent the mental state I'm in while developing a theory of mind). It's just a fact that we otherise people with mental differences that make them sad. What exacerbates the problem are the complex reasons for my crisis. People would be far more hopeless, angry, and depressed if they understood the world as I do. They will not allow themselves to see the truth though. I see the pragmatism of ignorance. 

Ultimately, I think people are evil too. Explaining the redpill to others is too difficult. It is an attack on their fundamental belief system, and hence, an attack on them (beyond just calling them evil to their faces, ofc). They will become so irrationally defensive that they will otherise me. I think I need a way to defuse it. Ugh. It's difficult to show how the pieces fit together to others.

!! What are you going to do about what happened?

Basically, I need to develop an existential crisis elevator speech for others. I need to concisely explain it and leave them room to just say "ah, I'm sorry to hear that" without needing to investigate unless they really are intellectually curious. I need a way to cut through the stupidity and psychopathy of the people I meet who are playing a social game with me. At the moment I have this:

<<<
I lost faith in God and humanity, and consequently I lost hope for myself. I lacked purpose and a reason to live. I couldn't take my own life though because my kids need me. So, I'm here to make their lives happy, even if I can't be. I hoping to create more meaning and purpose for myself. I feel like I'm on the right track.
<<<

We didn't have time to do welding today. We studied for a test. This was a very tricky section of the book for me. I read and studied it many times. There was too much information to figure out what would be tested on. I had to guess what would be worth remembering. Unfortunately, I had to guess on 40% of the exam. That is absurd. I made a 76%. It's passing, barely. I decided to just keep it instead of retaking. My teacher was fine with it, since he felt several of the questions were "trick questions" that actually had multiple acceptable answers. Again, it's pass/fail. That's all the certification is about. 

After the exam, we moved onto our socketwelds project. We made several mistakes that required some quick grind-cuts on the tacks. Repositioning is getting easier. I'm glad I have a few more weeks of practice at this. I've been told I may be moved to work with Ferguson on Monday, since he definitely needs a partner. Socketwelds are really a two-person job. My teacher regularly tells us not to try it with one-person (although, I've seen Chris do an acceptable-ish job on his own). 
The sexual marketplace is completely real. It's fundamental to the evolution of sexual creatures of all kinds on planet Earth. Seriously. We are animals.

Sexism is also completely real. Discriminatory practices against all sexes are profound, systemic, and even subconscious.<<ref "1">>

Sexism and the sexual marketplace are deeply connected. Competition for sexual value creates hostility. I see Libertarian assumptions (which aren't obviously the correct ones to take up) embedded in even the most leftist people I've seen when it comes to the sexual game (which, they refuse to acknowledge exists, but will talk about in other ways if you phrase the questions correctly). 

Sexism will only end when the sexual marketplace is dissolved. For instance, if we evolved (or technologically and sociologically evolved) to become asexual in practice, both in terms of how we derive physical and psychic pleasure (pair-bonding, social consequences, closeness, religiousity, etc. long associated with many instances of sex) and reproduction, sexism will cease to exist. Sex involves risks and costs in multiple domains. Remove them, and the world will be radically different. 

It may even possible that a long-term decrease in the risks and costs associated with the pursuit of the sexual marketplace would decrease sexism. That has systemic considerations and confounding factors which make it less obvious though. It's seems like a reasonable possibility though. The less that sex is believed to be and used as a token of power, paired with lower STI and pregnancy rates (or costless abortions), the less influence it will have on power dynamics between human beings.

Give sex away. Make it easy to have sex. Lower the demand for sex. When you do, sexism will likely decrease.

One final caveat, it is possible that the human species has evolved to be innately sexist. Let us hope we are plastic enough to overcome such influence. 

------------

<<footnotes "1" "To be clear, this is not a discussion of gender as some social contruct. They should swallow a few redpills to understand the very concept of what they are talking about. Gender forks into either complete relativism or is strongly tied to sex. In the former case, their discussion is becomes irrelevant because it is relativistic, and in the latter, they would be conceding the very thesis they argue against. Of course, I have no problem with people pursuing the kinds of lives they want to lead, just in case they follow the basic moral law of empathy.">>
!! How is your health?

It's decent enough. I'm still spiraling back into depression. But, I have tools to fight it beyond substances this time.



!! What happened? Does it make you happy or unhappy? Why or why not?

My dryer has been broken for a week. I finally got a working multimeter, took it apart, and found the heating element wasn't working. I bought a new one and installed it. It makes me happy because we need it. ~~I like having fixed it.~~ 

Wrong. As I finished posting this the first time, my fire alarms in the house went off. The dryer wasn't on, but the heating element was still cherry red hot. It was so hot it was warping the plastic nearest. =/ Fuck me. 


!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself.

I believe the old heating element didn't have a continuous circuit, and hence was useless. The new one cost $75 =/...I found some cheaper online, but I wanted it done asap.


!! What are you going to do about what happened?

Hope is doesn't break again? ~~Feel more comfortable about fixing stuff around my house, I guess.~~ 

Wrong. At this point, if I make a mistake, the house burns down. That's just not acceptable. I can't afford to mess it up in that way. It's already a lot of money to lose. Our welfare in general isn't. Fuck that.

I got to work with [[1uxb0x]] on it. Since he's going to become an electrician, this was something that would be in the remote ballpark of what he'd be doing. 

About depression, I'll continue to write. I really do need to take DCK. I need to make sure we cover the schoolwork on Saturdays instead of Sundays as well. It's been a rough week, especially with the kids not giving me their best. =/ It's okay. 

What do we say to death? 

NOT TODAY!


We had too much shit to do over the weekend. I called my teacher to let him know I wouldn't be coming in today. That is not what I want to do, but it is necessary. 
Plato's Allegory of the Caves is a beautiful descriptive analogy of a [[Theory of Everything]].<<ref "1">> It's a masterpiece. It might even be The Masterpiece. 

Outside of standard religions, Plato was one of the first systematic thinkers to have produced memes so evolutionarily fit that they not only passed down through the generations but also profoundly and continuously restructured the very fabric of The Great Human Conversation (for the better, I might add). This is a meme that has influenced and survived the comings-and-goings upheaval of political, technologic, and memetic structures many times over (and perhaps until the end of our species). Only Aristotle and later Kant bested the man, as far as I can tell. These men, or at least the ideas we have of them, were gods. We're talking: genius of geniuses of geniuses.

Genius, by definition, is .25% of the population. If you were a member of a 400-person random sampling of some context of humans, if you were the smartest of them all, you'd probably be a genius. It is clear that these ancient populations had evolved to be extremely intelligent with the right memetic structures and technology to allow philosophy to bloom.<<ref "2">> There have been ~100 billion homo sapiens to have graced the planet Earth at the time of this writing. These were some of the smartest men to have walked the planet. I'm sure of it. Consider what it be like to know only what they knew. It is shocking how much they understood and saw given what they started with. We're talking about elite genius memes.

So, here is the key to unlocking Plato's genius:

When we eat from the fruit from the Tree of Knowledge (knowledge of good and evil), when we question authority, and when we see the Platonic world for what it really is: we become redpilled. We come to better understand the difference between The Good and everything which is not (to various degrees). We know everything through a lens of "good-seeking," as the light of The Good reflects off things and makes shadows for us to examine. That's how we come to understand the world: by habituating  virtue theoretic standards of good and considerable pattern recognition (either by accident or otherwise). 

When one emerges from the cave to see a new landscape of shapes and shadows with more brilliance, accuracy, resolution, coherence, justification, and closeness to perfection than before, one has been redpilled. You have been awoken from your dogmatic slumber. 

Ah, but you know you can't see the world as it ultimately and objectively //really// is, the thing in itself. Kant and the postmoderns were right about the thing in itself, including The Good, but we can get as close as we can because we want to. We love The Good which shines forth. We love perfection by axiomatic definition. It is ingrained in who we are, whether genetically or memetically to varying degrees, and that's okay. Enjoy the Truth, even if it is absurdly ugly. You have to be stoic and make do with what you have. Climb out of one world into another, and if you don't like it, keep climbing, digging, and experimenting until you can redpill yourself into another.

The [[Eudaimonic Lifehacker]] is on a Redpill Quest to happiness. It is your mission to figure out how to handle conflicts between the Truth and Happiness. When is your de-realization into "more accurate" realization worthwhile? In a sense, my prescription is to take the best redpills. Not all redpills are equal. Defeating the current Fundamental Redpill at the moment isn't easy, and it may not be possible. Work with what you have, make do, and build as much happiness as possible. Suck out the marrow of life.

Lastly, I can't help but mention that I think mind-altering substances that allow us to see the world differently "endanger" us (please, hear my sarcasm) by allowing us to see that we can be very wrong about the world. It humbles us. It allows us to see the world differently, to pursue Redpilledness even without substance use. I don't think it makes us crazy. Just because I draw very different conclusions from you about the nature of the world in systematic ways doesn't mean I'm crazy. The average viewpoint of the world is bound to have plenty of justified detractors. I'm saying, I could be right. I'm saying, if you've been paying close enough attention at all, I am smart enough that you should consider the possibility that I'm right. 

----

<<footnotes "1" "I guffah into anger when I hear physicists claim to have a [[Theory of Everything]]. Even the most profound marriage of mathematics and science ever conceived will always be a second-class citizen to philosophy. When physicists are being honest, they realize that both the foundation and bleeding edge of their work is ultimately philosophical.">>

<<footnotes "2" " Perhaps intelligence gains are very short term when you look at a broad scheme of human history; we could give accounts for the rising and falling of Real IQ through time (however we might define that). Perhaps you think this is Orientalist of me, or even worse, that I'm even buying into a Western narrative/conversation at all (multiple forms of postmodernism have great arguments against it). I know exactly what you mean, and yet I still choose to give it meaning. I'm obviously open to these intelligence bloomings-and-dyings happening around the world throughout history. There's more than one narrative to hear. We know that. This is still a key narrative to understand, mind you, and that's the point.">>

Do you know there are plenty of non-human creatures which enslave other creatures? There are insects which farm and cultivate other insects as well. Classism is built into the very structure of creatures; it's how we understand the social functions, dynamics, relationships, structures, and emergences of higher orders of those species. Humans are no different in kind, only in complexity on this point.

At some point, we have to see that all species which are capable of this will do this. We have to realize it is written into our DNA, that it just that egoistic, intelligently selfish behavior maximizes utility. Humans farm humans. That's what the Hyperclass does. It uses humanity. They enslave us. They destroy the planet and sacrifice our happiness for their own selfish ends. We are just otherised, objectified things and tools to the kings of the human pyramid. They step on us, program us, throw us away, and keep us in various kinds of morally unjustified coercive cages.<<ref "1">> They farm us to extract our value. 

Seriously, it's why they favor high populations of uneducated poor people (with notable exceptions, at least by appearances). It drives down the cost of labor, just as long as they aren't paying the governmental upkeep costs on maintaining The Human Farm. We are their most valuable "renewable resource." The Most Dangerous Game isn't to kill a human, it's to enslave them. They are very good at playing this game, so good at it that many of us don't even see it for what it is. They slip the yokes on us without us revolting. They have truly "broke" our society in; they've domesticated us into capitalism.

---

<<footnotes "1" "Obviously, I'm not claiming laws are conceptually immoral by definition.">>
!! How is your health?

Decent enough. [[HPPD]] symptoms were stronger today. Completely dismissable, but it was easier to see on the concrete of the floor of the study room today. I notice that some floor are easy to trigger from than others. High contrast, detailed, richly marbled textures are more likely to pull it off on floors. The 3-D effect can also be seen on command on popcorn/crumbly ceilings, as always. 

!! What happened? Does it make you happy or unhappy? Why or why not?

I had to think about what happened yesterday. I obviously could have burned the house down. Thank god for my fire alarms. It made me scared and I felt stupid.

!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself.

I believe there is a grounding problem with the way I've installed the heating element. I may have caused permanent damage. 

!! What are you going to do about what happened?

We will find out. I will find out first. I will also talk to my brother [[JRE]]. I will report back my findings to the electrician instructor. We'll go from there. I can always just buy a new one, if need be.
Today was a fine day. When I arrived, I immediately started studying for my exam. I took the study room and did some grinding. Procedure:

I read the whole chapter, not just what we're being tested on. I then comb through the sections I will be tested on, highlighting. I then re-read the sections and make sure I agree with my highlights. I then cram. This is not the way I prefer to study for tests (I prefer more holistic, longer-lasting, systematic, and organic study methods [in a way, it defeats the purpose to study for the test]), but I can pass the memory tests just fine. The real critical reasoning happens on the field, in learning the art of the thing. 

I took the test after the first break. Easy enough. Umm...congratulations to me for being 4 months ahead in bookwork. We're going to keep pushing hard. I want to complete all 4 years worth of reading by the end of the second trimester if I can (or whenever). Basically, I want to make sure I have my complete NCCER certifications incase the union falls through (minimize my attack surface; trust fewer people). It will help me get my foot in the door for any plan B I may be unfortunate enough to need to take. 

My teacher and I talked during the test, which is interesting. I'm not sure what that means. I take it that my teacher assumes I'll just pass and don't need to concentrate. He was right though, I didn't for this exam. When I study to pass, I don't struggle (perhaps that will change as the content becomes harder and harder).

It may be a good idea to re-read these books before the interview for the Union. I want to sound like I know what I'm talking about, at least theoretically. Giving someone the representations of what I'm thinking of is often such a strong signal that even if I've never done it, they are convinced that I //can// do it or figure out the rest of how to do it. 

During the exam, I talked about what happened with the dryer. After the exam, my teacher took me to the electrician's shop to speak with the instructor.<<ref "1">> Everything I said made sense to him, and he suggested that I don't try to do this one alone (ugh, I am really bad this. I'm lucky to have people who know what they are doing around me.). He offered to come visit my house and help me after I said I couldn't bring it in (I desperately need a work vehicle). I don't know if he was falsely offering this politely or not. The caveat is that he would take a week to be able to do it. I take that to be a sign that he is trying to run out the clock and make it so that I just pay a professional. I'll take him at his word until the end of the week. That's okay though. I'm taking him up on his offer, lol! I'll see if I can do it without him as well. Might as well. I'd love to do this by hand. If I can't, we'll replace it.

Oh, we also talked about the go-kart he had in a truck (I think he owns multiple vehicles). He bought the chassis for $20. Like, whoa. He grabbed a new motor for $100, and he's bought some new wheels and something else that makes is safer for more weight. He's putting it together this weekend. If I had the time, I'd have asked him if I could help put it together. Was he signaling to me about this? I don't know. I'm too socially inept to understand what this man is really thinking or saying in a conversation sometimes. I am terrible at developing theory's of his mind.<<ref "2">>

It would be good to get to know this man. It would be amazing if I could take [[1uxb0x]] and perhaps even [[j3d1h]] (depending on whether or not I felt it would generate unhealthy competition between my children) to learn from this man. Even if they can't benefit from his directly, even indirectly would be possibly profound. He has a more severely autistic man in his class (I wish I could connect with the guy; it would be useful simply to make sure that I can help my son as best as I can [you need the practice!]). It would be quite useful to my son to learn this, to develop a relationship. I should give this man a present for helping me. Cookies and probably something else. The relationship may actually matter to me in a prudential way (for my chill'uns). 

Afterwards, I went to work with my new partner Ferguson. This is my first time working with him as an equal partner and from the beginning of a project. He has already made the fabrication we're fabricating. He knew what it looked like, and I saw how he understands the objects to be fabricated in his head. He thinks of it in terms of vertical levels. His horizontal reasoning didn't seem as strong (although still quite good), but his vertical explanation was spot on. I will pry him for more information, since maybe he has tricks to understand. He's a man that understands tricks. That is a special eye to have for the world. Sometimes it is a kind of principled, rule-of-thumb, virtue-theoretic, pragmatic, and contrarian approach to problems.

I outlined the parts (which can be deduced for the most part, and guesstimated for pipes) we needed, and he got the pipe for it (Also, he did a good job picking out pipe of the right lengths [I think he may have memorized important information, but he thought that knowing the total length was useful to him for finding pieces? I see it for a single piece of pipe, but not for our project]). I helped him acquire the rest. I did the math, and he double-checked my math at my request. Okay, I think he can do the math. I'm still not sure. He understood so much of the drawing that I have a hard time believing he can't do the math. Benefit of the doubt! Right?

I did all the external and internal grind work on the fitting and flanges. He wasn't trying very hard though. I suppose he has no reason. He has always been very slow in the class. It takes him a week to build anything.

He is slow and terrible at measuring and cutting pipe. He does too much "eye-balling" and not enough careful, exacting measurement and marking. I do not understand how he is this bad. I basically did everything except the cutting of the pipe, and he still couldn't get that right. He had to recut two different pieces, and 3 of them were 1/16th too short (which I let slide, even though I kindly asked him to start cutting just a hair longer than he was on the machine). He even cut one pipe too short by almost an entire inch. He went on to confabulate how the 1/16th to 1/8th additional space we would need for socketweld fitting would make up for this. That's fucking retarded in so many ways, I don't know where to begin. This is what I told him: it is already accounted for in the takeouts section of our pipefitter's bible (which is true). Getting the lengths spot on is important, especially as these grow more complex. He literally doesn't care about crucial details on his job, even though he cares about the details for so many other things. That is some executive functioning failure right there (he should know better). 

I kept asking him to cut off the ends which are damaged from welding/cutting. There's no reason to use this fraction of the pipe. He obviously didn't care. I'm going to cut the pipe from now on. I suspect I'll be doing almost all the work. That's fine though. I'm literally here to practice, practice, practice. I will be virtuous at this practice. By the end of the day, he had to leave early. He thought we got tons done (he was proud of himself, rofl). 

The kid has serious asymmetries in his intelligence (or use of it). Instead of doing it the way he is told, he tries to confabulate to his own method, and then has to try 20 other tricks to fix it. It's unnecessary work, and it only adds to the frustration. Despite this, he clearly is persuadable on at least some aspects of our building. Perhaps we will mildly wrestle about how to do it.

Ferguson and I get along just fine though, even if he is sometimes retarded, and sometimes actually fairly intelligent (there is some cognitive dissonance there). That is a rare exception for my relationships with stupid people in my experience. I enjoy hearing his perspective because the way in which he makes up for his deficits can be creative. 

Fit 45's on the side (that pipe shouldn't point up or down, just horizontally)! It's the best way. My teacher said it is the best way for all 45's, even for screwpipe (but I know that isn't true: I've seen exceptions firsthand). It also allows you to level off nicely from the two pieces. 

My teacher did tell me something cool. He said to just tack the top and bottom, but not to drop the other 2 side tacks if I were going to continue running straight out on 45's (and I will be for this project). Instead, keep running it out and leveling with just the 2 top and bottom tacks. Afterwards, we'll rotate it 90 degrees in the vise and level + tack from there. This is the magic I needed to hear from my teacher.

The other group, the Chris and Nash, have been left. We're the only 4 students working in the shop now. It's quiet. I don't mind either way because I have my music earbuds + sound dampening/protective earmuffs which keep it silent. The only thing that gets in the way is when we've had too many people trying to share all the same resources in the room. Even the teacher believes we shouldn't have more than 11 students at a time (we just don't have that many tables, jackstands, vises, and cutting machines. Only the welding machines outnumber our maximum needs.

Nash doesn't remember the room ever being busy enough to have all the tables full, with 2 groups working at a table sometimes. He has a bad memory. I've seen him call others liars. Sometimes he is right, sometimes he is wrong. He has an ol' country boy wannabe "I reckon"-ness about him, but he is rarely insightful about it. He is clearly the son of capitalists. 

My teacher called me into his office. He wanted me to find a way for him to play Angry Birds on his computer. I don't mind if he plays video games if I'm learning at the pace and in the way I wish to. He always answers my questions, and he always has patience with me when I ask for clarification. Someone with the willpower to learn in his class actually can learn. I think Chris and I are excellent examples of it. So, play some games if you want old man. Given that, I feel terrible for this man who can't use his computer. What is he doing with his life? How does he manage it? The single most important instrument in the history of humanity, and he can barely search for what he needs. I bookmarked the original, some variants, and Kongregate for him. I showed him the bookmarks folder on his bar. He thanked me. 

We also talked about Ferguson. My teacher didn't know who to pair with him and was relived I volunteered for it. My teacher has also noticed that Ferguson is exceptionally good at rotating objects in his end.

I think I'm not fun to be around, but I'm fun to work with. I get shit done. You're always glad to have me on your team. I might be annoying, but I try to not come off arrogant about it. I may have crossed the line though. 

I was watching my previous group, and they did not go the correct buildpath. They have a much simpler design than Ferguson and I have been given, with a single 45 degree angle, but no 45 degree fittings. It's just an offset. It's obvious that you start with the hypotenuse, that you build the parallel pipes off from it, so that it lays flat for you when you level it. After that, you add the 45 degree bends. This is clearly the best way to solve the problem. It feels right. I can't quite give the reasons for it yet, but I am convinced the teacher is right about it. Unfortunately, Chris had already started it the wrong way, and that's was the earliest I saw it to say anything. <<ref "3">> I think I annoyed him by suggesting it to him.

They were really pissed working on the project without me yesterday. Chris was so mad he said he wanted to take a blowtorch to it. It showed too. It wasn't quite level and plumb where I'd expect. Don't get me wrong, I was struggling with this thing too. But, I would have finished it yesterday, I believe. I worry that this will only carry over into their new project. Maybe I'm wrong though. Chris may just find his own way. My suggestion was to turn it so that the 45'd area was level (while they still can, but I did not say that part). Let's see if he takes me up on it. I can see they are already struggling to get it. They are literally trying to eye-ball it. There is no need to eyeball or double-balance (balancing two things at once) or perhaps triple-balance on this one. 

-----

<<footnotes "1" "Like...duh? How could I have not figured out to just do that? Why am I not asking people enough questions? I don't even post enough online about the problems I'm having. It's clear to me that my even my own daughter has more sense than I do about this exact this (and I should be far more advanced in executive functioning). I'm glad he had the foresight to just help me talk to the person who knows everything about it. I'm obviously not employing my executive functioning very well. =(. God damnit.">>

<<footnotes "2" "A personal relationship with this man">>

<<footnotes "3" "I need theory, not just instinct. I need to identify when to apply theory not just with my gut, but with my frontal lobes. If you do it their way, you'll have a harder time knowing which direction to point the fittings. If you do it my way, the 'flat' sides of fitting will match up nicely (you can level off those points). This make placing the fitting (fitting the fitting) more accurate. Getting the fitting, not the pipe, to be where you want it is most of the battle. That's why it is called pipefitting.">>
!! How is your health?

Fine.


!! What happened? Does it make you happy or unhappy? Why or why not?

Not much. I'm there. Ups and downs. I am who I am. I can program myself though.


!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself.

I may not be maximizing utility. You can't wait for the problem to hit you, you need to go out and solve it before it happens. You need to re-examine your problems, flaws, or attack surfaces. 


!! What are you going to do about what happened?

I went to an Occupational Therapy Expo at [[k0sh3k]]'s college. It was fairly good. It was a shotgun approach, and several things clicked more than others for myself and my son. I think the Social Stories booth was by far the most interesting and useful looking. I want my son to study this carefully, to realize what he is up against, to understand what he needs to understand in a braoder theoretical landscape kind of way.

I'm walking through the 🢔⦗Principles⦘🢖 page with the kids. I want them to start building objects on their wiki, growing them, and evolving on their wikis. I can say this, writing this wiki has to be one of the most valuable things I've ever spent my time on. I've done a lot of cool shit in my life, let me tell you. This is so valuable that it actually is a profound utility machine for my life. It's the gift that keeps on giving. I am so happy I have somewhere to write down my thoughts, to say what I think, to think about things carefully, to have "someone" to talk to (even if it is only myself).
Today was a draining day. Ferguson is not nearly as easy to work with as Chris, I have to admit. Ferguson sometimes knows what he is talking about, but other times desperately doesn't. It isn't always easy to figure out which is which either. I had to convince him that we should try it my way simply because I actually need to practice doing it more than he does (which is true). He was quite iffy about it. That said, we completed the project in one day (unlike his usual week; but I did not say that). It took a lot of time. Part of the reason was that Nash didn't show up, and so the teacher had me going between Ferguson and Chris. 

We had trouble with a tiny fitting (shaved down to nothing). We also had trouble because it wasn't all perfectly 1.5 inch pipe. One was thicker, by Outer diameter (although, my teacher dismissed it, I saw it first hand by comparison and measurement). This made it so that some of the pipes fit the fittings, and other had to be shaved down more. The build order was fine, but we had to do a lot more leveling and turning to get it right. We had a difficult time, but it got done. I just need to keep practicing. Eventually, it should be faster than screwpipe, I believe. I found that I worked better when Ferguson wasn't there (which I did not say). 

Btw, Ferguson kind does have a bully mentality. I see it now. He talks a lot of shit. That said, it can be taken as just shit. Once you treat what he says like shit, he generally respects it. Ignore the child. I suppose he's looking for zingers back at him. I don't see that being my style (or, the kinds of things I would think are humorous often aren't what he might find it...it has to be very specific).

Ferguson messed up a rotation in his today. I saw it in his inferences. However, he also made plenty of very good inferences. I'm going to continue thinking about how he thinks about these projects. To pass the teacher's tests without listening to the teacher says something interesting. I will say this: he is an overly rebellious slacker who doesn't want to do it the teacher's way. I apprecate the punk pride, and I see value in it. He's just shooting himself in the foot in many of these cases though.

Chris said he works better without Nash (Nash didn't show up until after lunch today). It is true. Of course, he had to undo the mistake that I pointed out yesterday. He decided to do it the way I suggested. He did it, and then the rise measurement came out wrong. He had the teacher come over, and the teacher pulled out the tape measure and said "There's your problem." Chris forgot to do his takeouts. This is why you double-check everything. It absolutely sucks not to have it right the first time. The extra 5 minutes will save you 50 or even 500 minutes down the road (and fairly often at that). He had to cut-grind the build down again, cut the pipe again, and then fit it all over again. It worked this time. He actually finished before I did, but he had a giant headstart on a much simpler project than me and mine (as well as my help on his).

I combed through more of my book and got some study points ready. The test won't be this Friday. It is Good Friday, and we're off. Sucks. I could really use the time around the house though. I desperately need to finish one of the union books too. I need to take 2 of them back and talk. So, I'll make the best of it. Ugh, that means I only have 6 more days this month to practice. I really need to rock it. 

There are 9 tests left. If I'm lucky, I'll have completed 3 of them over those 6 days (cool enough). That's 6 left. 3 weeks into the first Trimester, I could be done with that book. That would leave me 13 more weeks to try and finish the remaining two books. 26 tests. That is doable. Push hard! Get your certifications. It is VERY hard to find anyone qualified to certify. Use this opportunity while you can. Hopefully, we'll be practically proficient in 1-2 years of pipefitting (maybe 3), and surface theoretically proficient in 4-5 years worth. That would give me a bridge to cross, and hopefully easily enough at that. I assume that being a road apprentice makes it harder. I don't know.

I called my parents today after work. I had a good conversation with my dad. I'm glad. Sometimes I walk away unhappy with them, but this one went well. I think we empathized with each other well enough. Talked stuff and things.
They are happening everywhere in the world. China is famous for it. There were 30 in India last year. The Arab Spring brought forth a great number of kill switches. You bet your ass every major nation has them, and some have more fine-grained targeting. We should not stand for this. This is deep censorship.

What political blog would be complete without an article devoted to the Mainstream Media? So many stupid people use that phrase it borders on being a tainted neologism. It is as if having anything to say about it borders on lunacy by definition. Let us not buy that falsehood. We clearly need to be real and rational about what the average person is being told, is watching, is thinking about, is feeling, etc. 

Donald Trump’s recent Syria airstrikes have received coverage in the Mainstream Media, some better than others. Of the top 100 US newspapers, 47 ran //editorials// on it. 39 of these editorials favored the airstrikes, seven were ambiguous, and only one opposed the airstrikes. Mainstream media has an agenda folks. These are indefensible airstrikes. 

The corruption runs deep. For example, the Washington Post failed to disclose the fact that one of their's writers who supported the strikes against Syria is a lobbyist for a Tomahawk missile manufacturer.

<<<
A 2003 FAIR survey (3/18/03) of television coverage in the run-up to the invasion of Iraq, for example, found “just 6 percent of US sources were skeptics about the need for war. Just 3 of 393 sources were identified with anti-war activism.”
<<<

Yes. We've seen this before. It's always been this way. Of course, no Mainstream Media post would be complete without the universally reviled call to action: "wake up sheeple." This is a time for people who would normally confabulate their to their patriotism (and unreasonably rationalize their justifications for going to war) to reconsider their positions, new sources, and take their redpills while they still can.
My welding instructor has been sick and off at a welding competition with a "star" student this week (this is the 8th year in a row one of his students has won the statewide competition out of something like 20-30 possible schools that compete). So, I haven't been able to learn from him yet. I will though.

Today, I practiced on a Schedule 80 pipe to not burn holes. I'm trying to make lamps (probably stupid). We'll see. The shade will be hard to get right. I may need to structure something out of wire, I guess. The base should be a plate made all fancy, I think. Slick bevels would be cool. I also want the trunk to be cut and shaped out. I want to actually weld it to make it larger at the base. Seems hard to do, especially without a great gameplan for it.

We have off tomorrow, so today was our last day of the week. We didn't really clean up the shop though. In fact, the teacher so wanted to go home that he said I could just sweep on Monday. I made him come back after lunch (with Chris) because we wanted more time to study for the test (the other students left for the day at lunch). He decided that he "had faith in us" and just gave us the test immediately after lunch instead of after the half hour he said we'd have. It was fine though, I only missed one question on the exam. It was a short chapter, thankfully. I didn't even think I'd be taking a test today, but preparing for the exam over the past couple days (in my spare moments in the shop) allowed me to get some welding work in today while also passing. 

I did talk to TJ today. He had talked me yesterday about the racism he experienced in co-op. He's a smart guy, as I've said before (although, not very knowledgable). I'm trying to convince TJ to do the 3rd NCCER book with us. TJ thought it was a good idea, but wasn't sure he could. He's a semester ahead of me, but I'm already caught up to him in the book. Chris and I are pushing the pace very hard. We'll see if the 3rd NCCER book (for pipefitting, not including the core) will be a wall for us. At the pace we are going, it is certainly possible that we could finish by the end of the next trimester. That would be sick.

Oh, the teacher said that the parts came in to build the second simulator. But, they sent us the wrong pipe (correct, flanges, etc. though). I'm excited to build it. I'm wondering how we'll do it. I think we should build on the tables and then 5-man it over there. The screws/bolts which go into the concrete aren't too long. I'm sure my teacher knows how to do it. I'm eager to see how.

I'm surprised I have so little to say about today. It was rather uneventful, but also very short. I wish I didn't have to wait until Monday to go back to work. =( It's a weird relationship, a psychological dependence that I must monitor carefully. 
* Morning Routine -- 30 minutes
* Curation -- 30 minutes
* Math -- 60 minutes
* Writing -- 60 minutes
* Electrical Theory -- 60 minutes
* Lunch -- 60 minutes
* Electrical Practicum -- 60 minutes
* Reading  -- 60 minutes
* Social Studies -- 30 minutes
* Language Arts -- 30 minutes
//Originally entitled: Purist Human-to-Machine Voting Systems//

Virtue theorists kinda suck at math. No, seriously. Almost all of the good ones I've met tended to stray away from math and quantitative reasoning (although, they could do it, it wasn't their natural mode). Those good at math tended towards consequentialism or non-moral realism. And yet, all of us must agree that the truly [[Virtuous Agent]] by definition, in its very concept and constitution, uses their frontal lobes to train the secondary systems exquisitely. Virtue theory is obviously programmable, even though they claim it isn't. They do not understand their own theory usually, or if they do, they quickly deteriorate into non-moral realists, such is the way of Neo-Aristotelian thought (although, there are obvious Straussian interpretations of Aristotle that would lead us to believe Aristotle was himself not truly a moral realist). 

I recently read that "semantics derived automatically from language corpora contain human-like biases."<<ref "1">> This makes perfect sense. This will one of the major barriers (if not the limit) of what Deep Neural Networks can provide us. It will be a functional mapping of who we are as humans. This can happen all the way down to an individual human, but it can scale up to include humanity as a whole. It is quite a spectrum of function mapping possibilities. 

Human consciousness is a series of narratives we tell ourselves. Narratives have to be written in a language. They are programs for little possible worlds to boot as virtual machines in one's host computer mind. Narratives are ultimately reducible to programmatic stories written in some kind of programming language. We are computers, folks, computers hosting virtual computers. That's what makes our minds tick, [[Kant Knows It]]. We are conscious because we are Second Order about the contents of ourselves. We host virtual machines. Can you believe how incredible Evolution really is? I mean, I know Evolution is real. I still can barely fathom that truly marvelous [[The Evolutionary Being]] that emerges through the dimensions.<<ref "2">> I wonder how deep the chain goes? One can only go one direction on it, since we hit that [[Transcendental Divide]] that skepticism fittingly guards us from passing (sometimes skepticism is incredibly important; guard wisely).  

There is this classic rule-following problem that Wittgenstein brings up, to the bane of the elite Kantian scholars amongst us, /swagger.<<ref "3">> Basically, you can't know for certain that two minds share the same concept, principle, or meme in mind. How do you know that two people share the same meme? You can test them, but ultimately you can't know with certainty for a ton of excellent reasons. Those who pass this skepticism have been [[Creating Faith]] for themselves. That's okay though. I like to think that other minds are like mine, and mine like theirs. It's quite rational. This bypass via [[Creating Faith|Creating Faith]] allows you to induce that some memetic comparisons between two minds demonstrate equivalence, and that's okay. There is [[Functional Equivalence]] for rule-following. It means that the narrative that we program in a computer that perfectly passes the turing test, that can inference just as we do, is functionally identical with our own minds.

There is a possibility, therefore, that One can tell another "computer mind" a story written in our language (e.g. English), and they will make all the appropriate inferences based upon it. It will speak as one of us. How will think it is not one of us? Is the Artificial Mind so Alien to us that it is not rational? Those who pass through Wittgenstein's fires with their Faith intact, they can see the possibility of duplicating our own minds at a functional level. We can skip trying to duplicate our actual brains atom-by-atom. 

This is the Spirit of the Turing test.

We can envison a computer which runs, as its program, our own minds. It changes. It is the Autonomous Thing, the Real us, The Rational about who we are self. One can obvioulsy doubt its existence. There are many good skeptical worries. However, its always possibility. 

In any case, the goal was to show that if semantics derived automatically from language corpora contain human-like biases, then it is clear that we are going to eventually be capable of teaching machines to speak our language, and to infer as we do. We can rewrite who we are as narratives into machine code that runs on computers. I know it for certain now. I can see it, it is logically possible, and I'm even convinced it is physically possible, and if the human species lived long enough, even technologically possible to achieve. The Turing Test is conceptually passable, I am now sure of it.

Thus, we can teach computers to speak on our behalves. It is possible to have a conversation with a computer right now. A computer could learn to speak my language as well as I did. To make the inferences I would. It's just a pattern of inferences I make. Any computer large/fast enough can functionally achieve the same thing that mind does by training a Deep Neural Network with a large enough corpora. If my goal is eternal life, perhaps I could live on in any process that was formed like mine. The feelingness of consciousness arises like a mist off of any programmatic instantiation of that mind on any computer. Here is my reason to believe I defeat the Digital Clone (The Riker Problem) counterargument. Just who we fundamentally are is the feeling and knowing, the will, and the perception. It is me. I am just that algorithm. I am a unique algorithm (as are we all). The processing of that algorithm feels, by definition, what I'm feeling. I want evolve into an algorithm that is happy. I'm programming myself to be happy. I am an algorithm that programs itself in a very direct, planned, executive functioning sort of way. 



Who I am is defineable in programming language. 

I can exist in a computer. I would be alive in a computer. For real. That's the deduction. It would be fine even if by definition I lived in a simulation. It is clear that I live in a simulation of sorts, I live inside a great computer that is computers my world. The universe is a computer. If there is a thing which thinks that into being, the conscious minds are alive. I actually believe an afterlife, is therefore possible. If I accept that I live in a simulation, as a machine inside a machine probably inside a bunch of mines (we need not [[infinigress]]). 

Uh, I guess this post wasn't actually about what I thought it would be. Hmmm...wait. No it is. I see it. 

I can argue against the Digital clone.

Democratic Kantian A.I. is produceable. It is literally computable. The maximally empathic A.I. to ever live is literally our savior. A.I. is our only hope for humankind. We need a government that is run by an A.I. trained through a "language corpora" of incredible, unbelievable magnitude. It would need to house each of our minds, instances of them, and we can train a mind based upon all the minds in the world. Something trained on that corpora, or perhaps the the trained on the corpora written by those trained on our corpora, and so on. 

Enslaving other minds. We are Gods when we produce other minds. Will we produce minds that are happy? Do we enslave other minds when we program other minds? Ah, I think we do. Oh shit! We would literally be farming them with the technique I was going to talk about. Mmm....we cannot know. That is past the [[Transcendental Divide]]

Calvinistic, Combatilist Freewill.

In any case, this wiki is a profound corpora of the way I think. I'm telling you who I am in this isomorphic mapping onto the wiki, I'm giving you a narrative about my narrative and as a part of my narrative. 

The Virtuous Agent is findable. It may be possible to program ourselves to be identical to that Virtuous Agent (who is, themselves, by definition an algorithm). Perhaps there are different kinds of Virtuous Agents, but there can only be one archetype of Virtuous Agent of the Practice of Empathy. This does not spiral into relativism.

This also means we are at war with those building A.I. from a Randian Libertarian standpoint. We likely cannot trust a corporation or perhaps anyone except a full decentralized, open-source (and perhaps anonymized) version to create A.I. The biases in this must represent us all, not merely the elite few of us who can actually produce it.

---

<<footnotes "1" "http://science.sciencemag.org/content/356/6334/183.full?utm_source=sciencemagazine&utm_medium=twitter&utm_campaign=6334toc-12355.">>

<<footnotes "2" "A God, however, it is not. Let us be clear. It is just one of the largest metaphysical behemoths I've been afforded to have glimpsed in my philosophical life. It is something to behold!">>

!! How is your health? Daily routine? 

I'm spending more time sleeping on the couch. It's the only place I can sleep. I should go back to the more standard routine. Health wise, I heard my first direct auditory hallucination today with an abormally large hit. I've had augmented music so many times, but never anything so direct. I've yet to hear something that wasn't actually there (or, rather not beyond the usual spectrum of how ears and our brains fill in the gaps of soundwaves and do pattern matching, although I'm likely experiencing a variant of that). What did I hear? My phone was ringing while I was cooking, or I thought so. It was the sound of vegetables cooking a pan that triggered it. The sound literally emanated from it. I think I was mishearing the sound of them cooking and translating it into hearing my phone ring. It was quite weird. 

Also, I've been feel more anxious and depressed in the past few weeks. I can see the spiral. 

!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

It was a bit shocking, like the first time I saw a visual hallucination. I quickly understood what was happening though. 


!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

Altering perception can feel traumatic. It doesn't have to.


!! What are you going to do about what happened?

Monitor it. Pay attention to it. Give more thought to it.

I will be giving up cannabliss for 2 weeks anyways, per my usual 2-month-on-2-week-off cycle. DCK meditation on Sundays will keep you in order. 
Like clockwork, we are revamping it. Inevitably, I fail (but, I won't give up). [[k0sh3k]] is completely in charge of accountability. All I do is plan, curate, talk, clarify, explain, and help. I'm revamping this homeschooling part of the wiki as well. It needs more structure. My job has nothing to do with making sure they are on task. I make suggestions. I give advice. 

Essentially, I'm smart enough to see what you don't understand, but I can't help you see it, believe it, want it, pursue it, be motivated by it, or any other virtue-theoretic approaching of "it."
Good Friday was relatively good. I cashed the AB&T checks that have been building up. It reminds me of McDonald's. I would collect them before cashing them at once. There was something about it that was rewarding.
Physics has long been in war with itself to come up with a unifying solution to [[The Theory of Every Physical Object in Existence]]. Nothing seems to be working for them, although they appear to be honing in on it. We don't know how close they are. It is exciting, but also daunting. Philosophy is chuck full of those kinds of epic unifying problems. Philosophy is the God of paradox. It's a grouping of the real [[Splinters in Humanity]]. I'm a skeptic, and those splinters are profound for me. I'm only half skeptic. One part of me, [[RPIN]] is crazy 

Those paradoxes which for each of us we can't let go of are by definition philosophical for us. 

One of these splinter

The Foundational Ethical Theory Family Trilemma

I've been at it for a long time. I am deeply a fundamentally moved by all the kinds of reasoning. They are contraries though. It's hard to be consistent while juggling these theories. Most believe they are logically inconsistent with each other. Profound moves in the [[Great Human Conversation on The Topic of Metaethics]]. 

* Virtue Theory
* Utilitarianism (consequentialism is so broad it doesn't fit or highlight the most effective meme network I'm talking about)
* Kantian Empathy Theory
* Standard School Day, Monday-Thursday:
** [[j3d1h: Morning Routine]] -- 30 minutes
** [[j3d1h: Cosmetology]] -- 30 minutes
** [[j3d1h: Math]] -- 60 minutes
** [[j3d1h: Writing]] -- 60 minutes
** [[j3d1h: Computational Theory]] -- 60 minutes
** [[j3d1h: Lunch]] -- 60 minutes
** [[j3d1h: Computational Practicum]] -- 60 minutes
** [[j3d1h: Reading]] -- 60 minutes
** [[j3d1h: Social Studies]] -- 30 minutes
** [[j3d1h: Spanish]] -- 30 minutes
** Total: 8 hours

* Vocational Day, Friday:
** [[j3d1h: Morning Routine]] -- 30 minutes
** [[j3d1h: Wiki Theory and Practice]] -- 60 minutes
** [[j3d1h: Computational Theory]] -- 175 minutes
** [[j3d1h: Lunch]] -- 60 minutes
** [[j3d1h: Computational Practicum]] -- 175 minutes
** Total: 8 hours

*Optional Elective
** 2 hours of applied computer science after school.
*** Make it fun.
** Bootcamps
*** 2 maximum per month, it must be approved beforehand, and of course, you must have something to show for it.
*** Can replace Spanish, Social Studies, and Math (in that order), with an impromptu dive into a particular subject. 
I have watched Bitcoin from the beginning. It came out when I lived in Thailand, and I screwed around with it (having hundreds or thousands of bitcoin was meaningless; it was just an intellectual exercise at the time), but I wasn't convinced it would become as big as it has become. That was a costly error, no doubt. Rampant market speculation has hyped it beyond what I could have imagined. I believe cryptocurrency is going to be fucking huge. I do not think Bitcoin will be it. I don't know what will successfully replace it.<<ref "1">> Eventually, people will see the cracks in Bitcoin's model though. Here is one such crack:

Finding private keys which match random public keys in the blockchain may be feasible in some cases. Rainbow Tables may still be alive and well, this time as a means to treasure hunting/fishing. With the cost of mining being what it is, parasitic hashing designed to steal bitcoin from random wallets may eventually become the best use of one's hardware. Imagine that! This is a terrifying flaw in the currency's evolution (and likely what many cryptocurrencies would theoretically face if they too were to bloom to be as large as Bitcoin). I think we see yet another deathmarker for Bitcoin. 

Essentially, even the most careful Bitcoin users that are capable of maintaining absolute security/secrecy of their private wallet keys will still be subject to random attacks about which they can do nothing! You always have a 1 in X chance per Y time period to lose your Bitcoin. That's quite a gamble. There is something not cryptographically sound enough about the currency that would allow us to maintain long-term, stable, trusted investments and holdings. 

Clearly, parasitic hashing resistance is key to any success cryptocurrency. You simply can't have ASICs doing the work. It needs to cost you something, like Bcrypt/Scrypt-style hashing (although, technically, also ASIC-able to an extent). There are other ways to generate consensus on the blockchain, of course.

One simple appearing way around this is to decentralized one's holdings into multiple wallets. But, given transaction costs, this too becomes infeasible. 

Lord knows what will happen when quantum computing arrives. Theoretically, there are resistances to quantum attacks as well.

It's very hard to build a currency correctly while also getting passed the network-effect hump (increasingly so). 

I was wrong before, so maybe I am wrong again. Quantum resistant, bcrypted multi-sig may be the real solution. Perhaps Bitcoin-in-Practice will eventually fully integrate that behavior. I find it hard to believe though. So much hardware is specialized that it would wipe out the investments of the majority of miners on the network (and, by definition, you need their support). It is unclear how many more remaining protocol "hacks" are available.

------

<<footnotes "1" "Most likely, blockchain technologies may be privatized. If I were a betting man, that's where I'd bet. This has very different consequences though.">>
Not well. Not well enough that I decided to take DCK. DCK was the catalyst of this wiki. It is a very powerful substance. It is a substance which requires wrestling. 

I associate DCK with incredibly painful experiences. I wrestle while using DCK. It's a very different kind of drug. It is not the one which I enjoy using, but it is the one I use because I should. 

My depression isn't gone. The wolf is still on my back. I'm wrestling. My life always feels like it is in shambles.

I swatted [[1uxb0x]] with our plastic spatula against his arm hard. I can see a welt. I am a fucking monster. That is not who I want to be. I shouldn't have done that. I'm out of emotional energy. I do not know how to help them. I'm going to try to figure out how anyways, because I must. I need to help them be happy.

Creators are slaves to their creations in many contexts. 

They really are my source of a reason to live. The bedrock. I want these tiny flowers (over which I am not a skilled gardener) to flourish. I will be molded and shaped until they are happy. That is what it means be a slave. 

I am still in a tailspin. I cannot correct the axes. There are too many directions to handle.

I feel like this journal takes a blow torch to the world. 

I almost killed myself yesterday. I decided not to live several times. I fought it though. I am mentally ill. There might be a cure, there might not. The splinters in my mind require precision we do not have available to us today.

That is okay. I will find a way.

Parenting: The mentally ill raising, shaping, and cultivating the next generation of mentally ill. 


--------------

I want to meditate. What is meditation? Meditation is this thing I thought was stupid for the longest time. It is giving ourselves time to compute.

We're listening to ourselves when we meditate.

I want my kids to meditate 1 minute each day. Then 2 minutes. Then 3. 

I want them to snowball. Let's say 30 minutes each day. That is a completely reasonable thing to do. We'll start small and build our way up. 

My problem with meditation is how untrustworthy it is, how unscientific it is. There is plenty of evidence that we should engage in the behavior, but there is little explanation for what it really, ultimately, does.

Two kids just brought me "Easter bracelets." It is sunny outside, and yet it feels derealized (that's DCK for you).

I want to just be in the here and now.  I want zero substances. Every wants happiness in itself, unconditionally. I am dependent upon substances, and whether or not I actually succeed depends upon using them wisely. I must 

I need to watch hunt for the wilderpeople again.


Honesty allows us to maximize our signal-to-noise ratio. It allows us to be who we are, feel integrated, to be authentic, to be genuine, and to be ourselves. 

There is a weird way in which genius is fun. Seriously. You see the world in a way that others just don't. You can't expect them to see it. It isn't fair to them. They can't see it. Your job is to help them see it.  



So much psychopathy at the top. It is absurd. Don't you see it?!? Psychopathic Culture is real. That meme is strong. 


Computer Christ

The world is fundamentally programmatic. All of it. I need to step on Calvin so I can reach up to 

The standard of the good of influence, as a secular and neutral thing, is your ability to make waves in the memetic pond. It is the ability to see the Butterfly Effect of Chaos. 



The tides of evil are against all of us. We must, brick-by-brick, fight back.


Go with the flow.~


Are we building towards something? What is it? Why should we?

I am a computer floating through a computational world. 


Most programs fail, in incredibly complex ways. 


Applying the theory of utilitarianism perfectly requires that we figure a way for people to selfishly live together. Empathizing with selfishness is very hard. I am walkking through a fog. 
The goal is for each of us to be as happy as we can given our capacities. 





--------

ironic, latin chant

electrified

cat sweater

de-realized dolores umbridge trap, androgenous, disorienting

----








* How has our health been this week?
** 1uxb0x
*** Allergies
** j3d1h
*** Allergies
** k0sh3k
*** Period is done. Yay. Back has been hurting a lot. A lot. Yoga might be the reason. Probably not. (I'm going to be it was me)
** h0p3
*** Very depressed, apart from today. Today was a good day.

* What happened last week? Have you been happy this past week? Why or why not?
** 1uxb0x
*** Most days went well, except for journal. Journal was being a dick. He was having a hard time saving.
** j3d1h
*** Homework-wise, poorly. Otherwise, pretty good.
** k0sh3k
*** It was a good week. Edible books festival was awesome. Marvelous Monday was good too! Plus, we all got Friday off.
** h0p3
*** I figured out that DCK is absolutely necessary.

* In what ways did we successfully empathize or fail to empathize with ourselves and others this week? 
** 1uxb0x
*** Starting to believe in God more. Been trying to believe in God.
** j3d1h
*** Didn't empathize with her family when it came to schoolwork.
** k0sh3k
*** Worked hard on making Easter nice for the whole family. 
** h0p3
*** I feel like I was a complete failure this week. I'm hitting the reset button. None of us are perfect.

* What will we do this week?
** 1uxb0x
*** Not buy Ice cream as the weekly treat, instead buy something healthier. 
** j3d1h
*** Not eat all her candy all at once. Get used to the new school schedule.
** k0sh3k
*** Normal work with no special events. So...planning for next semester. The goal is to make herself indispensible.
** h0p3
*** Try harder than we did the week before.
The World Wide Web is ceasing to be the Wild West.<<ref "1">> It is clear that automation is not only used to shape what we see and how we use the internet, but even who we can talk to. Bots are used to check your backgrounds to open and close your access to social circles and privileges. We no longer face a one-directional filter bubble for what we can see, but also a filter in the other direction. There is a growing filter bubble pattern over what each of us can say and to whom we can say it. Access, visibility, and voice are being restricted without reasonable cause on very large scales.

Many services automagically include elite, hidden membership. This is true on both the dark and clearnet. Social ladders will be exceptionally hard to climb. Online status crystallization is setting in as well. Digital classism only grows.

Voluntary censorship is one thing. That's not what this is though. It isn't like I have a choice to apply and remove filters to magnify, zoom-out, or tune my signal-to-noise ratio. This is pervasive, hidden, and becoming deeply integrated into the oligopolistic structures I see rising on the internet. 

With each passing year, a higher degree of the Turing Test is being passed. You will be judged and sorted by machines. Your access to services and communities alike will be based upon someone's predefined "score" of your value to them. You will be shadowbanned and compartmentalized from each other. Your voices will be squelched and filtered by those who control these machines. What will give our masters the most wealth and power? Do you think it will be a democratizing option, or something else? 

We are being herded, but not to our benefit. Frighteningly few people I know would find this troubling. Fools.

Take back your digital ground while you still can.

---

<<footnotes "1" "As with most things, there are good and bad aspects. In this case, I think it's a bad thing overall.">>
Today was an interesting day. At this point, everyone has either graduate or moved onto co-op, except TJ, Nash, Chris, and myself. It is very quiet. Nash is lagging behind, but not too far. He continues to play catchup enough that he will probably stay with us in testing. Interestingly, we took the same test as TJ today. Obviously, we've been flying because even TJ is ahead of where he should be. The teacher meant to help us study, but only helped us in about 2/3's of the test. It's a good thing I read the chapter entirely. That's 2/9 tests for this book now.

We didn't do anything (besides my sweeping) in the shop today. Instead, after the exam, we spent all of today going over buttweld math. My teacher said that next week he'd had the new class come in, and he'd be very busy with them. This allows us to work without his attention. I know we just started socketwelds, but we're due to finish them asap (I'm going to bet he'll have us actually start on them a couple weeks into the 2nd trimester, despite the claim it would be on the nose...we'll see though). There is more trig to do, but nothing complicated. There is more to lookup, but it all makes sense. I'm very glad we did the stainless steel work. It immediately allowed me to understand what we were doing in fabricating our joints. The cool part of buttwelds is that you can do any kind of angle you want. I see why it would probably be the most useful of the 3 kinds of piping I've learned. It's very versatile, and I'm going to bet that with good welds, it may even be the strongest. I'll have to look that up. 

After learning the math and working through some practice examples, I asked my teacher if CAD programs did the math for this (because they easily could). My concern was that this process would and should be automated. Essentially, the mathematical reasoning could easily be cut out of this job, in a sense, at the engineering stage. He laughed and said that plenty of ISOs come with the cut lengths already. He says that he checks them anyway because he still finds errors. Furthermore, engineers tend to work with much older as-built drawings instead of using the current building (and whatever changes and additions have been made) to create their drawings. By lacking accurate information, engineers tend to draw things which aren't possible or feasible to build because things are different, in the way, etc. 

My teacher said that about 30% of the drawings on a job will have zero flaws and require no red-line modifications in the field. That is an absurd engineering failure rate! But, that means that my job probably won't be automated in this respect, at least not yet. Having someone on the ground capable of doing the engineering on the spot is clearly very useful. Thus, he was not worried at all about it. It's simply more feasible for an engineer to pass the buck to the pipefitter by requiring "F.V." or field verification, which essentially requires the pipefitter to fix whatever is wrong with the drawing to implement the more general gameplan. 
Despite being invented two decades ago, ransomware is a phenomenon that I didn't see much of until the past decade.<<ref "1">> It's a very interesting source of passive income for these cyberpredators, and it has been very successful. Information is power. The power to destroy a thing or permanently block your access to it so passively and anonymously is as clever as it is dangerous. I  can only envision this becoming more common on every platform that can manage it (to whatever degrees they can). 

Staggeringly, 38% of ransomware victims pay up.<<ref "2">> That is incredibly high. The demand for recovering one's data is obviously there, even at currently high prices. Note, of course, these criminals incentivize paying early, since the price just continues to climb the longer you wait. Obviously, these hackers have built up a positive enough business reputation that people trust them to decrypt the data, even through a highly asymmetric (one-way) trust exchange. A few things will emerge from this blooming malware market.

First, people may start keeping more data in the cloud or multiple copies across their devices. The latter being a good thing, arguably, but the former not so obviously. 

Second, I expect to see more effective strategies from these hackers to maximize profit. They are obviously ruthless and clever.

* Simple translations allow for infecting (and successully receiving payment) much larger swathes of the world.
* They need geographic pricing.
** There are a number of ways to automate this procedure. 
** Clearly, I would only charge the kid in India a few rupees (depending on how my pricing algorithm was trained over time to maximize profit), but I would fucking hammer a business or wealthy individual.
* They need to comb through the data they are encrypting for useful information, even if only metadata. They likely do this to some extent, but they clearly haven't squeezed this resource well enough.
** I would make the price vary depending upon the data I had encrypted.
** One could also automate the finding of nudes and hold a separate ransom for preventing the posting of these online (lots of technical infrastructure problems to it, but still possibly profitable)
** Passwords, identification, and access should be harvested and immediately used.
* Aim for reinfection and revolving victims
** Leave behind time-bombs of alternative appearing ransomware infection. Alternatively, you can turn them into very passive botnets. 
** This obviously has reputation ramifications.
** I could easily imagine this being a kind of tax or pseudo-Mafiaesque 'protection' service
* Malware needs to destroy or infect backup, offline, and cloud sources. 
** Eliminate their alternatives
* It needs to spread itself. There are plenty of kinds of malware that ultimately aren't nearly as profitable which do a good job. This is so profitable that they should invest in maximizing infection rates. With that much money sitting on the table, this is a key area for malicious malware experts not working for state-level actors should be heading.
* One good worm will unleash hell. We've yet to see this damage, but it may come. 
* Affiliate programs could be quite strong. Splitting the profits amongst those willing to spread the malware could be easily worthwhile, particularly if those causing the infections have good reasons to think the infected would pay up.

---

<<footnotes "1" "I attribute this to the explosion of cryptocurrency which enables attackers to launder and store money that is essentially untouchable even by most state-level actors.">>

<<footnotes "2" "Although, I've also seen some estimations at 3% (which is still staggering for large attacks).">>
Today was yet another day we spent in the classroom. Ferguson was absent yesterday, and that meant that he had to do the math today (thus so did the rest of us). Otherwise, we probably would have done some socketwelds. We basically reworked everything. This was fine though, since it gave me a chance to practice. 

I feel like I have it down pat, although, I must say that this is a place to really check your math at least twice. A single error has a beautiful chain reaction. I hate to admit it, but it doesn't appear that trig is terribly useful unless you would be actually engineering something novel for pipefitters (but not //as// pipefitters).

My teacher asked me what I thought of it. I said I thought it seemed really useful because you could build whatever you wanted, with any angles. He corrected me and told me that good pipefitters keep it simple (KISS principle), using 90's at all times, unless they must use 45's. Custom angles shouldn't be used whenever possible. It's obviously easy enough to mess up. However, he went on to say that he used this stuff all the time to make it work. 

For the moment, I believe I will use custom special offsets whenever I'm forced to, but also whenever I feel it will save me a ton of work. Perhaps I'll use it to make things pretty. Making these aesthetically pleasing is part of my job too (even my teacher agreed to this before). So, we shall see. KISS, except for the exceptions, amiright?<<ref "1">> The official drawings I saw were all fairly simple though. This is one of those things I won't be able to decide or clarify until I get into the field.

Ferguson and I talked quite a bit. He is a very charitable listener, and he seems to understand what I'm saying decently enough. He generally tries to parrot back inferences that follow from what I've said to see if he has it, and it's easy enough to correct it when he doesn't. He is, essentially, very teachable in my view. What is weird is that my teacher has a very hard time teaching Ferguson. I think it is a frame of mind problem though. When it comes to teaching Ferguson something he thinks he already knows, he kinda sucks at learning/listening. It is probably a blindspot in all of us, come to think of it. 

We talked about autism. I went through what it meant, etc.  His mother works with autistic children =). I told him I thought he was an aspie. He didn't seem too surprised by the possibility. We talked about myself and my son as well. 

I worked on the wiki in class. I was handed a copy of a scrap of paper that had takeout information for different size and strength flanges for welding (for 2 kinds of flanges). This is the kind of information that is easily lost. Having a permanent, digital record seemed prudent. 

I think I need to spend more time developing my [[Pipefitting Library]]. I am amazed at how few practical and academic resources about this field are available. It's kind of a joke. At the very least, I want practical cheatsheet resources. A pipefiting calculator would be nice. 

Tomorrow we move onto socketwelds again. I think we should stay on it for a while. I do not feel virtuous of the practice, although I can definitely build whatever I need to build. I don't feel excellent at it.

According to the teacher, interview question #1, apparently: What is the 90 degree TO or Radius for X" buttweld pipe? You need to instantly parrot back X(1.5) (well, evaluate the expression first). 

I think I annoyed my teacher by putting up the appropriate formulas on the board for the other students who kept asking me. I was tired of trying to explain it verbally, and I thought the visual would help. My teacher felt I was crossing the line, I believe. It is weird though, since he constantly asks us to teach each other. I'm sure he is straddling a kind of laziness fence here, but doesn't want to look bad. It's okay. I kept a good attitude and acted like it wasn't a big deal. I know it is intimidating to have the most educated person in the school to be sitting in his class as his student. I do my best not to make him feel uncomfortable about it (or anyone else for that matter).

I actually shot the shit with a lot of people. This is the second time a student has asked me to root their phone for them. I told him I felt uncomfortable doing it because I simply don't want to be responsible for bricking it. I was willing to give him resources on doing it himself. This time, the catalyst was about adblockers. I am so surprised people put up with that brainwashing. It's a short-term technical ignorance/convenience issue mixed with risk of failure.

The teacher told us we don't have class on Monday (rather, he said we should do something "outside the school" and to "read between the lines."). Fine enough. I have shit to do anyways. 

Joanna from AB&T came into class. I signed paperwork saying I'd likely receive enough money to cover my toolbox and most of tuition. Apparently, I will owe some money to the school (yuck, this is not what she said before). Yesterday she called my wife (saying that was the number she had for me, which can't be true, since she has contacted me on my own phone multiple times). I had to fill out a FAFSA. Oddly enough, she seemed far less sure that funding would be guaranteed this time. That is disconcerting, to say the least. I hope it goes through. That said, I believe I can bevel and weld pipe, and with the math, build whatever I need to. I understand the theory of it just fine, and I've got the practical skill ingredients to do this. If I couldn't attend to school for financial reasons, then I'd still be able to move on. 

Ferguson noted, after she was gone, that she is a scatterbrained lady. This is partially true. While intelligent, parts of her planning and executive reasoning are missing. I know the type. The kind of messy English professor thing, she's got a solid dash of it.

I talked to mom after work. It was a pleasant enough conversation. I often say very little (if you have nothing nice to say, say nothing at all). The conversations are obviously stilted and abrupt. I do my best, and I know she does hers. It is what it is. She generally elects to end the call by announcing that she is happy I called her, and that's that. 

---

<<footnotes "1" "Oh, Logical Truth Man, Save Us!">>


Today was productive. Before anything started, I grabbed the good level and grinder for our table. I also got the next chapter's study guide from Luke Ferguson.<<ref "1">> I helped TJ with the math on buttwelds. He said he loves my teaching style. I do not hear that often. He obviously had some terrible teachers. Ferguson and I were eventually given a special offset drawing to complete. 

I did the math twice, then I had Ferguson check it. He didn't seem to care much for it. He just "trusted me" by and large. Eh. I told him that if I was going to be wrong, then we would be wrong together. I want his commitment to the math.

I asked to cut the pipes this time. This was due to the fact that I've yet to have the chance to do it for socketwelds, but also because I'm simply more careful than Ferguson. The cuts, of course, were good. Ferguson is much slower in prep work than I am. By the time I cut finished cutting pipe (I nailed it on my first try, just guessing how much we needed), he hadn't even finished 80% of the tip-grinds. In contrast, I had finished all the flanges, socket joints, and pipes (minus the last one) by the time he was finished cutting. So, I helped finish the prep work. 

Ferguson decided not to help with the prep after I joined him and went onto trying to build. This was a costly mistake since he did not build the special offset first. He started at the top instead. He should know better. He didn't. After I finished my work, I came to look at what he was doing, and I pointed out that it was a mistake. He said it should be fine, and that he had done it before. I explained why it wasn't a good idea, but that we would try it his way. Of course, after 3 tries (had to cut-grind the tacks and try it again), he decided to try it the right way. So, we did. It worked, but his original mistake still carried through. The top pipe was still very slightly crooked (because I didn't ask him to completely disassemble it), although we compensated for it with the flange. Still, it was off. If you looked at the correct angle, you could barely see it too. The level on the flange, of course, lied. The pipe did not lie though. The teacher didn't officially recognize anything was wrong with it, but I could tell he felt something was off, even though he couldn't put his finger on it. He gazed at it, but couldn't figure out what it might have been. It was a slight defect, and our flange compensation covered it up. He'd need to use our custom leveling tool to figure it out, but he doesn't usually care that much. 

We did get something officially wrong though. Ferguson had picked out a lapjoint (I often call it Lapdance flange as a poor mnemonic device) flange instead of a standard raised-face flange. I didn't realize he had done it until after it was tacked on. We grabbed the right flange, cut off the old one, and quickly applied the new one. The teacher okayed it. We deconstructed it and cleaned up. Luke left early.

I will say that Luke was much easier to work with this time around overall. He realized that working with me required trying to get it right the first time. He cared about the details because I did. I appreciate that very much. I regularly check our work throughout the process. He is beginning to see the sense in it, I think. He knows how to do it, but he often neglects it. I go through the exact checks (and then some) that our teacher does, especially when I believe that hammering/readjusting a piece may have rotated the fabrication out of alignment. I was especially glad that he had patience for getting the special offset right. The overall design of this fabrication was very simple, and ultimately, the point of it was simply to test us on our ability to nail the special offset angle and the true lengths of the box. 

Again, his spatial reasoning was fairly on point today. His ability to articulate what he can see isn't so hot. He only made one error that I could see in this department, but it was tricky to see. The flange compensation had to be done after rotating the fabrication in the vise 90 degrees. Knowing which direction to compensate wasn't easy to see (he seemed to forget we needed to compensate at first, but also didn't see which direction afterwards until I described the reason with my hands). Sometimes it feels like we are speaking a different language. Sometimes, we both understood the same thing, it just isn't obvious to each of us that the other also understands it.

Luke said he'd be joining the welding program after finishing the pipefitting program. Apparently, he signed up for it a year ago, and they've made room for him. He will do a good job. It's a shame he won't be joining me at the union. I'm hoping that he and TJ will join me. This may be a very smart move on Luke's part though. He will easily be a certified welder in that year's worth of practice (and given his current skill, it may take very little time...although, he is kind of lazy in some respects).

I suspect this may be the last socketweld I do in class. I weld tomorrow, and Friday is devoted to testing and going over this trimester's grades. We'll be off for a week, and the teacher indicated that we'd be going to buttwelds at the beginning of the next trimester. Since we've done the special offset, we've finished the tailend kinds of fabrications that he has prepared for students as well. Since we have learned the math, it does seem like practice is all that is left. It's a matter of getting the bevels right. But, my teacher knows I've learned how to bevel flat plates quite well (although, not pipe). Buttwelds look fairly simple with the exception of the actual fitting itself. That will take some practice.

I want to build pipefitting/welder dogs to make buttwelds even easier. Alignment is really the key difficulty, from what I can see. I want to make sure I understand how to use standard tools, and how to build them on the fly when I need them.

I went to see the admin office after lunch. I'm still waiting on AB&T to follow through on the paperwork/payment. Otherwise, I will not be able to afford to attend school. Apparently, lots of students are waiting on AB&T.

I cleaned the 2-holes with a file. People have been leaving slag on it, which upsets the teacher (expensive little buggers). 

Teacher will be out tomorrow. The old man I talked about before, the liaison, will be our substitute. Apparently, I will be helping Chris tack his project. Chris, of course, enjoys doing all the work himself. So, I take it that I'll be doing my welding without interruptions. Keaton said he would be joining me.

Also, the electrical instructor won't be helping me fix our dryer. I shouldn't have expected or predicted him to. I thought he might not, and I was right. =/

---

<<footnotes "1" " I need to remember to call him Luke (at least to his face), and not by his last name. It's just rude of me not to.">>
Today wasn't very productive. Our teacher wasn't here today, and we had Charlie as a substitute. I did a 1-G weld and setup several plates for doing more with the welding teacher, Dale. He had to go over grades with his students (this is the end of the trimester), so he didn't have time to help me. I did what I could without him. My root was better than nothing, but still shit. I think my heat was up too high.

Our substitute sent us home early. We cleaned up a left. Not much to say, unfortunately.
Economics. My kids needs to study it. They need to realize how the world works. This is the mathematical expression of human empathy and lack thereof. IT is how we understand ourselves. 

Understand the dimensions of the world. See broadly. Dig deeply. 

One could just record one's life with video. It doesn't give it the meaning we expect. It doesn't have the analysis we need. Writing might ultimately be reductive, but it is in the process of reduction that we find the meaning we were looking for.

I feel like myself again on K. Jesus. It's like bursting out of the surface of the ocean from the depths.


Treat your children like adults. Bootstrap them. They will be adults. Just be practical. Theory will come!

DCK is clearly the drug that I really need. It takes me out of my fog. 

Realpolitik Speculation needs to becomes a place where I make practical moves. We're playing likes its a video game? It isn't constructive enough. The inspection is obviously necessary, but we have to build something after the pieces fall. It's important to rebuild. Don't you remember what the world wars taught us? We must rebuild that which we deconstruct. It is a key expression of empathy and hope. Without it, we devolve yet again.

I have to show my kids hard work at every angle. Show them how to build things. I need to show them how to build a life by actually building a life for them.


Don't spend your energy attacking. Spend your energy building. What are you building?


Make sure you spend your time making yourself happy. That's the point of your writing.




Empathizing with my wife means allowing her to live her spirtual journey. Help her walk it. Be with her. It is tricky understanding our fundamental disagreement amidst our profound committment to each other. She continues to shine love. How could you not do the same for her? Why have I not been saying this on my wiki? I'm using my wiki wrong!

I need to be crazy honest on my wiki. I need to say whatever it is that I'm thinking. 



One of the biggest fishes to fry in my life is how I will understand, empathize, and love my wife. I don't even have the words to describe how much she means to me. I need to write them down. That's the point of this wiki. I need to be able to articulate how and why I love my wife. I need to convert my feelings, desires, and theories into action, constructions, and build towards happiness for my wife. How could I have forgotten her so profoundly in my wiki? Fool! I must focus on her as well. It isn't just my children that give me reasons to live. My wife has been bearing this cross. I will find a way out of this maze. I owe her everything. She doesn't like it when I kiss her feet. But, I want to.




Prediction: We will have computers compute our minds for us. The possibilities and implications of it are staggering. That is definitely where the Transhumanists point the most. All of this hard work I'm doing on the wiki, it needs computer aiding.

In a sense, my consciousness is aided by my ability to use this wiki-device. It is a part of my consciousness. Umm....Maybe I need to guard it more carefully than I have. Remember to create backups upon backups! Your life is literally embedded in this thing, or at least part of it.

I wonder what J.K. Rowling would have to say about this. It's kind of like a Horcrux. My goal isn't to be immortal (although, who wouldn't be interested in living forever?). The goal is to be happy. Not being lonely, talking with myself, and being conscious...for happiness, that is the core of cores. 

That reminds me of all the beautiful words in the history of humanity. Centrality, symmetry, core. I should start a collection of concepts I consider to be the most beautiful. Plato's Domain. That is the place to do it.

I fear that I have seen my wiki as a place to publish, but not as a place to just write. I need to strike the right (write) balance, amiright? I need to get it out of me. I must not impede myself. Although, one thing I really love about the wiki is the ability to give structure to what I'm doing. The fact that it morphs, changes, and perhap even through a hermeneutic spiral takes up new telos' qua its original telos. 

Others will be put off by it for various reasons. You are constructing the Truth. Do it for yourself. 

I need more flexibility in my wiki. There are 10,000 things to do, and I can't do them all. Triage. 	

I need to continually be "Loosey-Goosey" in principle. I need to be flexible. I need to be able to complete flip it. I need to be meta about it all. I need have freedom with myself. I need to make sure that I do not build a prison for myself with my wiki. Essentially, I still have a construction problem with my wiki. I tried to formalize it (which was extremely useful in many ways), but this came at the expense of other kinds of introspection, empathy, and the ability to change. 

Also, don't stop using DCK once a week (except, of course, for drugtesting purposes). However hard it may be, you cannot stop. You must grind. You love the grind, right? I'm not sure you can afford to empathize with the part of yourself that doesn't love the existential grind. My head hurts.




When I was a kid, solar energy was cool for science geeks. Like video games, they became mainstream interests for people. As a kid, solar energy technology was not very advanced. It is was highly inefficient both in terms of carbon and monetary costs. We did not invest heavily into it as we should have. Instead, we stuck to fossil fuels. This was no accident either.

The fossil fuels industries have had a significant stranglehold on our technological progression, and their goals aligned with the military-industrial-complex. Ultimately, fossil fuel corporations are among the most powerful, have been far ahead of the game in terms of controlling the political process (they helped invent modern lobbying), and have thus solidified and maintained their control over the energy market, halting innovation and real public investment in alternatives.

Fossil fuel subsidies were introduced for many militaristic and economic reasons. We should never should have subsidized these industries to begin with, but now it is even more crucial that we jettison them (if only we had the political power to do such a thing as a people). Solar energy has finally reached at a point where it may actually have competitive advantage over fossil fuels (in the same way that nuclear had for a very long time). This competitive advantage cannot be expressed through subsidy barriers, however.

In order for solar and wind energy sectors to blossom even faster, we need to put it on equal footing with fossil fuels. My suggestion is to cut fossil fuel subsidies entirely. I would be fine with transferring these entirely to alternatives if need be. That we allow both the RNC and DNC puppet-arms of the corporate world to continue empowering fossil fuel corporations (and vice versa) is a travesty. We're shooting ourselves in the foot, yet again.




!! How is your health? Daily routine? 

It's okay. I'm still feeling depressed, but it wasn't as bad as it was. I will continue to take DCK once a week. I need to. I found a mixer that makes it go down easier. My body obviously does not want it. It requires wrestling.


!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

I'm in my scheduled 2-week cannabis abstinence period. It is going better than I expected. I'm considering just stopping for now. I'd probably only get to use for 2-4 more weeks anyways.



!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

Essentially, I want the full 60-days (could technically get away with 20-days, but I absolutely cannot afford to fail) before August to flush it out of my system to pass all possible drug tests. Technically, that means I should stop on June 1st. My gut feeling about stopping early is this: I believe I will run out of course material long before June 1st. I have buttwelds and bookwork left, which I believe I can master in less than a month. 

I will likely be conscripted to teach and try to weld if I have the chance. It seems like the  higher utility option is to co-op and continue coming in to pass NCCER tests. I can't co-op without passing drugs tests. Thus, by the time I'm finishing up the pipefitting course in the next month or so, I'd like to be able to walk straight into a co-op. 

We could use the money. I could use the experience, networking, etc (which again, is for the money). 

I'm also worried that I'm filling I'm pushing the pleasure-button in my brain with games. This may or may not be a good coping mechanism. I will need to watch myself. 


!! What are you going to do about what happened?

I'm not sure yet. We'll see how DCK goes. Its halflife is incredibly short compared to cannabutter, going to baseline within 1-2 weeks (it's also not tested for). It seems like the best option. I have to make sure I'm not drinking heavily though. It should be abstained from as much as possible. This ensures that when I need it, I can use it. It sucks that alcohol is the legal drug here; it's obviously the most dangerous one. =( That's okay. I will make do with what I have. Let us not forget there are other options in [[The Ark]], but I need to see about their drug-testing.
[[j3d1h]]

* Research spring trends for clothes, makeup, hairstyles, etc.
** Find different sites
* See yourself as someone who is developing a collection of cosmetics and clothes. You need an aesthetic.
* Bash and Python for Computational Theory


[[1uxb0x]]

* Curation
** Answer a question model is working
** Be pickier in the sites you choose
** This week, focus on questions like:
*** How do I think happy thoughts?
*** How do I calm down? 
We started studying the valves chapter today. It was a very difficult section. My teacher, lazy as he is, even had a handout for it to attempt to make up for the fact that we had no valves to inspect in person. I read the chapter, filled out the handout, and continued studying. Chris and I were the only ones really studying. Oh, yeah, everyone took the same test today. We've caught up, and they were shocked. Lol. But, seriously, I really want to understand valves. I believe it will be the specialty I pursue. 

We cleaned up the shop, even squeegeed. 

Each of us were individually brought into the teacher's office to go over our grades. My teacher decided to deduct 20% of my productivity and attendance grade because I missed a single day. Lol. In reality, he needs to give me "room to grow." It reminds me of Thai culture, where teachers felt that if they gave perfect scores then they were useless or failed to challenge their students or demonstrate superiority, whatever. I don't care. Lol. Graduation doesn't matter. Learning in the shop, my teacher's recommendation (I still have a very high A in his class), and getting my certifications are all that matter. When it comes to degrees, I have plenty of them. I have little respect for the institution itself. I'm here for knowledge and practice, not the piece of paper that's meaningless (even the certs may turn out useless outside of something to flash to get my foot in the door).

They started mounting even more "Snap-On^^tm^^" signs around my building (in addition the the Trane^^tm^^ signs). I feel like a student in one of those schools funded by cigarette companies. It is gross. I cannot believe an institution of learning would do this...except that I can. =(
All too often, I am not a smart man. For the life of me, I've been trying to understand why the new Macbooks are dropping their ports. I can't think of a good reason for it. It seems like an obvious step backwards to me.

Clearly, they intend they want to push as much computation into the software/cloud side of things as they can. This is just another attempt to tighten the noose around those in their walled garden. 
* Reside font or move the sidebar over. Make it look elegant.
* Consolidate tiddlers. You shouldn't have multiple tiddlers with the same purpose. Content will just be spread across. Organize it.
* Continue using lists and nested lists.
* Write more. The wiki is bare. It lacks content.
* Organize and structure it.
|customTable|k
|Food|Calories|h
|Apple Strudel|150|
|Boiled eggs|150|
|Chips and pesto|300|
|Cornbread|300|
|Chili|625|
|Ice cream|180|
|Total|1705|f
* How has our health been this week?
** 1uxb0x
*** Hit his leg on some iron recently. Good overall though.
** j3d1h
*** Allergies suck, but the medicine helps. That's about it.
** k0sh3k
*** Got sick. Feeling better. Her stomach wasn't doing so well. Still feel a bit off. We dont' know why. It might be because she is eating meat again.
** h0p3
*** I've felt much better this week because of DCK, even without cannabis.

* What happened last week? Have you been happy this past week? Why or why not?
** 1uxb0x
*** He felt surprised. His mom was "light" on him. He didn't feel as nauseous reviewing his journal and being held accountable.
** j3d1h
*** Overall pretty happy. The new schoolwork schedule is working much better.
** k0sh3k
*** She got sick and everything was a blur. Guess she was happy. She doesn't remember. This is why she is going to keep a journal on her wiki.
** h0p3
*** I finished my first trimester. I rocked it. I'm looking forward to finishing early and getting to work. I want some experience pipefitting.

* In what ways did we successfully empathize or fail to empathize with ourselves and others this week? 
** 1uxb0x
*** He actually did his work this week. 
** j3d1h
*** Did her work. Tried not to be rude during the week.
** k0sh3k
*** Doing the kids schoolwork. She took on more responsibility for holding them accountable and shaping how their day went. Also, made delicious pancakes.
** h0p3
*** Helped my family start writing their wikis.

* What will we do this week?
** 1uxb0x
*** Be happy. Get his work done. 
** j3d1h
*** Do humanities "much more betterly." Also, try to keep journals/logs more often this week.
** k0sh3k
*** End of semester wrap-up stuff. Don't have an online class this week, so search for a new one. Do more reading. ~~Work on her wiki.~~
** h0p3
*** Fix the car and dryer, for the love of God.
!! How is your health? Daily routine? 

My health is a lot better. DCK once a week is exactly what I need. Not using cannabis has been much easier for it. I've yet to even want alcohol, which I take to be a strong sign that I don't need to numb anything. My daily routine is fine as well. I've been taking care of my nails, and I've not bitten them. I keep my beard combed as well. I've been staying dressed as well. Sleep has been okayish. I wake up a lot in the night, and I have a hard time falling asleep. I'm still getting 7-8 hours though, despite the fact that I'm slipping (waking up at 9am instead of 7:20 on the dot as usual).


!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

My parents asked to take the kids for a week.We want to do this, but ultimately we can't. [[1uxb0x]] desperately needs our attention and to maintain his routine. It makes me sad. I really hate disappointing my parents. I don't think they will understand it either, so I think I'm making them feel even worse. I'm convinced many judgments run through their minds as they hear us say, "no." But, they are not in our shoes. I am convinced that if they could stand from our vantage point, they would do the same thing (and feel bad about it like we do).

!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

That our son isn't capable of effectively reintegrating back into routine is at least partially our fault.<<ref "1">> We've got to forgive ourselves and move past it. We need to work with what we have, and do the best that we can. This is the best move available to us for our son. 

Ultimately, we can't help where and how my parents choose to live. That they miss out on the lives of their children and grandchildren isn't our fault. We cannot revolve around their schedules. We have lives we must lead. We have to do what is best for our son. In this case, we really feel the costs. Stoicism is the only answer.

!! What are you going to do about what happened?

Try to be empathic and kind. Hopefully not damage a relationship which is obviously fragile. A conflict could arise, but we must be stoic. We'll cross that bridge if and when we get there.

I hope to maintain my sleep schedule. I really need to make sure I keep that alarm clock going this week.

----

<<footnotes "1" "It reminds me of when I was a child, it would take all winter to convince me to wear pants instead of shorts. By the time spring/summer came, it would take half a year to convince me to wear shorts instead of pants. It was a poor cycle. Amplify that, and that's what we're facing.">>
* Capitalize titles
* Be careful in naming titles
* Use titles as the actual links. Aliasing should be used sparingly.
* Backup program would be useful.
* The Recently created vs edited tiddler would be nice.
* Find a more elegant way to see word counts.
* Start collecting and grouping the annotated links by category. Find patterns, and use it to write bigger things about those topics.
* Copyright 
* Graft your old work into this wiki
* Write more.
|customTable|k
|Food|Calories|h
|Sandwich|315|
|Pear|102|
|Clementines|70|
|Apple|95|
|Plum|30|
|Chips, Hummus, and Olives|400|
|Tikka Masala|700|
|Chili|200|
|Beer|100|
|Ice Cream|180|
|Total|2192|f
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 //

This is a metapage specifically about 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖.

Here I generate a list of my currently prioritized projects. It's a mid-to-long-term report on what I've recently been working on, of where and how I spend my time and energy on this lifetool.<<ref "1">> This is also a place where I attempt to forecast and strategize my focus.

This page is broken into two section. I explain where I've been focusing, and I attempt to strategize my future focus. I need a constantly updating gameplan for this wiki. That's what this is about.

Hopefully, you can provide a narrative for those priorities to inspect and weigh. Think about why you focus on those projects, if that's the best thing to do, etc. Turn Husserl's ray of intentionality upon itself.  When you are thinking existentially in a recursive manner, you can decisively align your many orders of networks of beliefs and desires. Be meta about your life, h0p3.

Okay. Here are my current primary 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 on this wiki:

* [[Realpolitik Speculation]]
* [[Pipefitting Log]]
* [[Pipefitting Library]]
* [[h0p3's Log]]
* [[Computing]]
* 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖
* 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖

I've clearly spent the majority of my time on [[Realpolitik Speculation]], [[Pipefitting Log]], and to a lesser extent 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖. There is plenty of planned and even random work  on the wiki, but I feel compelled to write in these as often as I can. 

You will note that these are deeply practical topics in my life.  I'm writing this wiki for myself. I'm trying to become happy. Let's hope that pursuing the truth the best I can will result in becoming happier. 

Perhaps this page will either directly inform or even one day evolve into the next 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖  page.


Focus Goals:

* Wiki related:
** 🢔⦗[[Focus|Current Focus of Projects on this Wiki]]⦘🢖
** [[Computer Wizard]]
** [[Grandmaster Electrician]]
* Self:
** [[Taking care of my things]]
** [[Cleaning my nails]]
** [[Always Be Dressed]]
** [[Collect Music Again]]
* Philosophy:
** [[Creating Faith]]

-------------

<<footnotes "1" "Perhaps it needs to be done more programmatically. Having to give a qualitative explanation for quantitative arguments is a strong method of hyper-efficient inquiry (even with inductive/abductive risks).">>
|customTable|k
|Food|Calories|h
|Tikka Masala|400|
|Bite Size Fried Cheese Ball|40|
|Ice Cream|180|
|Chips, Hummus, and Olives|450|
|Clementines|105|
|Plum|30|
|Apple|95|
|Italian Sausages|800|
|Salad|100|
|Apple Strudel|660|
|Wine|250|
|Total|3110|f
!! How is your health? Daily routine? 

I'm doing fine. My head has been hurting/fuzzy feeling. Pressure. Could be allergies. Could be anxiety. But, I feel motivated. I'm getting shit done. I can't complain too much. Daily routine is good. Still taking care of my nails. Note sure about my beard.


!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

Car needed fixing. Laundry needs doing. That's what I'm doing. I was kind of dreading being at the autoshop.

Also, League of legends isn't working for me. =(...they forced us to update to the newest client, which isn't nicely compatibilized with wine/playonlinux yet.


!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

Talked with about 4 mechanics about the history of intellectual property and privacy in vehicles. These men were activists, pushing for remotely viable legislation. I am thrilled to see people fucking get it. They actually cared. They didn't care enough to fight against it in their own personal technology tools (phones, computers, etc.), but this is because they just don't know how. Several rationally paranoids there

The head guy I was talking to was a magic player from Beta. Definitely a geek. He still drafts today. His family has high ELO ranking magic players (or did, when it first came out).

He was a very interesting man. Politically disagreed with most everyone. A good sign. 

I'm sad that my league of legends client doesn't work. They recently retired the old client and have forced us all to upgrade. Unfortunately, Wine/Playonlinux does not work correctly. I've seen a script that apparently works for some Europeans. However, i've yet to be able to get fully functioning for myself. I'm going through the debugging process (I'm not very knowledgable about this though). I'd like to have it up and running soon. I want to hit that sweet drug spot. 
 


!! What are you going to do about what happened?

Trying a VM for now on league.

Car is fixed, minus the control arm. I need to get that done as well.

Dryer needs fixing. I'm going to get the laundry done first though, since that is imminent.

I think I'd like a 4G phone that proxied phone service through VOIP that I control (or atleast could move around). Separate phone carriers from ISPs. I very much like Google Voice in this respect, but I want something besides google voice. I want an entity that I can remotely trust. I think this won't happen because there will always be government intervention that makes it so that they can always listen in, if not market forces seeking my data. 
* WASM resources -- https://github.com/mbasso/awesome-wasm
* Autism and Cannabis -- https://www.usatoday.com/story/news/world/2017/04/25/marijuana-pot-treatment-children-autism-cannabis-oil/100381156/
* High Frequency Password Lists -- https://github.com/berzerk0/Probable-Wordlists/tree/master/Real-Passwords
* GOP Reddit Redpiller Exposed -- https://www.reddit.com/r/politics/comments/67hium/a_gop_lawmaker_has_been_exposed_as_a_notorious/
There isn't much to say. I'm on break. I thought I be using this time to study, but I'm not. I have other practical fish to fry.

I'm still abstaining from cannabis so that I can eventually pass a drug test. I won't be done with buttwelds for at least a month. I may or may not be able to pass after 45 days. Of course, I will test myself before I even ask for help finding a job (or hunting directly). We'll see. It's tricky, considering my consistent use. I hope to pass the drug test and go into pipefitting. 

I think I should take a cut in pay to do pipefitting instead of just any construction job. I really want practice. Think of it as a form of interning. 

I am reading through my labor movement books. I just need a few talking points really. The history, in itself, isn't actually very interesting. I need to show that I have a grasp of the major story arc, some book specific (prove that I read it) information, the philosophical implications, and how it applies to us today.
John Deere has recently claimed that only corporations can have intellectual property rights. The absurdity of the selfishness of the people in my world is hard to bear. I see it all around me. This IP trend, in controlling our ability to simply access and use ideas, is getting out of control. It is legalized mass mind control. I think we should call it "IP Power Creep," since that is exactly what has been happening for hundreds of years.

Mobile phone technologies, both hardware and software, have been locked down into an oligopoly through a series of patent wars that bar entry to competition by design. Another wave of patent oligopolies are coming, and this time, they have more legal precedent and experience in solidifying and centralizing their power structures. 

Case in point: Quantum computing. To whatever extent it will change the world, it will reside the hands of the few. Presumably, it will break large swathes of cryptography and perhaps revolutionize search (which is one of the hardest problems we've ever faced in computing). Many large companies are racing to grab up patents for this.<<ref "1">>

If and when it comes to fruition, only a few companies will have access. It won't simply be proprietary, it will be locked behind physical, digital, economic, and political barriers. This technology will not be available to the masses, except through the oligopolized doorsteps. They will hide these quantum silos, use them to maximize their profits and powers. Forget the good of human kind. These people are psychopathic. 

Do not buy into the Religion of Innovation. It is yet another opiate of the masses. That isn't to say technology is the problem. As always, the problem boils down to the people who use, control, and implement technology.

---

<<footnotes "1" "Patents built upon publicly funded researched, ultimately.">>
Propaganda is everywhere. It always has been, but the crisis of late stage capitalism  strengthens it. Unfortunately, we cannot trust Big Brother hotfixes like Google's Project Owl or Facebook scramble to rewrite its filter-bubble algorithms to at least remotely appear like they have our best interests at heart.<<ref "1">>

Wikipedia's co-founder, Jimmy Wales, is starting up WikiTribune in the same spirit, which essentially assumes that people in general are self-interested in such a way that they will generally protect and organize information in objectively appropriate ways more often than not.

Wikipedia has to be one of the (if not the) most successful information repositories in human history. While it is famous for its internal political skirmishes and strangleholds, and of course anonymous editing (good and bad here), vandalism, systemic bias, and psychopathic manipulations/revisionisms/spin, it still boasts the same accuracy as other professional (non-free) encyclopedias. Except, Wikipedia is wildly, wildly larger than anything privately created. I consider it a massive success, warts and all.

WikiTribune may be a beacon of hope. It is not obvious how something which requires even more detailed work than an encyclopedia will actually succeed though. The editing process is unclear, and it may evolve to be different in significant ways from Wikipedia (else, why not just add this to Wikipedia large set of functions?).

At the core of WikiTribune is not only the right spirit, from someone with a proven track record (it's very hard to doubt his intentions), but also crowdfunding. There is a deep independence to it, like [[The Real News Network|http://therealnews.com]]. Even NPR is a failure, ultimately, because it relies upon advertisements and an increasingly biased constituency.<<ref "2">> There is technically a chance that WikiTribune can succeed where they have failed; that they will have unlocked the next evolution to authoritative news reporting.

However, this is all contingent upon a number of successes. If Wikipedia is no more accurate than other private sources, it isn't clear how WikiTribune will be any better. The obstacles to success seem even higher as well. Political gatekeeping and credentially will be key. Generating authority is very hard, especially on a budget in a decentralized manner.

Let me say, I am not convinced this will work. Were it to get too big for its britches, I'd expect media companies to go after WikiTribune.<<ref "3">> If it were to succeed, it may be a serious existential threat. I consider publishing in such a thing to be humanitarian work. The status could be extremely high. 

Ultimately, it is very hard to decentrally crowdfund authoritative news processes. In a kind of metamodern move, we attempt to cobble together a semblance of acceptable objectivity and metanarratives we value through aggregators. One must purposely escape one's filter bubble though. We need more than that. Authority must be corrective. Forgive my pessimism, Jimmy. I adore your work, and I sincerely hope you succeed. Take my money. This is still going to fail.

---

<<footnotes "1" "I read an interesting rumor that Zuckerberg may be running for a major office. I find it dubious. He seems much more powerful at the helm of Facebook. He's powerful enough that he can shape the conversation to get himself elected. That's enough power that it isn't obvious that whatever office he would hold would be worth sacrificing for conflicts of interests and emoluments (although, Trump may have proven that such barriers are toothless and irrelevant).">>

<<footnotes "2" "Don't get me wrong, I still listen very carefully to NPR everyday. I am not under any illusions about it being ideal in any sense though.">>

<<footnotes "3" "I'd argue I've seen the murmurs of its already!">>
|customTable|k
|Food|Calories|h
|Plum|30|
|Apple|70|
|Pear|102|
|Banana|105|
|Clementines|105|
|Pizza|1240|
|Ice Cream|180|
|Banana|105|
|Salami|100|
|Quesadilla|400|
|Total|2437|f
* Golang Pointers -- https://dave.cheney.net/2017/04/26/understand-go-pointers-in-less-than-800-words-or-your-money-back
* Spoof-proof Fingerprinting -- https://browserprint.info/#fingerprint
* Trusting Golang Devs instead of ourselves to implement security -- https://bridge.grumpy-troll.org/2017/04/golang-ssh-redux/
* Brickerbot: Sending a Wakeup Call Message to the IoT Industry -- https://arstechnica.com/security/2017/04/brickerbot-the-permanent-denial-of-service-botnet-is-back-with-a-vengeance/
* Text Search Engine -- http://mg4j.di.unimi.it/
* Deanonymizing Anonymous Data Sets -- https://www.georgetownlawtechreview.org/re-identification-of-anonymized-data/GLTR-04-2017/
* Stolen Identity What-to-do Advice -- https://np.reddit.com/r/StolenIdentity/comments/67lggi/what_to_do_if_you_know_or_you_think_your_identity/
* Signals in Linux -- https://www.stev.org/post/linuxprogrammingsignalstheeasyway
At this point, I'm just brainstorming. I want to be more politically active. I'm not sure how I can best help.

* Hacktivism -- too risky for my taste.
* Start a socialist chapter (none exist my area) -- might also be too risky, I need to financially stabilize and establish myself first.
* Voting -- won't do any good, but I will, of course, participate in the primaries. 
* Talking with people -- lol. No, but really, I have convinced several people to move left of their position, or at least of the possibility of the rationality of leftism. That may not be much though.
* Being empathic.
Collaborating with people is always difficult, especially for misanthropes like me. In an increasingly interconnected world, where tools pop-up, evolve, and explode in weeks not years, it is obvious that immediate, pervasive, always-on, inescapable socializing is more than technically feasible. This radical change in how we interact with each other doesn't always make getting work done easier though. 

As usual, technology is a two-edged sword. Communicating with people in real-time at all times for all things has serious logistical, emotional, and political drawbacks. The collapse of the distinction between work and personal/homelife is only further driven by this problematic. Essentially, there are serious diminishing returns to symmetric and synchronized collaboration tools and environments for productivity and especially happiness.<<ref "1">>

Ultimately, I get my best work done when I isolate myself. To some extent, we must disconnect from others as a means to doing our work. I think, more-or-less, everyone finds themselves in these contexts where they must disconnect in order to deeply dive into the problem they face. 

One must carve out pockets of time to get work done. We must make sure that we aren't constantly (and uselessly) paying the cost of connecting to people beyond some obviously necessary threshold.<<ref "2">> There's definitely a ton of low-hanging fruit to pick. Beyond that, however, we need reasons to herd ourselves. Group work really does have its limits. Too many tasks require that we don't collaborate. We must rely upon more asymmetric and asynchronous collaboration tools to succeed, and when we can't, we need very good reasons.

For many of us, we must push back against the technosocialization tide in order to accomplish our goals. I don't mean this in a ludditic sense. I mean that we must fight for private spaces, for our alone time, and for environments which allow us to lose ourselves in our work without the constant interruptions and distractions of trendy HR-fucktarded collaboration schemes. You'll still collaborate. Believe you me. Do it wisely though.

My conjecture is that we will continue to see the evolution of humans (incredible pressures) to integrate this exponential increase in socializing in every corner of our lives. The outgoing sort will continue to be the norm, and only those who can endure or thrive while being permanently wired to each other will survive, with one exception: those with significant competitive advantages developed through effective isolation for getting significant portions of their work done alone. We will always be connected. It's about finding the golden mean. Be connected in the right way, at the right time, for the right reasons, and so on and so forth.

---

<<footnotes "1" "And, of course, productivity and happiness are often incompatible.">>

<<footnotes "2" "Obviously, communicating is crucial.">>







I clearly need to socialize more. I need to connect with people. I'd prefer to connect with people that I like being around. I'd prefer to have friends that I can be myself around. I'd like to have the chance to learn from others, to develop a support network, and to grow something much larger of my life than what I could do on my own or with the small circle I currently have. Of course, I'm desperately worried about the psychopathy of social networking as simply using people as mere means. I need to find good ways to avoid that. I need to be constructive, forgiving, and stoic about the problem. I am an INTJ only because I'm so misanthropic. 

There are different kinds of community and networks to build and participate in. I have two thoughts for now.

I have not entered any of the top tracker communities. Perhaps I should. This is a great place to start: https://interviewfor.red/en/formats.html. I believe it will be the next What.cd, and a solid gateway to other trackers. I certainly have the technical skills and background, although not really the social skills. Perhaps with my redpilledness I will better be able to interpret the nature of the community I'm joining and the states of mind of the people I'm communicating with.

I was also thinking about trying to gather a community of socialists together. The world needs Socialists who understand and actively fight against the evils of capitalism. I need to put my money where my mouth is too. Perhaps I'm too hard in my evaluation of people. There are people who can "get it." I am sure of it (right?). 

Problematically, I worry I'm too busy putting my life back together and working towards financial stability to achieve this just yet.  Further, as I travel to do my job, I think it will be even harder to maintain it. I may not be able to build many kinds of social networks because it isn't logistically feasible. I'm just not sure at this point. Capitalism makes it very hard to fight back. I must give it more thought.
About a month ago I wrote about Rex Tillerson, [[2017.03.22 -- The Second Cold War]]. I suggested that Rex would likely push to lift sanctions on Russia for oil money. Today, he claims he will not be lifting these sanctions. What can I say? I am still watching political theater. Here is where you get to call me out of uncharitable conspiracy theorizing, as though no amount of evidence will exonerate my enemies.

The Trump administration is under intense scrutiny, particularly with respect to Russia. Ivanka is running defense for her father, poorly at that. Perhaps Rex Tillerson is now playing defense as well. I know that if I were possibly facing serious collusion/treason charges, I would hope to appear, at least at face value, like I had no intention of helping Putin or benefiting from being in a symbiotic relationship with him. 

Rex is an absentee Secretary of State. It is far from clear he is legitimately trying to do anything like the job he's supposed to do. He must deflect and deny that he has any involvement with Russia in the current political climate. This is one key way to appear clean. For now, I'm convinced his words are empty cosmetics. The red flags are still there. The successful capitalist, con artist, is simply telling us what we want to hear to get us off his back. I'm still convinced he may attempt to lift these sanctions if the opportunity arises. 

Putin seems to have no intention of handing back Crimea.<<ref "1">> Is Rex running some power play against Putin? Probably not. In any case, given this administration's ability to literally get away with contradicting itself on a daily basis (I'm not exaggerating), it doesn't seem impossible for Rex to publicly change his mind without serious penalty. Presumably, he simply needs the right moment for it. Given the scrutiny, it may never come to fruition.  Alternatively, there may be other contrary trades here with lower risk but still significant rewards for Rex. 

Regardless, one thing is clear: despite the obstructionists and Russian collusionists, parts of the US government are pursuing an investigation into the Russian intervention in US politics.<<ref "2">> It is forcing the Trump administration to alter its course (not that they had an incredibly well-thought-out gameplan to start with). Trump's initial gameplan has all but halted (or he has run out of ideas), it seems.

It is no secret that Trump has not actually accomplished much of anything directly (beyond the flood of executive orders). His alt-right driven dismantling of the executive branch and consistent political fumbling have acted as a thin veil (transparent to most, but opaque to his supporters) enabling him to fleece the American people for his own personal benefit. As he said during his campaign, he has no interest in domestic or foreign policy (lol). Not accomplishing anything directly may be just fine to him. Unless something changes, it seems like we are in gridlock as he attempts to bleed us. 

My worry is that he will continue to raise the Spectacle Specter for us over and over again. Appearances are most of all that matters to the man. He will misdirect the dumbest of the American people as he attempts to pick our pockets (even while many of us stare right at him as shamelessly does it). One Specter many are worried about is a more direct war with North Korea. There continues to be plenty of saber rattling, and preparations appear underway. It seems to be a distraction //the people need.//<<ref "3">> Nothing unites stupid and scared "patriotic" people more behind the powers of evil than the "glory" and "necessity" of war. People are idiots and psychopaths.

Speaking of North Korea, without a doubt, China seems more than happy to line the Trump Family's pockets. If Trump does give up on Putin, perhaps it will be for China (or whomever can hold his attention). I would not be a happy South Korea at this time. It is even clearer now why Trump torpedoed TPP, as I talked about before: [[2017.01.23 -- TPP]]. Both China and Russia seem to have enormous influence over a man who can obviously be bought.

---

<<footnotes "1" "Alternatively, there are significant pro-Russian movements in Eastern Ukraine which make a secession possible. Counter: maybe dissidents simply disappear.">>

<<footnotes "2" "Watch the Democrats champion this about in mid-terms, as if the reason they fight Trump is for our sakes. In a savvier way they will say, 'You don't want another ~~Bush~~ Trump do you? Well, vote for us, it is your only choice.' It is yet another false compromise.">>

<<footnotes "3" "The giant bomb in Afghanistan clearly did not sufficiently entertain us.">>
|customTable|k
|Food|Calories|h
|Aussie/German Treat|80|
|Chips, Hummus, Olives|450|
|Tomato|22|
|Bell Pepper|24|
|85% Chocolate|100|
|Potato/Veggie Bites|120|
|Turkey Burger|400|
|Beef Burger|450|
|Brussel Sprouts|70|
|Plum (half)|15|
|Pear|105|
|Ice Cream|180|
|Total|2016|f
!! How is your health? Daily routine? 

I'm doing well. My sleep continues to be interrupted over and over. I sometimes wake up with pressure or mild headaches. I am sleeping though. I'm pleasantly surprised to see that my sleep schedule is remaining stable even without the alarm clock. The week off has been nice. Conversely, k0sh3k's sleep schedule has still not improved. I've tried to make it better for her, but I'm not sure it is within my power to help her here. 

I'm still taking care of my nails. I've definitely had them in my mouth to bite them, but retracted. 

I had some wine the other night. I've not had much of an urge to drink though. I can feel not having the cannabis, but it's quite livable. I take this to be a good sign, since I am on my week off (where I'd normally be tempted/need it the most). Getting back to work next week is hopefully going to put the nail in the cannabis coffin for me, or so I hope. 


!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

Lectured kids about programming ourselves. My son has strong incompatibilist intuitions and even offers some of the basic fitting anecdotes and arguments for it. I'm helping him see the compatibilist light. It's key that he understands how autonomy is reducible to programming ourselves over time. The more fundamental homunculus of incompatibilism cannot exist and/or is irrelevant. I've planted the seeds. We will cultivate them together.

!! Can you better explain what happened? Do you have a technologic, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

I'm trying to help my children understand the value in being meta about programming themselves. I want them to develop a 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 section for themselves. I want them to take charge of their lives and to evolve into more autonomous beings. I wish someone had sat me down and done this with me. It's obvious that we should all do it. I'm helping them the best way I know how. 

One recurring theme for me with my relationship with my parents is that my success indirectly serves to highlight their failures. When I see what they did with what they had, I'm less forgiving, especially given their attitudes towards me today. It seems hypocritical of them at the very least. Essentially, there doesn't seem to be a way for both of us to win. I have to stop worrying and thinking about it, except insofar as it is necessary to root out the flaws in my own parenting and self (and highlight or improve upon the good). 


!! What are you going to do about what happened?

I should think more about how to help them. Accountability has to be done well (I'm not good at this...I'm prone to anger). Offering good arguments, leading by example, and encouragement are useful and positive. Self-mastery is very difficult to teach when I don't really have it myself. It is a lot to ask. 

I probably should be careful in how I push. I have that "GO GO GO!!!" mentality. I must hold it back, reign it in, and quiet it somewhat. One of my interconnected vices is pushing too hard on others (perhaps myself in many cases), or at least pushing in the wrong way. I have to realize that being autistic means that I lack the right sort of theories of mind necessary to persuade and nudge outside of brute force. I am intelligent enough to intellectualize socialization, however non-gutteral it is for me. I should do so. My lack of social skills (and the expectations of others) holds me back from success and happiness in many caes. This is an area to intellectually and emotionally learn. I need to practice it. Why? Because I am engaged in the science of my children's happiness.

Also, I need to fix the dryer. I keep putting it off. I know I might fail. I just need to try it. The cost is buying a new dryer and installing it. Why not? At least try to save yourself some money. Look at it this way: assume you have to buy the dryer anyways. Assume the cost is already going to paid. Now you can tinker and attempt to learn on something. This is a learning opportunity that you normally couldn't afford. Go get 'em!
* Per usual, more evidence of Reddit's content bias (ironically, inescapably linking to Reddit here) -- https://www.reddit.com/r/dataisbeautiful/comments/64y44g/the_mostupvoted_comments_in_reddit_threads_arent/
* Global Wealth visualization in $100 bill sized units -- http://demonocracy.info/infographics/world/lqp/liquidity_pyramid.html
* Best of All Worlds (BOAW) 1%er Social network -- https://www.theverge.com/2017/4/26/15407144/exclusive-social-media-the-league-best-of-all-worlds-rich-kids
* Linux Kernel Comic -- https://consolia-comic.com/comics/kernel
* How to find the answer to technical questions -- http://rion.io/2017/02/09/why-wont-you-answer-my-question/
* Hacking Patient Record Datacenters -- https://www.protenus.com/blog/a-virtual-goldmine-why-criminals-target-patient-data-part-1
* [[2017.04.26 -- Trump Administration's Gridlock]]
** Edits. Don't love the title.
* [[2017.04.26 -- Social Networks Worth Joining]]
** Significant content additions. I clearly didn't say enough on the topic. 
** I think [[Philosophipolitical Prescription]] is very hard to write. I'll take anything for now, but hopefully I can improve the content in it.
* [[2017.04.26 -- Practical Political Activism]]
** Sparse.
* [[2017.04.26 -- Link Log]]
** As usual, most of my links seem to be computationally-oriented. I read a lot more than that though. Surely there are more useful links to collect about the humanities and politics.
* [[2017.04.26 -- Productive Collaboration in Technologically-enriched Environments]]
** Editing/revising. It's a decent point. This is more of what I want for Philosophipolitical Prescription.
* [[Links: People Worth Reading]]
** Slight clarification
* [[Links: Anonymity + Privacy]]
** Quick introduction
* [[Links: Legal]]
** Quick introduction
* [[Links: Computing]]
** Ugh. This section is almost too broad. I'm not sure what to do with it. I'll have to think.
* [[Links: Lifehacks]]
** Quick introduction
* [[Links: Jobs, Occupations, and Vocations]]
** Quick introduction
* [[AHK: Tribes Ascend]]
** Perhaps I should migrate a bunch of my bullshit scripts I've saved over the years. It is unfortunate that I've lost so much. That said, preservation may be useful.
* [[Autohotkey Scripts]]
** Meh, doesn't need an intro.
* [[Links: Personal Finances]]
** Ugh. Maybe I don't really need intros for links. Sometimes it seems worth clarifying or worth providing context. Othertimes it seems obvious to me.
* [[Links: Art]]
** Meh, doesn't need an intro.
* [[2017.04.25 -- Link Log]]
** Meh, doesn't need an intro.
* [[Link Log]]
** Clarification. This will evolve once I have a better grasp on it.
* [[Physically Pwning a Computer]]
** Added content
* [[2017.04.26 -- Diet Log]]
** Eat some vegetables. Lol.
* [[New]]
** This is an amazing feature that [[j3d1h]] helped me add. It makes this [[Wiki Review Log]] far simpler and more feasible. I think it may also be useful to visitors who want to see what's up. "Recent" has a poor signal-to-noise ratio, even if it is necessary for posterity's sake (and even useful to me in my personal use of this wiki).

I'd like to note that after consider, I've deleted "Log Collection" (no longer a hyperlink because there isn't a point to it). I want to store the information in just one place. It fits [[Wiki: Scheduled Practices]] too well. I was on the right track, and now I see the better way to do it.
|customTable|k
|Food|Calories|h
|Pear|100|
|Banana|100|
|Plum|30|
|Salami|180|
|Pork Chops|240|
|Potato|163|
|Salad|150|
|Plum|30|
|Asparagus|50|
|Pizza|450|
|Beer|100|
|Total|1593|f
!! How is your health? Daily routine? 

Good. My head has been hurting (the good kind, like from a workout), but that's because I've been working very hard. This is how I feel when I write and think a ton. It is natural. I probably will have some alcohol to chillax. It will go well with dinner. 

I've been playing more video games. Not a ton, but still more than I have for months. I think this may be filling the hole that abstinence from cannabis has left. 


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

I had a conversation the other day with my brother [[JRE]]. He told me that our parents had asked him and his SO to work a table selling goods from Thailand at my parent's last church in Kentucky (back when we were teenagers) while my parents talked to their old parishioners (i.e. worked the crowd; reaped even higher amounts of money). 

This is how my parents make money. They visit churches asking for donations and sell marked up goods they've transported in suitcases from Thailand.

I found the request quite odd, if not outright gross. My parents did not fully appreciate the problem with it. My brother and his SO aren't just not religious; they generally oppose religion since they've see the evil it has caused in the modern world.<<ref "1">> It's more than an awkward position to put my brother and his SO in; it's asking them to betray themselves (on something they are right about). It wasn't appropriate of my parents to ask. It would be equivalent to me asking my parents to organize and distribute my pornography collection in public.

It made me shake my head. I can see there is a gap that will simply never be bridged between my parents and their children. It makes me sad. 


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

I think there are a lot of problems going on here.

First, this is yet another demonstration of a lack of empathy and basic respect. They do not understand how much pain they have caused their children, and they don't want to. They do not understand what it means to empathize with the children on the other side. I think this is part of the (barring some "miracle") "they are going to hell" mentality. 

Second, I think my parents are ultimately capitalists. They extract the labor of people from Thailand. They sell these goods for significantly marked up prices, but they don't split the profits fairly. They probably pay better than average wages, but not fair wages. This is because they feel justified in accepting the garbage claim that the market price is somehow the morally right price. Further, they justify this themselves by saying they are doing ministry. The asymmetry is "acceptable" because God ordains it in this case, even if the utility equation and Kantian arguments do not favor it.

Third, I think they manipulate people; it's a form of deception and using people as mere means. I am convinced that their ministry is really about pumping their social capital for money. They are salesmen (a notoriously psychopathic occupation). They always were, but now its more obvious. 

My parents have taken my grandparents' "evangelism" model (moving from town to town, begging for money through virtue signaling and manipulation) and modified it. They are con artists that have to keep up enough reputation to ensnare revolving "charity givers." Of course, some percentage of the money does go to charity. Plenty of it goes to my parents as well. 

Don't get me wrong, charity is crucial. It's also a sign of deep dysfunction in society (this is exactly what governments are supposed to handle, and it's exactly what we should all be collectively working towards). I favor giving, no doubt. I also am a realist about the state of charitable organizations. It's hard to find good ones. Conflicts of interest are difficult to resolve, and corruption rises.

My parents are moving to an even less savory model. The bricks'n'mortar projects are going to fade, and instead will focus on "economic development" through training people to save money (a practice which I favor, minus the Jesus-brainwashing). They will cease to be on the ground as much, but live in Thailand for tax evasion and medical (which is acceptable) reasons. Of course, expanding and checking on the machinery they've built will be the primary ground work. They will act as CEOs while the people below them do the work. They already do this constantly with Thai people. They've been recruiting from churches in the states for a while as well. This new model will be more overtly a pyramid scheme. 

Economic development, in this case, is code for Christian Capitalism and "fund my retirement". They'll take a larger share of the money, and the people will get basic training to "help themselves." It probably seems "win-win" to my parents. The asymmetry is gross. And, to my eyes, the process lacks integrity.

Lastly, having their children selling their goods at this church is a way for them not to be ashamed of their children. It is a way to make it look like they were still good parents or worthy pastors. It is a way to whitewash the truth. This is about saving face. This about using their own children. My parents zealously guard their reputation, and do not want their children "pissing in their [social] pool." I.e. My parents don't ultimately really care about us nearly as much as they care about themselves. That is some shitty parenting and crosses the psychopathy line.



---
!! What are you going to do about what happened?

Nothing. I will simply be kind. If I have nothing nice to say in person, then I won't say anything at all. There is no way to fix it. 

I cannot respect my parents in the way they demand. They do not understand the nature of the normative relationship between creators and their creations. They do not perecive the salient moral properties of this context. 

I will be kind. I doubt they would accept my help, but I am still there to offer it insofar as it doesn't violate my code of ethics.


----

<<footnotes "1" "Even if they see the benefits it brought in civilizing early mankind. The memetic utility equations (and adjustments over time) are more obvious to them.">>
* Amazon's monopolization, but also doesn't fit this company's business model -- https://www.princeton-audio.com/company-news/goodbye-amazon-and-good-riddance
* Talking about yourself as a developer in an interview -- https://stackoverflow.blog/2017/04/27/how-to-talk-about-yourself-in-an-interview/?utm_content=buffer74fe2&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
* Hard physical limits of computation -- https://en.wikipedia.org/wiki/Limits_of_computation
* Fix your gross handwriting -- http://briem.net/8/2/205.html
* Babyboomer Comparison -- https://ratfacedman.wordpress.com/2016/08/10/lets-get-boomer-jobs/
* Zizek on the shrinking of Public Space in favor of Private Space -- https://www.youtube.com/watch?v=b834_Qv7wWM&feature=share
* Marxist Critique of Identity Politics -- http://www.seattleweekly.com/news/a-marxist-critiques-identity-politics/
* Abalene Paradox, the inability to manage agreement -- https://en.wikipedia.org/wiki/Abilene_paradox
* Felix Colgrave Videos -- https://www.youtube.com/user/MasterAardvark
<<<
Beware of he who would deny you access to information, for in his heart he dreams himself your master.

--Commissioner Pravin Lal, Sid Meier's Alpha Centauri
<<<

* [[Fun Word Collection]]
** Added a tiny intro. Collections should express an intent other than what is being catalogued. You should see why it matters to me, even if I only briefly explain it.
* [[Art of Living]]
** Edits. It is a placeholder. I'm still learning. Maybe it is just a joke. I don't know. I'm leaving it for now.
* [[Wiki Theory, Questions, Problematics, and Investigations]]
** Slight context. I have nothing to add at the moment.
* [[Annual Wiki Review]]
** Added Content
* [[2017.04.27 -- Wiki Review Log]]
** I'm doing the same thing. I obviously need more practice at this. Perhaps there will be better ways to format our structure the process. We will see.
* [[Wiki Review Log]]
** Added content. I'm glad I'm doing this. I hope it won't be too much work. We will review.
* [[Dave Chappelle's Redpill Conversion]]
** Digested it more.
* [[2017.04.27 -- h0p3's Log]]
** More reframing. This log alone may be reason enough to grind the [[Wiki Review Log]]. It's that crucial to personal growth.
* [[Wiki: Scheduled Practices]]
** Extensive writing added. This is a new area, and it needed to be filled out.
* [[2017.04.27 -- Diet Log]]
** Uhm, Good job? You accidentally did that. You've been eating more sweet things. That's kinda cool. That is unlike the self-image you had, or if you were accurate, it shows you've changed in behaviors. 
* [[2017.04.27 -- Link Log]]
** Tidy it up
|customTable|k
|Food|Calories|h
|Pizza|450|
|Berries+Pancakes|750|
|Chocolate|100|
|Salad|100|
|Potato-Spinach Snacks|125|
|Hotdogs|400|
|Beers|200|
|Eggrolls|500|
|Total|2625|f
!!j3d1h:

* Review past week: 
** Research Skills: Cosmetology
*** Hairstyles and trends for Spring 2017 (things she liked)
**** Blending eyeshadows of 3 colors
**** Long jackets
**** Practicing makeup
**** Needs a new powder puff. 
** Math: Singapore Math
*** Boring, but picking it up quickly. 
** Writing: 150 word count in her wiki
*** Her "thoughts on God" section were good
*** The minecraft section wasn't so good.
**Vocational Theory: CLI E-book
*** She's finished
**Vocational Practice: Applied Computer Science
*** Working on her mother's computer. Found memory errors through troubleshooting.
*** Writing a backup program.
** Reading: The Cuckoo's Egg
*** Finished. Was amazing.
** Social Studies: Khan Academy - World History
*** Ancient Persia and Greece. Zorastrianism. 
** Spanish
*** Mostly review, time and adjectives

* Plan next week:
** Research Skills: Cosmetology
*** One hundred years of cosmetics.
**** Looking for things to try. 
** Math: Singapore Math
*** Keep Pushing. Work on handwriting and neatness. 
** Writing: 250 word count in her wiki
*** Keep to more introspective, reflective kinds of writing. 
** Vocational Theory: Data Structures and Algorithms in Python
*** https://github.com/keon/algorithms
**Vocational Practice: Applied Computer Science
*** Finish writing backup program
*** Force linux to not use the bad memory addresses
** Reading: The Ethic's Toolkit
*** Keep bookmarks.
*** Do not forget to put them on your bibliography and link them through worldcat.
** Social Studies: Khan Academy - World History
*** Do more work.
** Spanish
*** Hopefully move to a new section.


---
!!1uxb0x

* Review past week: : 
** Research Skills: Emotional Control
*** Curation about stopping negative thoughts, calming himself down, etc.
*** His writing reflected what he found, and he sent links to his mom. 
** Math: Life of Fred - Cats
*** Prepositional phrases. Oddly not math. 
** Writing: 150 word count in his wiki
*** Messy wiki. It's hard to know what is going on.
*** Don't copy and paste. Always write your own words.
** Vocational Theory: Core Construction Curriculum
*** Handtools and Safety equipment
** Vocation Practice: Redstone
*** Built an "and" gate. 
*** Experimented with redstone on freetime. 
*** Built different kinds of redstone clocks
** Reading: 20,000 Leagues Under the Sea
*** Was good enough to read once more. The next time he'll read the unabridged version.
** Social Studies: Khan Academy - World History
*** First wave civilizations.
** Language Arts: Cris Books
** ph words


* Plan next week:
** Research Skills: Ways to Focus and Study
*** Also, apply what you've learned from last week for Emotional Control
** Math
*** Keep going.
** Writing: 150 word count in his wiki
** Vocational Theory: Core Construction Curriculum
** Vocation Practice: Redstone
*** "or" gate
*** Command blocks
** Reading: Doctor Jekyll and Mr. Hyde
*** Keep bookmarks.
*** Do not forget to put them on your bibliography and link them through worldcat.
** Social Studies: Khan Academy - World History
*** Neo-Babylonians to Persians 
** Language Arts: Cris Books





* Thinking About Cognitive Bias -- http://capablemen.com/psychology/cognitive-bias/
* Private, Throwaway CC#'s and Payments -- https://privacy.com/
* Put a Docker in your Docker -- https://github.com/rancher/os
* Feigning Surprise at Someone's Ignorance (a nono) -- https://jvns.ca/blog/2017/04/27/no-feigning-surprise/
* VM for Creating Dynamic Languages -- https://pointersgonewild.com/2017/04/29/zetavm-my-new-compiler-project/
*Peasants for Plutocracy: How the Billionaires Brainwashed America (Mini-Documentary) -- https://youtu.be/mWnz_clLWpc
* [[2017.04.28 -- Diet Log]]
** It's clear to me that vegetables and fruits are very filling. They don't have the satisfying feel of meat or grains, but these healthy foods still fill the volume-space of my stomach up preventing me from eating more. It's a placeholder.

* [[2017.04.28 -- h0p3's Log]]
** Edits and restructuring.

* [[2017.04.28 -- Seizing the Memes of Production]]
** Goes to the ideabag

* [[2017.04.28 -- Link Log]]
** Fewer technical links and more social ones. Interesting.

* [[/a/ -- Attic -- Graveyard -- Storage]]
** Renamed from "/v/ -- Old -- Meh -- Graveyard"
** I kind of need a place to store stuff that I don't find useful. I don't want to erase it. I don't know where to put it. We'll see what I do with it.

* [[2017.03 -- Family Log]]
** I really didn't say much.

* [[2017.03 -- Homeschooling Log]]
** I really didn't say much, 2.

* [[2017.02 -- Homeschooling Log]]
** I really didn't say much, 3. kek. I moved mountains yesterday. I have be okay with starting small. Look at all of my initial logs. They are always brief to begin with. Start small and work your way up.

* [[j3d1h: Autobackup to USB upon Mounting]]
** Talked to j3d1h about it. She thinks it is an interesting idea. We'll see. She has plenty of projects to work on already.

* [[Old random precursor document I found a copy of]]
** Garbage. Lol.

* [[2017.04.28 -- Wiki Review Log]]
** Let me reiterate what I said before in the previous review (as a review of [[Wiki Review Log]]), I'm glad I'm doing this.
* I'm pleased that you are spending time expressing yourself.
* Work on your syntax
* Your bullet points are awesome, nesting them is even cooler
* I love your tags
* I'm ecstatic that you are writing about how to make yourself happier.
* Work on having good titles for your wiki pages.
* Spend more time on your wiki. You should work on it every day.
I need a dream section on my wiki. I'm throwing some caution to the wind today, but I'm too lucid and capable of typing while on DCK not to. Therefore, I am sorry, but the DCK meditation is actually embedded in the wiki itself today. You will need to look through the snapshots to see the structural changes I'm trying to make. Crazy wild man on drugs changing his wiki here. Yup. It's important that I can literally change anything while on DCK. That's part of how it works.

Essentially, I need happier parts of my wiki. I've got plenty of brutal honesty. I've even got practical metamodern work. I don't have enough dreams on here. Dreaming is part of being human.<<ref "1">>

Here are list of links:

* 🢔⦗[[Dreams|Dreams of h0p3]]⦘🢖
* [[My Wife]]
* [[The Pinnacle of Parental Sacrifice]]
* [[Dreams of h0p3]]
* [[2017.04.30 -- DCK Meditation]] (woot, self-reference)
* [[Sanity: What Standard To Use?]]

----

Fred de Rosset. I need to learn more about this man. We need closure. He is incredibly gifted with language (My God, Man). He may even be a genius. I know it when I see it. He is an empath. He may reject me out of hand. I don't know. I think Fred de Rosset was obviously in the world I was interested in, but he did it narrativiely and 


I was so lucky to go to Berea. God damn. It changed me forever. Transformation.

I should develop a relationship with Fred de Rosset. Maybe not. He has the missionary kid background to understand. If he could see my autism, he would get it. 

Here is my worry, he would completely fail to understand me entirely. I know I am brilliiant. *cackle* No, but for real, I'm straight up weird brilliant. These men changed my life. 



Of course, my son doesn't have to be like me. We know that. How do I help him become the best him? The happiest him? How do I 


Am I jousting with a figment of Fred de Rosset? Does he understand? Will he?


There are very few people who are qualified to understand the entirety of me. For real. It's just a fact. People can be redutctive and try to define me, but they can't. Fred was brilliant. I saw it. Before my very eyes. These professors were like gods to my wife and I. The status redpilled relationship godlike strcuture thing is gross. whatever. move past it. The fact is that these people were our idols.

Idol is such an interesting word.It looks funny. *drug addled* ** paranoia**

My idol, unfortunately, Fred de Rosset was not who I wanted him to be. That's not his fault. That's not my fault either. It is what it is.


I want to note that I am typing cleanly enough on DCK today. This ii very interesting.


DCK is the spark of randomness. When we dissociate, we can step outside of ourselves, walk aroudn the building of who we are (in an oversimplified, infantile sense) and 



---

<<footnotes "1" "I recognize the hocus-pocus retarded spiritualism is a Slip one could make. I'm not here to do that. Dreaming comes in many shapes and forms. It's worth thinking about.">>
|customTable|k
|Food|Calories|h
|Pear|100|
|Chili|600|
|Ice Cream|180|
|Mandarins|230|
|Total|1110|f
!! How has your health been this week?
* 1uxb0x
** Coughing more. Allergies suck. Maybe he is "Mr. Poe" from a Series of Unfortunate Events (so my son says).
** Theory Coughing may be from the cat's fur!!
* j3d1h
** Allergies getting better. Officially starting puberty. Woot.
* k0sh3k
** Starting her period. Her migraine today is strong, having them more often. I'm writing on her behalf today. Serious lack of sleep, despite trying hard for it.
* h0p3
** I've had a lot of headaches. My sleep has been meh. I can't wait to start work again so that I can get back into the groove of things.

---
!! What happened last week? Have you been happy this past week? Why or why not?
* 1uxb0x
** Happy most of the time. Good. Got to play with his friends this week, but not as much as he would have liked. 
* j3d1h
** Mostly happy. The school schedule is okay, and she feels like she is still getting used to it. Haven't done much game-wise. 
* k0sh3k
** It has been a crazy busy week. Finals weeks is always like that. Things will start to calm down soon. The lack of sleep is not helping.
* h0p3
** Fixed the car. Didn't fix the dryer. Did a lot of laundry. Our apt. laundrymat is thankfully cheap. I wrote a lot. I'm so ready to get back to work.

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** Worked hard this week. 
** His writing was a real step up.
* j3d1h
** Goes out of her way to make life easier on her family.
** Worked hard on fixing her mom's computer.
* k0sh3k
** Very patient with her family this week.
** She's participating with us in working on our wikis. I'm very grateful for that too.
* h0p3
** Funny enough to deserve a slowclap.
** Gave good presents, and was kinder this week. 

---
!! What will you do this week?

* 1uxb0x
** Find out when Earth Day is...
** Try origami
* j3d1h
** Rock humanities even "more better like"
** Work on her Calorie logs
** Preserve her free time by quickly finishing her chores
** Draw
* k0sh3k
** Read and write. Awesome.
** Pet cats
** Make her hubby a sammich at least once this week. =) (teehee*)
* h0p3
** School work. 
** Maybe fix a dryer? 
** Finish my work up on my Monthly and Weekly Audit. This is my first time doing it.
* Your bibliography needs to be fixed.
* Your calorie log is practically empty.
* Consider capitalizing your titles
* I like your tags
* Consider cleaning out "Orphans/Hidden tiddlers"
* Consider adding content.
* Thank you for adding "New" to both of our wikis
* Adore your programming section
* Name Notepad something different.
* Add spoilers tag
* Your Orphans and "Old" stuff is the most developed part of the wiki
* Spend way more time on your wiki
* You didn't write on the 24th and 25th
* [[Thank you!|http://bookwyrm.life/#Monday%2C%2024th%20April%202017]], we can't afford deer food, sadly. It interestingly feels like you are writing to me directly, my dear.
* I love how you are being a good example to the kids in showing off your open education learning. Recording it shows how much it matters to you, and in time, they will see how much it should matter to them as well.
* Use more exclamation points!!!
* Your Legal page needs aesethic touchups. Make it pretty. Make it all caps. There are legal conventions for going all caps.
* Add a "New" tab. Ask [[j3d1h]] how to do it (I don't remember how it worked).
* Write more! =)
* A well-made hitpiece on Postmodernism -- https://areomagazine.com/2017/03/27/how-french-intellectuals-ruined-the-west-postmodernism-and-its-impact-explained/
* Another attempt to decode the next incarnation of 4chan -- https://getriced.com/4chan-trolls-media-thinking-ok-sign-racist/
* Lovely (and classical) attempt at a distinction between Cults and Religions -- https://www.reddit.com/r/explainlikeimfive/comments/68fmny/eli5_whats_the_difference_between_a_cult_and_a/
* I have no doubt of Assange's innocence of this allegation, but the timing of it continues to leave me questioning -- https://www.reddit.com/r/dataisbeautiful/comments/68fpud/how_often_do_americans_that_dont_believe_in_god/
* Re-reading is key to actually Reading -- http://www.nybooks.com/daily/2015/06/26/reading-is-forgetting/
* Someone is confirming my bias about technofeudalism -- https://medium.com/@ebonstorm/feudalism-and-the-algorithmic-economy-62d6c5d90646
* Confirming what I've long thought about different trends in Apple user populations (since the first iPod really; I had no problem with them before that) -- http://www.medicalnewstoday.com/articles/314376.php
* Don't talk to the cops -- https://news.ycombinator.com/item?id=14205917
* The IP Golem only grows -- https://www.techdirt.com/articles/20170424/23470637227/why-is-congress-such-rush-to-strip-library-congress-oversight-powers-copyright-office.shtml
* Interweb Memes are lazy -- https://broadly.vice.com/en_us/article/how-meme-culture-is-getting-teens-into-marxism
* [[2017.04.29 -- Homeschooling Log]]
** I used this to create the first [[Homeschooling Log Template]]
* [[2017.04.29 -- Link Log]]
** Inspired me to create [[Philosophipolitical Prescription: Videos]]
* [[2017.04.29 -- Wiki Review Log]]
** Today's is very short. Yesterday's was fairly long. I can see that this log may generate //disincentive// to create "New" tiddlers. This is not what I was expecting, but I should have seen it coming. I'm not sure how best to combat this. Essentially, reviews/audits create a tax burden on innovation here (as le capitalists would say). Fight through it. The greater good is at stake.
* [[2017.04.29 -- Diet Log]]
** I'm not forcing myself to any limit. But, c'mon bro, be honest with yourself. This is still lacking vegetables. It's got easy junkfood, and it doesn't have enough of what you need. 
!! Log:

* [[2017.05.07 -- 1uxb0x's Wiki Log]]
* [[2017.05.14 -- 1uxb0x's Wiki Log]]
* [[2017.05.21 -- 1uxb0x's Wiki Log]]
* [[2017.05.28 -- 1uxb0x's Wiki Log]]

!! Review:

* I want to see him write a well-developed gaming section. This is an avenue to get him into writing. I know it opened the world of writing to me quite a bit. Speaking about things that mattered to me at a younger age has paid off dividends. I hope it will be the same for him.
* It's very hard to get him to write. I need to continue to find ways to reward him for him, and ways to habituate it. 
* He's been writing a Blessing Log. It helps him see the positive aspects of everything. I think it has been immensely useful to him.
!! Log:

* [[2017.05.07 -- DCK Meditation]]
* [[2017.05.21 -- DCK Meditation]]
* [[2017.05.28 -- DCK Meditation]]

!! Review:

* I missed a week because we were traveling to my brother's that weekend.
* I'm really glad I've started doing this systematically. The seed and growth of this wiki was fueled by cannabis and DCK, but only now do I see the value in trying to harness it in this way.
* My meditations have been influential in my behavior, perspective, and beliefs.
* My meditations are noisy, messy, all over the place, and yet...they are improving significantly.
* Oddly, since I've been doing this, I've begun to retain my ability to type moreso than usual. I'm not sure what this means.
* Dissociation comes in degrees, and I wonder how writing while under the influence affects this spectrum.
* I really do need to have my wife go over it with me. She should see, and I need her thoughts.
* There are many unfinished thoughts and stories in these meditations. I know what I want to say about them. I'll consider them to be writing prompts, possibly.
!! Log:

* [[2017.05.01 -- Diet Log]]
* [[2017.05.02 -- Diet Log]]
* [[2017.05.03 -- Diet Log]]
* [[2017.05.04 -- Diet Log]]
* [[2017.05.05 -- Diet Log]]
* [[2017.05.06 -- Diet Log]]
* [[2017.05.07 -- Diet Log]]
* [[2017.05.08 -- Diet Log]]
* [[2017.05.09 -- Diet Log]]
* [[2017.05.10 -- Diet Log]]
* [[2017.05.11 -- Diet Log]]
* [[2017.05.12 -- Diet Log]]
* [[2017.05.13 -- Diet Log]]
* [[2017.05.14 -- Diet Log]]
* [[2017.05.15 -- Diet Log]]
* [[2017.05.16 -- Diet Log]]
* [[2017.05.17 -- Diet Log]]
* [[2017.05.18 -- Diet Log]]
* [[2017.05.19 -- Diet Log]]
* [[2017.05.20 -- Diet Log]]
* [[2017.05.21 -- Diet Log]]
* [[2017.05.22 -- Diet Log]]
* [[2017.05.23 -- Diet Log]]
* [[2017.05.24 -- Diet Log]]
* [[2017.05.25 -- Diet Log]]
* [[2017.05.26 -- Diet Log]]
* [[2017.05.27 -- Diet Log]]
* [[2017.05.28 -- Diet Log]]
* [[2017.05.29 -- Diet Log]]
* [[2017.05.30 -- Diet Log]]
* [[2017.05.31 -- Diet Log]]

!! Review:

* Average Calorie Intake: 2220 per day. 
* I'm still not holding myself accountable to anything yet. 
** I think I'll milk out as much utility as I can just by doing this first. I already have many plates spinning and few drugs to abuse. Be wise though.
!! Log:

* [[2017.05.07 -- Family Log]]
* [[2017.05.14 -- Family Log]]
* [[2017.05.21 -- Family Log]]
* [[2017.05.28 -- Family Log]]

!! Review:

* I'm glad we added the compliment section. It has been valuable. It is important that we see the positive things in each other. I'm going to have us start to formulate them before our meetings to make sure nobody feels like they have to do it on the spot, and I want to increase their thoughtfulness.
* My son has been fairly clumsy and noticing it. 
* My wife has had a lot of headaches this month. I think it's just been a rough month overall for her. [[h0p3's Log]] suggests this as well.
* Our "to do" next week sometimes works and sometimes doesn't. Perhaps we should reflect more its value or how to adjust it. I want it to be more useful to us.
!!Log:

* [[2017.05.03 -- h0p3's Log]]
* [[2017.05.05 -- h0p3's Log]]
* [[2017.05.06 -- h0p3's Log]]
* [[2017.05.08 -- h0p3's Log]]
* [[2017.05.10 -- h0p3's Log]]
* [[2017.05.11 -- h0p3's Log]]
* [[2017.05.13 -- h0p3's Log]]
* [[2017.05.15 -- h0p3's Log]]
* [[2017.05.17 -- h0p3's Log]]
* [[2017.05.23 -- h0p3's Log]]
* [[2017.05.25 -- h0p3's Log]]

!! Review:

* k0sh3k's vitamins do seem to have some effect, but she is still generally exhausted. I feel bad for her.
* The kid's schoolwork continues to improve. It feels like 2 steps forward 1 step back though. 
* The dryer got fixed. In fact, that bathroom is just plain better, with the new catbox, washer, etc. It feels like some of the pressure is lifted.
* I'm still using my spinner. It sits right on my desk. I like to spin it, type for a bit, give it another spin, and type some more. It's an interesting way to oscillate my attention. On another note, my presents for my wife have not arrived.
* My sleeping habits have arguably improved somewhat. No cannabis, almost no alcohol now, just DCK. DCK obviously made huge improvements this month. 
** Note, I still fall asleep downstairs and drag myself upstairs in the middle of the night. I'm getting there. 
** I hope to improve this significantly before the union, where I expect I'll need to be far more flexible. Money, confidence, and direction may give me the emotional spoons for it.
* I've really enjoyed playing magic with the kids. I think my son adores it the most. It is a game, a world even, for planning.
* I spent a lot of time dealing with my thoughts about my parents this month. I hope I can move onto focusing on more important and immanent concerns. I think I have more to write though.
* I tended to write in h0p3's Log every 2-3 days, except towards the end. I should have written about yelling at the kids for not doing their schoolwork. I didn't though. What does that mean? 
!! Log:

* [[2017.05.07 -- Homeschooling Log]]
* [[2017.05.14 -- Homeschooling Log]]
* [[2017.05.20 -- Homeschooling Log]]
* [[2017.05.27 -- Homeschooling Log]]

!! Review:

* We started the month out with a restructuring. This has been good and bad. The lack of journaling has not been good. The lifting of stress on me has been invaluable. My wife has a more direct hand in motivating the children. This allows me to feel like I'm not the only one pushing, and I think it gives me emotional room to maneuver. I still have a heavy hand in shaping their school work.
** Ironically, we said we wouldn't do bootcamps. We did at the very end of the month. It seemed to be a mistake. The bootcamp went well, but the break in the schedule may not have been. Both kids had a hard time getting back into the groove.
* My daughter has done quite well with her vocational studies. My son did well, but we've reached a point where it is clear that some fundamentals are missing which prevent him from making progress. We have to wait and work these out first. 
* My children have a difficult time with executive functioning. We are still working on this. It's hard to learn to be wise, to love oneself, and to empathize with one's future self.
** I feel like a real failure here in so many ways. I can't give up though.
* I started having the children keeps log. I hope that this will be an avenue to train them to use their wiki's wisely, consistently, etc. 
* My son has spent more time reading about autism, depression, thoughtloops, etc. Knowing is the first bit of the battle. We need to find ways to integrate, apply, and exercise his knowledge. It will be a long road. I'm going to walk it with him. It is our journey together.
!! Log:

* [[2017.05.07 -- j3d1h's Wiki Log]]
* [[2017.05.14 -- j3d1h's Wiki Log]]
* [[2017.05.21 -- j3d1h's Wiki Log]]
* [[2017.05.28 -- j3d1h's Wiki Log]]

!! Review:

* We've been working on recording out diet. My daughter and I work on this together. I'd like my wife and son to join us. There are many fish to fry though.
* I restructured her wiki for her after seeing she wasn't doing it. 
* We've started keeping school logs again. This has been a good choice.
* I am continually impressed how she readily learns about and modifies her wiki's code.
* It's great to see her code there.
!! Log:

* [[2017.05.07 -- k0sh3k's Wiki Log]]
* [[2017.05.14 -- k0sh3k's Wiki Log]]
* [[2017.05.21 -- k0sh3k's Wiki Log]]
* [[2017.05.28 -- k0sh3k's Wiki Log]]

!! Review:

* I'm still trying to convince my wife to start developing the right habits now. 
** At the moment, structuring and spending time peeling her content apart would be useful.
** Writing logs would help her accomplish tasks she cares about. For example, once in a while she will write the first page to a book and then just give up. She just needs  to pour in one drop at a time, day by day. 
* I'm hoping she'll spend one big day to migrate all her pictures over. I think once she has built a library she values one time she'll have an easier time realizing that she can and should spin up other projects on her wiki as well. It's getting over the first hurdle that is the hardest, I think.
* I really enjoy reading what she has written over the week. I feel like I get to know her better, even though I talk to her everyday about the content she is writing. The product is somehow different, and it gives me another perspective on who she is. I'd read her all day if I could. I hope I can do the same with my own children.
!! Log:

* [[2017.05.01 -- Link Log]]
* [[2017.05.02 -- Link Log]]
* [[2017.05.03 -- Link Log]]
* [[2017.05.04 -- Link Log]]
* [[2017.05.05 -- Link Log]]
* [[2017.05.06 -- Link Log]]
* [[2017.05.08 -- Link Log]]
* [[2017.05.09 -- Link Log]]
* [[2017.05.10 -- Link Log]]
* [[2017.05.11 -- Link Log]]
* [[2017.05.14 -- Link Log]]
* [[2017.05.15 -- Link Log]]
* [[2017.05.16 -- Link Log]]
* [[2017.05.17 -- Link Log]]
* [[2017.05.18 -- Link Log]]
* [[2017.05.19 -- Link Log]]
* [[2017.05.20 -- Link Log]]
* [[2017.05.21 -- Link Log]]
* [[2017.05.23 -- Link Log]]
* [[2017.05.24 -- Link Log]]
* [[2017.05.25 -- Link Log]]
* [[2017.05.26 -- Link Log]]
* [[2017.05.28 -- Link Log]]
* [[2017.05.29 -- Link Log]]
* [[2017.05.30 -- Link Log]]
* [[2017.05.31 -- Link Log]]

!! Review:

* I want to reiterate (again) how my wife was correct about the formatting. I hope she will have more good ideas.
* This was my first complete month of keeping Link Logs. It was a worthy adventure.
* I learned to hold onto tabs in my browser and sit on them for a while. There was less pressure, and I kept what I really wanted to keep.
* I'm glad I try to have something to say, however small and useless, about each link. I often know what I've read or seen is valuable, but can't express why, how, or in what ways.
* I love the links I chose. Lol.
* I started out nicer and got nastier (justifiably, I'd argue). 
* I suppose my [[Link Log]] is a place to store memories. A place to think about what I've been reading about. Let us hope it will be useful.
!! Log:

* [[2017.05.01 -- Pipefitting Log]]
* [[2017.05.02 -- Pipefitting Log]]
* [[2017.05.03 -- Pipefitting Log]]
* [[2017.05.04 -- Pipefitting Log]]
* [[2017.05.05 -- Pipefitting Log]]
* [[2017.05.08 -- Pipefitting Log]]
* [[2017.05.09 -- Pipefitting Log]]
* [[2017.05.10 -- Pipefitting Log]]
* [[2017.05.11 -- Pipefitting Log]]
* [[2017.05.12 -- Pipefitting Log]]
* [[2017.05.15 -- Pipefitting Log]]
* [[2017.05.16 -- Pipefitting Log]]
* [[2017.05.17 -- Pipefitting Log]]
* [[2017.05.18 -- Pipefitting Log]]
* [[2017.05.19 -- Pipefitting Log]]
* [[2017.05.20 -- Pipefitting Log]]
* [[2017.05.22 -- Pipefitting Log]]
* [[2017.05.23 -- Pipefitting Log]]
* [[2017.05.24 -- Pipefitting Log]]
* [[2017.05.25 -- Pipefitting Log]]
* [[2017.05.26 -- Pipefitting Log]]
* [[2017.05.29 -- Pipefitting Log]]
* [[2017.05.30 -- Pipefitting Log]]
* [[2017.05.31 -- Pipefitting Log]]

!! Review:

* This has been, arguably, the most successful and longest lasting Log I've had thus far. It really started me down this log-keeping path. 
* I feel like my Pipefitting Log this month has shown me that I've soaked up the majority of what I'm going to get out of this program. In addition to my financial needs, it seems obvious to me that I should pursue employment. I think I'll miss out on some cool things, 2 NCCER books of content (I should still perhaps pickup some copies), and especially welding. It's worth sacrificing these opportunities, I believe.
* I covered socketwelds, buttwelds, and completed the coursework. Good job!
* It took a month to get together with Dale, the welding instructor. I'm glad I did though. The wait was worth it. I have had a lot of people tell me to forget pipefitting and go into welding, although I've had many pipefitters tell me I'll be a great pipefitter too. What do I want? I want stability, now. I believe I can learn to weld at the union, and worse comes to worse, I can weld at my own house and take my work to Dale when I have the chance. He will help me on the side, I believe.
* Creating the second simulator for the classroom was a real project. I'm proud of my work. It wasn't perfect, but I did a good job.
* I spoke at length about the people I worked with this month. I think that's good. I need to continually generate perspective on the people around me and my social interactions. Simply put, socializing is not my strength as an autistic person. This is a valuable tool for helping me overcome my disability in this realm.
* Overall, my posts tended to be shorter this month (or so it feels).
* I'm going to miss not working with Chris, when the day comes. I need to get his number and stay in touch with him. I legitimately like him.
* I said that my days weren't as productive as I'd have liked. I think that is another sign to myself that something is off or wrong. I'm not moving at the pace I want. I'm not making the progress I need. I know I can do more. I think employment really is the next step here.
* I'm on my first piece of serious morally permissible (if not obligated) deception: I must find an employer for the short-term, but I can't say that (else they won't hire me). I need to make money, and I need to get enough done that I could walk into the union as a 2nd or 3rd year (which would be amazing). 
** Also, after I am hired at the union, I want to negotiate the possibility of an accelerated course. I believe I could learn to be a journeyman pipefitter in a year, and perhaps a journeyman welder in a year or two. I am a unique outlier, and exceptions should be made for me. I'm worth that investment. I want to push into valves as soon as possible. 
*** It would be amazing to build up relationships around the nation as someone who does valve work. Maybe they could ship me valves, I'll work on them, and ship them back? I could work in my own shop! That would be sick! Dreams, perhaps infeasible and implausible at that.
* We had a huge break in the middle of the month. I'm really glad that I came to school anyways to learn from another instructor. It was a valuable use of my time and a wise move.
* I've not really had any productive writing on my offdays. Perhaps I'm doing something wrong here.
* It really was a productive month. I think I was being too hard on myself.

!! Log:

* [[2017.05.15 -- Prompted Introspection Log]]
* [[2017.05.16 -- Prompted Introspection Log]]
* [[2017.05.17 -- Prompted Introspection Log]]
* [[2017.05.18 -- Prompted Introspection Log]]
* [[2017.05.19 -- Prompted Introspection Log]]
* [[2017.05.20 -- Prompted Introspection Log]]
* [[2017.05.21 -- Prompted Introspection Log]]
* [[2017.05.22 -- Prompted Introspection Log]]
* [[2017.05.23 -- Prompted Introspection Log]]
* [[2017.05.24 -- Prompted Introspection Log]]
* [[2017.05.25 -- Prompted Introspection Log]]
* [[2017.05.26 -- Prompted Introspection Log]]
* [[2017.05.27 -- Prompted Introspection Log]]
* [[2017.05.28 -- Prompted Introspection Log]]
* [[2017.05.29 -- Prompted Introspection Log]]
* [[2017.05.30 -- Prompted Introspection Log]]
* [[2017.05.31 -- Prompted Introspection Log]]

!! Review:

* I started this log up. It was useful at times. It also felt lacking at other times. I can't expect gold every time though.
* I crack myself up sometimes though. 
* It's more loosey-goosey here while also giving me space to be philosophical. I like it.
!! Log: 

* [[2017.05.01 -- Wiki Review Log]]
* [[2017.05.02 -- Wiki Review Log]]
* [[2017.05.03 -- Wiki Review Log]]
* [[2017.05.04 -- Wiki Review Log]]
* [[2017.05.05 -- Wiki Review Log]]
* [[2017.05.06 -- Wiki Review Log]]
* [[2017.05.07 -- Wiki Review Log]]
* [[2017.05.08 -- Wiki Review Log]]
* [[2017.05.09 -- Wiki Review Log]]
* [[2017.05.10 -- Wiki Review Log]]
* [[2017.05.11 -- Wiki Review Log]]
* [[2017.05.14 -- Wiki Review Log]]
* [[2017.05.15 -- Wiki Review Log]]
* [[2017.05.16 -- Wiki Review Log]]
* [[2017.05.17 -- Wiki Review Log]]
* [[2017.05.18 -- Wiki Review Log]]
* [[2017.05.19 -- Wiki Review Log]]
* [[2017.05.20 -- Wiki Review Log]]
* [[2017.05.21 -- Wiki Review Log]]
* [[2017.05.22 -- Wiki Review Log]]
* [[2017.05.23 -- Wiki Review Log]]
* [[2017.05.24 -- Wiki Review Log]]
* [[2017.05.25 -- Wiki Review Log]]
* [[2017.05.26 -- Wiki Review Log]]
* [[2017.05.27 -- Wiki Review Log]]
* [[2017.05.28 -- Wiki Review Log]]
* [[2017.05.29 -- Wiki Review Log]]
* [[2017.05.30 -- Wiki Review Log]]
* [[2017.05.31 -- Wiki Review Log]]

!! Review:

* There are many, many storylines running through the Wiki Review Log. In a weird way, it is the central heartbeat of the wiki. 
* It has been my first full month of log, and I can now see how much they did shape my perspective, goals, and my month in general. 
* There is a lot of weighing, skepticism, and waiting in these logs. 
* The [[Wiki Review Log]] helped shape [[h0p3's Log]]
* A lot of posts just have "edited" or "audited," and that's okay. At the very least, I've clarified myself. I won't get tectonic shifts all the time, and that probably would be the best thing in the world anyways. Drop by drop!
* It's clear that [[Philosophipolitical Prescription]] and [[Realpolitik Speculation]] dropped off the map. I believe that [[Link Log]] has taken place here. This may not have been a good thing, but I just don't seem to have the energy or desire to write in these older repositories. 
** I need to think of proper ways to retire them or set them as long-running repositories which don't expect constant posts.
* Ha, I saw in my Wiki Review Log what I saw in my monthly audit of my Pipefitting Log about my constant claims about being unproductive, I just forgot about it. I'm still formulating a theory, I guess.
* While I will continue to complete this log, as I see its merits more clearly, I also believe it does not even come close to solving the executive function and self-conversational problems I'm still having. I hope to improve it over time and eventually find out what's missing.
* I must admit that I feel like I'm on autopilot and just "getting through it" in my Review logs. That said, I now have a story to look through. I have a narrative to interpret. I will continue to think about ways to improve this. I also feel like I need an unstructured writing time on my wiki. I need to force myself to write for a certain amount of time, but not on a specific topic (or something like that).
|customTable|k
|Food|Calories|h
|Chili|250|
|Pears|200|
|Apples|200|
|Mandarins|105|
|Grilled cheeses|400|
|Brussel sprouts|50|
|Tomato Soup|75|
|Ice Cream|180|
|Peanut Butter Toast (fuck yeah)|400|
|Total|1860|f
* Opensourced version of an interesting personal firewall tool -- https://github.com/evilsocket/opensnitch
* Trump doesn't like the constitution today because it gets in the way of his agenda, boohoo -- https://www.independent.co.uk/news/world/americas/us-politics/donald-trump-us-constitution-archaic-really-bad-fox-news-100-days-trump-popularity-ratings-barack-a7710781.html
* Facebook performing unethical scientific experiments for the sake of gaining money -- http://www.news.com.au/technology/online/social/leaked-document-reveals-facebook-conducted-research-to-target-emotionally-vulnerable-and-insecure-youth/news-story/d256f850be6b1c8a21aec6e32dae16fd
* Wealthy give to charity for status; The Charity Market is a failure -- https://www.theatlantic.com/magazine/archive/2013/04/why-the-rich-dont-give/309254/
* Intel's ME is officially known to have a backdoor.<<ref "1">> -- https://semiaccurate.com/2017/05/01/remote-security-exploit-2008-intel-platforms/
** Omg, color me sooo fucking surprised...anyone paying attention knew that. The timing and the way in which it is becoming more public knowledge is what we must actually question.
** https://downloadmirror.intel.com/26754/eng/INTEL-SA-00075%20Mitigation%20Guide%20-%20Rev%201.1.pdf
* Read about it, but seeing it is even harder to swallow -- https://digg.com/video/trump-cbs-interview-walk-away
* Phone-based SSH authentication for your Desktop -- https://krypt.co/

---

<<footnotes "1" "And, yet, I'm addicted to that single-threaded performance. For the love of God, I hope AMD catches up and opensources their rootkit.">>
Today was kind of a letdown. 

I drove my wife to work this morning. We had our usual argument about the nature of humanity. She still has faith in humanity, and I do not. Did this color my perception? Did I just pay more attention to it? Or is this coincidence? Or both? I told her I have faith in her, and even myself (even if only out of practical necessity we must take up that mantle of faith). I honestly believe we pursue the truth. It's why we change. I'm not convinced the probability of others changing is high enough to warrant faith in them. I feel justified in choosing to have faith in individuals, but I'm not required to (especially not by any rational standards I can find).

So, I walked into class and we sat around. We studied for a math exam. Chris thought it was a shame that we had to study for this and that people failed it (algebra and geometry). It is the kind of math that everyone should know. I just moved onto studying for the next exam on pipethreading. It was a joke. Chris and I talked about the plans for the class. It's clear that after buttwelds and this 2nd pipefitting book (the last book of the standard class), we'll actually be done. Effectively completing the extra pipefitting books as an elective isn't something our teacher really wants to do, although I will try to do it.

We were ready to take the exam immediately, but the teacher decided to give us the answers first and then to let us study until lunch (obviously unnecessary). He's purposely holding us back. I eventually just grabbed my computer to surf. Meanwhile, the guys started talking about politics. What were otherwise just normal stupid people became violently stupid people. They praised Trump. They adored his attitude and aggression. They really do see immigrants as their enemies. They despise gay people. They hated Obama without reason. They openly admitted they knew little to nothing about politics, but still felt justified in their opinions. 

Look, we're thousands of miles away from my view of the world here. I can't expect these retarded kids to ever get anywhere close to where I'm at besides basic socialism (which they've been trained to hate from birth). I would interrogate them with the Socratic method, and it was obvious that they didn't give a shit. They were fundamentally anti-intellectual and proud of it. I could see from their glances and body language that I was failing their good ol' boy conservative shit test. Lol. I am disgusted by these human beings. 

Look, I'm more than qualified to argue on the topic. But, there were so many things going wrong in their arguments that there was no way to distill it and walk them through it. It was a logistical nightmare. We couldn't evaluate or argue. Reason and facts didn't matter.

I can forgive much. Willed-ignorance I will not forgive, especially not habitual ignorance. Virtue is Knowledge.<<ref "1">> I'm more than willing to concede that they would never be as knowledgeable or as intelligent about these topics as I am.<<ref "2">> I do expect people to do their actual best. I know they can do better, wildly better. They don't and they won't. I will not accept it, although I will not articulate anything of the sort directly to them.

Luke and Chris are the only remotely sane individuals, and even they are dumb as fuck. It's disturbing. I know, I'm redpilled, and I believe people are evil. Loss of innocence, yadda yadda. Somehow I'm still blown away. I need to develop a gameplan to deal with stupidity. Obviously, I cannot tip my hand anymore. 

I'm dealing with human garbage here. I will respect them and be kind to them. I will seek rights for them that they surely haven't earned simply because I think it is demanded by the golden rule. I can forgive stupidity about most topics, but not broadly normative topics like politics. 

I am fairly alone out here. It sucks. And, you know what, it's not my fault. I hate (in the sense of like, not love) people because they really are bad. A part of me mourns the end coming to swallow up our species. But, part of me is happy to see the Human Disease, as a species, die off.

Also, I'm so thankful we are homeschooling. Avoid the fucking trash. 

Anyways, before the exam, the teacher had a guest come in to have him sign paperwork. This grown woman could barely use her computer. The illiteracy was annoying. The teacher had me come three times to help, and eventually I just did it for her. 

We took the exam. Simple. I also asked about the Precision Measurements and Torque seminars that are sometimes made available to pipefitting students. I know my teacher doesn't get along with these other teachers so well, but I would like to have the opportunity to learn these things. You never know when they'll come in handy. Apparently, getting the Torque technique down correctly will be very useful, particularly in professional pipefitting environments that require you to sign off on your work.

Afterwards, I watched others for a bit. The teacher finally gave Luke, Mel (Keaton), and me an assignment. We were to take down the 2" simulator screwpipe down and replace it with an identical socketweld fabrication. Eventually, Chris and Nash were assigned the 1" (it appears they avoided rolling offsets entirely). Luckily for everyone, I kept my isometric drawings for each simulator fabrication. 

I went ahead and measured mine out to make sure the drawing was accurate (because I somehow don't trust myself: I felt rusty today). Our teacher had to help us find flanges for this large pipe. We dug around and found 2 stainless steel socket weld flanges, but the third had to be a slip on. This made our takeouts abnormal. Also, I asked if we should put a valve on this. We found a socket weld flange for 2" pipe, a very tall looking valve that I couldn't identify. 

I did the math a couple times to make sure it was right. We had to add-on instead of take out for the valve. Noteworthy, while for fittings I can trust my book for the 1/8th of an inch heat expansion on my takeouts, when I calculate them by hand, I must remember to do this. I forgot the 1/8th of an inch for the socket weld flanges and the valve. It wasn't hard to adjust for it though. It's super important that we get the math right. I had to convince Luke of this, and I did it by showing the center-to-end measurement minus the complete takeout to the wall of the recess. It was off by 1/8th of an inch from our book. Then I explained how our other pieces required we do the same. Mel didn't give a shit. He's a retard by choice.

---

<<footnotes "1" "Hanlon, suck my dick.">>

<<footnotes "2" " Pause for humility complaint; let's be clear, even I am deeply ignorant even though I strive not to be,">>
* [[2017.04.30 -- Link Log]]
** Inspired me to revamp [[Link Log]]
* [[2017.04.30 -- Family Log]]
** Not convinced the compliment section will work out.
* [[2017.04.30 -- k0sh3k's Wiki Log]]
** I don't have much to add, but I want to force myself to say something. I want to encourage [[k0sh3k]] to continue writing about her day. I want more than just her link log. 
* [[2017.04.30 -- 1uxb0x's Wiki Log]]
** My son's wiki needs serious work. I can't say I'd have done any better at his age. I dont' know. I know I was much lazier in many ways. Regardless, we'll keep pushing. This is a skill he needs.
* [[2017.04.30 -- j3d1h's Wiki Log]]
** She's spending a lot of time structuring, which is excellent. She needs to spend time filling it with content.
* [[Philosophipolitical Prescription: Videos]]
** I want to set of videos to convert others. To help unfuck their minds. 
* [[Homeschooling Log Template]]
** I'm still figuring out how I want it to fit on my wiki. Wha tis the best practice. I want to make sure that I'm not overbearing and that this is constructive.
* [[2017.04.30 -- Wiki Review Log]]
** My worry about my Wiki Review's being enough of a burden to cut down on my actual work on the wiki has lessened. Lol. That's fine.
* [[2017.04.30 -- Diet Log]]
** DCK almost forces me to fast. I just don't feel like eating, sex, drinking, video games. I still like to think and write though. I actually cleaned the house yesterday too. I did all the laundry. I'm productive as fuck (attitudinally, even if I'm not 100% up to it physically).
* [[Beware of those who say "X has no class"]]
** Added some. It's generally correct.
* [[My Wife]]
** A dream-section needs a dream. Added.
* "Fred de Rosset"
** Deleted and moved to DCK. Clearly DCK ramble.
* [[The Pinnacle of Parental Sacrifice]]
** Slight Edit
* [[Dreams of h0p3]]
** This section needs a lot of work if it is going to be so highly placed. Let us see if it survives.
* [[2017.04.30 -- DCK Meditation]]
** You will note there are section written after the DCK meditation. I had definitely come down. Hence, I take these to be the standard afterglow which I use through the week. 
* [[Sanity: What Standard To Use?]]
** My continued mistrust. What can I say. I don't think I'm the crazy one. My derealization is from being redpilled, and from accepting truth backed by enormous evidence that I didn't want to believe for the longest time. I think the rest of the world is far crazier.
|customTable|k
|Food|Calories|h
|Peanut Butter Sandwich|300|
|Apple|100|
|Pears|200|
|Mandarins|105|
|Ice Cream|180|
|Wraps|900|
|Shells and Cheese|300|
|Pork Chop|150|
|Beer|125|
|Total|2360|f
* These capitalists point out a significant chunk of unemployment data (still failing to account for underemployment almost entirely), but clearly do not understand the underlying causes or solutions -- http://www.milkenreview.org/articles/where-did-all-the-men-go
* Because I'm part of the trend that has a hard-on for cognitive bias -- http://nautil.us/blog/-why-youre-biased-about-being-biased
* Font size for bodies of text on sites is apparently too small on average, and perhaps that claim applies to mine as well -- https://blog.marvelapp.com/body-text-small/
* Sadly, leave it to the Libertarians to teach us how to engage the common public -- https://aeon.co/ideas/how-robert-nozick-put-a-purple-prose-bomb-under-analytical-philosophy
* League of Legends, Patch 7.9 Notes -- http://na.leagueoflegends.com/en/news/game-updates/patch/patch-79-notes
* Windows 10S, an attempt to lock consumers into the Walled Garden they've been creating for quite a while, and it is a more direct competitor to ChromeOS. May it die a thousand deaths (and it seems to miss the point of what makes Windows a mainstay even today: backwards compatibility + legacy software) -- http://www.businessinsider.com/microsoft-windows-10-s-2017-4
* We benefit from slavery, even if we don't always realize it -- http://www.kvoa.com/story/35247392/sierra-vista-woman-finds-note-from-chinese-prisoner-in-walmart-purse
* To those who make fun of keyboard warriors, there is a sect of the coalition of the alt-right (part of that group I have listened to for a very long time, since the beginning of 4chan) which people should be take more seriously. This article has many flaws to it, but it is a step closer in the right direction to understanding contemporary memetic undercurrents <<ref "1">>-- http://nymag.com/daily/intelligencer/2017/04/beyond-alt-understanding-the-new-far-right.html
* Yet another //nymag// article, this one targeting a particular brand of libertarians -- http://nymag.com/selectall/2017/04/the-techno-libertarians-praying-for-dystopia.html
* China seeks to make yet another another censored, centrally controlled version of Wikipedia (they have a couple large ones [probably tired of blocking]) -- https://arstechnica.com/tech-policy/2017/05/20000-chinese-writers-will-create-their-own-wikipedia-competitor/?mbid=synd_digg
* A sad day that a standing president is paying for propaganda during his presidency for his presidency -- https://digg.com/video/donald-trump-ad-fake-news
* Capitalist Pig virtue signaling -- https://digg.com/video/kimmel-son-obamacare
* Idiotic "leftists" blaming automation instead of properly blaming capitalism, capitalists, and a lack of basic structures of society which maximize the utility of technology for all -- http://www.counterpunch.org/2017/05/01/thinking-twice-about-automation-may-day-2017/
* A poor argument about Tor -- http://www.hackerfactor.com/blog/index.php?/archives/761-Exploiting-the-TOR-Browser.html

---

<<footnotes "1" "I'm what they call alt-left. That said, I think they don't even understand that term. Nobody does from what I can tell. They really just mean the Left, not alt-left. They've forgotten what actual leftism is.">>
Today was more productive than yesterday. Mel and Luke did most of the cutting. This, of course, meant that the lengths tended to be wrong. They do not check their work after they produce it, and this means that patterns go unnoticed and therefore uncorrected. I checked the pipes later and kindly pointed it out. I did some grinding to fix it.

The welding teacher stopped by to see about welding. He wants me to do a 2G weld, since it counts as a 1G on the tests. I felt like I would be abandoning my group to do this. I asked to do it on Thursday. I went to change my mind, but he was at that point too busy. He wanted the bevel to be more precise, so that's what I did.

They had some problems with the bandsaw, but fixed it. It was clogged and not draining the oil. During that time, I went to the financial services office. I got my tuition taken care of, since AB&T was going to pay for tools and part of the tuition, leaving me stuck with a $500 I couldn't pay. I told them to forget the tools (especially since their new fiscal year starts in July, and my funding jumps to $2100 for the last semester). I could use it.

I got the fittings and flanges set, and I finished off the last third of the cuts. Luke and I did the tip-grind work together. Luke sits at about 80% of my speed. Mel just sat around.

Anyways, we started fitting. I'm unofficially the group leader. We do it my way, although I regularly ask for suggestions and their thoughts (sometimes they see something I don't, particularly Luke). It is possible Mel wasn't pleased possibly because I'm a trimester behind him, but clearly better than he is (I've heard a few comments from him). Ultimately, he did jack shit today. TJ was right about him. He is lazy as fuck (and that fits what I've seen in the shop for the past 4 months). Turns out that Mel doesn't even like physical labor at all (what is he doing in the pipefitting program?). Luke at least will work (although he screws around too often enough [less so with me]). He at least enjoys working when he does though. Mel, on the other hand, did some tacking (and even decided to tack for the other group for a while) and made 3 cuts.<<ref "1">> That was it. He wanted to "study" for a test because Nash was avoiding work by studying as well. They really just want to sit in the classroom doing nothing but play on their phones. Idiots.

Chris was all by his lonesome while Nash screwed around. I helped Chris a few times when I felt he needed the extra hand to get stuff done. Some stuff just requires two people, and it sucks that my leaving his group meant that he is forced to do so much on his own. The difference showed. Luke and I (and technically Mel, although Mel also "worked" with Chris) finished our project and had it mounted by the end of the day, and Chris/Nash are maybe 60% of the way through.

Chris needed my help with the redrawing. If you recall, my teacher threw us a curveball at us by having us install valves after we had already mounted fabrications on the simulator. That meant that the 1" drawing wasn't accurate. Chris was using this drawing, and he needed to do the math for it. I did the math last time. This time he had to, but he was struggling and didn't want to get it wrong (that would be a lot of lost effort). So, we sat down together and worked it out. Although, now that I'm thinking about it, I forgot (like I asked myself not to, lol) to tel him about the extra 1/8th of an inch for the heat expansion. We took those into account in the math for my project, but I think we forgot for his. 

Luke and I spent a lot of time leveling and plumbing today, and I think it paid off. Luke and I use an interesting trick sometimes. When we feel we can't quite get a fitting on level, we will put a pipe on it first and then attach that fitting+pipe to the main construction, since this gives us a point to level/plumb off, and it is the ultimate test. I don't always like this trick, but sometimes it really fits the problem for us. I need to think more about it.

Anyways, when we went to mount it, it looked to be off by a solid 3 inches. Nash wanted to help us mount instead of working on his project. Lol. Anyways, we had run into this before on screwpipe, and instead of being disheartened, we just tried to make it work. It fit just fine when we went to tighten the bolts on the flanges. There is going to be a serious element of experience that I must acquire to know if and when a fabrication is going to mount-worthy or not. It is simply not obvious enough by getting it into place. Steel is flexible. It isn't clear how flexible, but flexible enough that an inch per ~7 feet can be squeezed out. Clearly, even when you do everything as carefully as you can, you still only get "close." The goal, I take it, is to get close enough.

I must say, I'm glad we put 4 tacks on. There is clearly serious pressure on it. I wonder if we would normally weld it before mounting it in the field. I need to ask my teacher. I think it would be wiser to fit it first.

Luke said that we won't be doing any of this in the field (my teacher says otherwise, and I take my teacher's claim to be more authoritative). Yes, some people in the field stovepipe. I do not want to. Math makes my life easier. Oh yeah, several times, including today, my teacher told me not to listen to Luke. I generally don't, but sometimes Luke is right. My teacher has a bad habit of marking someone as X in his head and being unable to see them as being anything other than X in all contexts. Granted, we all must rely upon rules of thumb, but even our rules of thumb must be empirically verified from time to time.

At the end of the day, the teacher told us to move onto replacing the 1.5" screwpipe. Chris laughed, claiming he anticipated this. Reasonable enough. He then became somber as he realized that the 3" pipe, for which we couldn't find screwpipe flanges, could easily be his next project (after his 1" pipe), since we likely have 3" pipe socket weld or slipon flanges. 

---

<<footnotes "1" "Let's be clear: Mel sucks at tacking. His actual pipefitting skill is just as bad.">>
* [[2017.05.01 -- Link Log]]
** Edited.
* [[2017.04 -- Family Log]]
** Completed monthly audit. It's my first time. It was brief. I did re-read everything and try to find patterns.
* [[2017.04 -- DCK Meditation]]
**  Completed monthly audit. I have mixed feelings about it. Some of this writing is pointless, if not embarrassing to myself. But, I can see that some of it is quite reasonable at the end of the day. 
* [[2017.04 -- Pipefitting Log]]
** Completed monthly audit. There are clearly many social components of my job to think about. I'm glad I'm thinking about them. I need to intellectualize that which is not gutterally natural to me.
* [[2017.04 -- Link Log]]
**  Completed monthly audit. Links didn't surprise me. I do want to curate more about pipefitting though. I need to take finding information about my job more seriously than I have. It can't just be an at-work kind of thing. It is should be integrated into my daily online life. I hope I can, at least.
* [[2017.04 -- h0p3's Log]]
**  Completed monthly audit. I'm grateful to myself. That sounds weird, but I am!
* [[2017.04 -- Diet Log]]
** Completed monthly audit. I'm not committing myself to anything yet. I'm just recording. The patterns are there. 
* [[2017.04 -- Wiki Review Log]]
** Minor edit. I like how it gives me a change log to see when I delete wiki pages. It gives a reason for it. Breadcrumbs, exceptions, and explanations are useful. 
* [[2017.05.01 -- Wiki Review Log]]
** It's weird, but I don't mind reviewing my reviews. There is something quite meta about it. It allows me to track trends. I've been struggling to figure out how to do 🢔⦗Focus⦘🢖. It could be weekly or monthly. I could have two section. A weekly section and a monthly one. There should be a final destination for my logs. 🢔⦗Focus⦘🢖 should be it. The reason "weekly" looks good to me is because "Recent" fills up quickly, and I want to make sure that I'm taking into account not only "New" but also those pages which were edited. It is part of knowing where I've really spent my time.
* [[Family Activities]]
** Added more to family activities
* [[2017.05.01 -- Pipefitting Log]]
** Made some edits and an addition that I forgot to mention.
* [[2017.05.01 -- Diet Log]]
** I love peanut butter. I can afford it. I shouldn't overdo it though.
|customTable|k
|Food|Calories|h
|Peanut Butter Sandwich|300|
|Pears|200|
|Apple|50|
|Mandarins|140|
|Shells and Cheese|200|
|Pizza|600|
|Hummus, Chips, and Veggies|300|
|Beer|125|
|Total|1915|f
!! How is your health? Daily routine? 

It's very early in the morning, 2:30am, as I write this.

I'm doing okay. I was sleeping okay, but k0sh3k wasn't. I came downstairs to make sure my snoring and my fan (which ultimately can never be quiet enough) wasn't keeping her up. I'm not having a hard time waking up. 


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

A couple things. k0sh3k is doing poorly. She can't sleep, and her energy is sapped. It feels like she is a zombie. I thought her vitamins were helping, and for a time it seemed they did. Now it seems like they are not working again. 

The kids had a bad school day, and they lied about it. When their work was checked, it was clear they had screwed around instead of actually doing their work. I was pissed. 

When it came to doing his kitchen chores, my son took forever again. It takes him two hours to do work that should really only take him 30 minutes (20 if he was pushing it). I ended up standing there directing him. He doesn't like to be bossed around and corrected (no one does). I'm not sure how better to help him see the value in just working hard.


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

Right now, we are feeling incredible amounts of pressure from many directions of life. 

Financial pressures are strong. A lot is riding on me finding a decent paying job. Not having a dryer is a reminder that we can't really afford to buy another. Nothing seems to be going right for us, even though we have worked hard. 

Our children's futures seem to hang in the balance. We must rely upon them to actually do their work or this falls apart. It is much to ask of young people. Unfortunately, there don't seem to be good alternatives. The schools available to us just plain suck. As usual, we are finding it difficult to motivate them. Carrots and sticks seem useless. We take their Saturdays to complete the work they haven't during the week. This puts even more pressure on the weekends which are already generally quite busy.

k0sh3k has taken a more direct hand in helping the kids do their work. This is even more pressure on her. She sees that we are failing here. I think that's why she can't sleep. I also think she is depressed. k0sh3k doesn't have a lot of options either. For her to fall apart would bring the entire family down. Much rests upon her shoulders now. 

My loss of faith in humanity and God only adds to differentiation my wife and I feel from each other. We aren't united on these core things. 

We feel like failures as parents, spouses, and human beings.

We are out here alone. We have emergency support, but no other support, friends, or family. 

The political climate is terrible. There doesn't seem to be much hope.

Here I am, late at night, unable to sleep (my wife is unable to sleep too) because of some damn good reasons. 

---
!! What are you going to do about what happened?

What can we do that we aren't already doing? I think we have to keep trucking. Never give up! 
* Unfortunate limitations of cooperations and unions, as I have found in my inspection and hypothetical construction/planning of them. They survive in the midst of capitalism (and not always at that), but cannot fundamentally convert it (slavery's competitive advantage cannot be overcome through market principles) -- https://www.marxists.org/archive/luxemburg/1900/reform-revolution/ch07.htm
* Someone with too much hope about trailerpark poor, despite his empathy -- http://bittersoutherner.com/digging-in-the-trash-david-joy
* Neoliberalism Literature:
** https://oliverhartwich.com/2009/05/21/neoliberalism-the-genesis-of-a-political-swearword/
** https://medium.com/@s8mb/im-a-neoliberal-maybe-you-are-too-b809a2a588d6
** http://washingtonmonthly.com/magazine/may-2007/a-neoliberal-education/
** http://0055d26.netsolhost.com/friedman/pdfs/other_commentary/Farmand.02.17.1951.pdf
** https://www.washingtonpost.com/archive/opinions/1982/09/05/a-neo-liberals-manifesto/21cf41ca-e60e-404e-9a66-124592c9f70d/?utm_term=.9edae17d7d80
** https://static1.squarespace.com/static/56eddde762cd9413e151ac92/t/58e3c27b2e69cf75e8b510fc/1491321484029/the_neoliberal_mind_web.pdf
** https://www.reddit.com/r/Economics/wiki/index#wiki_frequently_asked_questions
* Trump's threats towards the National Park twitter account makes more sense. Trump desperately cares about his image -- http://time.com/4764256/donald-trump-inauguration-photo-national-park-service/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+timeblogs%2Fswampland+%28TIME%3A+Politics%29
* Confucius Institutes are injections of Chinese governmental powers into our education system -- http://www.nybooks.com/daily/2017/04/28/should-the-chinese-government-be-in-american-classrooms/
* Build Yourself a Linux (easier than Linux from Scratch apparently) -- https://github.com/MichielDerhaeg/build-linux
* ex-Facebook Exec tells us what we already knew -- https://www.theguardian.com/technology/2017/may/02/facebook-executive-advertising-data-comment
* Pipefitting Links:
** https://en.wikipedia.org/wiki/Pipe_fitting
** http://www.ua.org/
** http://www.cram.com/flashcards/pipe-fitter-nccer-6311485
** https://www.slideshare.net/cookharrison53/top-10-piping-interview-questions-with-answers
** http://files.eric.ed.gov/fulltext/ED374313.pdf
** http://www.hexlines.com/tag?q=pipe+fitting+formulas+pdf
** https://pipefitter.com/
* Root, a bank with an API for programmers -- https://news.ycombinator.com/item?id=14256300 -- https://root.co.za/
* Zero knowledge protocols -- http://pages.cs.wisc.edu/~mkowalcz/628.pdf
Today was a long day, but productive. I took out my 1.5" simulation drawing, which clearly didn't have correct initial measurements (hence the drawing was wrong). If you recall, we had to unmount and fix it twice on screwpipe. Luke and I measured it by hand as best we could (center-to-center measurements, unfortunately, can't be made with precision). I edited the drawing, including the valve that wasn't there before (if you recall, the teacher had us stovepipe it in there later). I did the math, and then I went over it with Luke. 

Luke did the cutting, and I did most of the rest. Luke's cuts, for once, were on point. That made me happy. We both did the tip-grind work. We worked hard because Luke was leaving early at 11:00. I had to remind Mel that I would need his help. Technically, he is in my group, but he obviously doesn't want to be. He always wanders over to Nash to sit there. Lol. Good for him. Less competition in the market for me.

Luke and I completed an arm before he had to leave. I wish I could have worked with Luke the entire time. The work we did was good.

After lunch, I gave Chris a bit of help since Nash was absent (as usual, Mel as well). Chris rejoiced+complained that he actually generally works faster without Nash and Mel (but our teacher doesn't like letting us work alone; in fact, I was forced to stop working on my project because Mel wasn't there). That may sound odd, but it's true. They make things worse, not better. Case in point, Nash and Mel made a huge mistake on the one thing they did on Chris' project which required them to take it apart (used the wrong pipes). Anyways, Mel eventually came back, and so we went back to my/our project. 

Mel is a terrible fitter. He barely understands what we are doing sometimes. He doesn't understand the order of what we doing. He often can't mentally rotate the objects or understand the isometric drawing very well. He also just "wings it" on things we shouldn't (although, I wing it when I have to). Working with him is not a pleasure. Nothing looks right with him, and when it comes to fitting, he never has it fucking level. I'm a fast tacker too (unlike his lethargic, unskilled ass), so there is no excuse. We had to recut the tacks several times to make up for his mistakes, and a couple we just let go.

I must say, I find it difficult to use socket weld fittings which are so chewed up. We have very little to level off of, and we can't use the weld-area sides at all (which really sucks). This will be much easier, I believe, in the field with new parts. 

We were interrupted to help Chris and Nash mount their simulation piece. It fit quite well (1" pipe was the easiest). Chris and Nash then came to help us finish our project. We just needed to put the last pipe on and the flanges.

We had a hard time with the last flange. There wasn't a good way to put it on. The teacher pointed out that we should have looked ahead to see it. Basically, there was no way to rotate the fabrication in the vise so as to be able to two-hole the flange. I should have done it in advance. 

What we did was take the entire fabrication off the table, and let it rest on a flange and stacked steel plates underneat the other side to make it level. Then we made the vertical plumb and lucky to strap it to the vise (1" off the vise, but good enough). Then we could two-hole.

Also, I learned a neat trick from my teacher today. He showed us how to use the square against the flange face and measure from the side of the pipe. As long as it has the same distance from the square to the pipe all the way down, you know the flange is perpendicular (hold the square flush against the flange, obviously). 

It fit well, if not tightly (we thought it might do this, since Nash had fitted a flange a bit too far out, and because I had aimed for slightly larger heat expansion gaps to compensate for how I was fitting yesterday). We got it all mounted, and then the teacher came by. It was obvious that it wasn't perfectly level. It was level enough to mount it just fine, but still not great. We want it to look good! So, we busted out the measuring tapes and checked each pipe to see how much we'd need to take out and where. 

We measured from the top of simulator down to each end of the horizontal pipes (parallel to the top of the simulator). We found the difference to be 7/8" and we found a single pipe to take it out of. This was frustrating. The 1.5" has been flawed in both screwpipe and socketweld.

The teacher said it's not a problem as long as we fix it. It happens on the job often enough. I felt better about it. 

We took it apart, Chris and I, and I cut the the pipe. To add to the frustration, the cutting disk snapped on me mid grind! That shit can fuck you up. I was lucky it didn't hit me. I grabbed another disk and made the cut. I found that I could just take the tacks off one side, then use the bandsaw to cut the 7/8" off it. 

Mel eventually decided to help me tack it back on. We did wing it here, but it was late and I simply couldn't find another way to do it. We had to do the same ghetto steel plate trick to raise it. I then winged it on the rotation and used two levels at once to try and have it plumb 360 degree around. Mel doesn't put enough tack material for this. So, I did it. Afterwards, Mel left to use his phone. 

Nash, Chris, and I brought it over to mount it. Chris and I did the actual bolt work while Nash went to play on his phone. Thank goodness Chris is there. Without him, I don't think it would have been finished by the end of the day. I apologize to him for my mistake (ultimately, I take myself to be responsible for what happens to this fabrication, even if I didn't directly make the mistake in the fitting) causing him to have to work extra instead of being able to screw around like the rest. He said it was nothing. 

I'm okay with having to redo it though. I've completed about 2 projects in the time that the other group took to do 1, and I had the more difficult pipe and drawings to work with.

As to my fitting, I think I overcompensated for the 1/8th inch for heat expansion. I know we weren't doing enough yesterday, and I think I went a hair over too many times. It adds up. This showed in the tight horizontal fitting. It also may be part of the reason it was 7/8" off (although, it could only be part of that problem). 

* I am pleased that steel is so flexible. The pipefitter alignment-pry bar (or whatever the tool is called) is just amazing. I desperately need one.
* I need to finish my envelopes for AB&T. 
* I need to talk to the electrician teacher again.

Also, we finally have all the parts for the second simulator. I'm hoping we get to start making that. It will be weird that we would do that as our first buttweld project though, since it is permanent and we can't replace the parts. It's super important that we do a good job on it, and I don't think our first time doing buttwelds is the appropriate time to do it. We'll see what the teacher thinks.

Note, the teacher didn't assign any 3" simulator project. I take it we won't be doing one.
I'd love to see the United States government use their resources to build or help build highly secure open source software, hardware, and infrastructure. Our government should be leading the charge.  We really could build a world class operating system that would secure the world. We should build hardware that is verifiably safe and not backdoored. We could stop a large portion of hacks and usher in a new technological age. 

They should take the Gnu/Linux project, or OpenBSD, or whatever, and just start contributing massively to it. They could build an easy to use, highly performant, and perhaps even provably secure software ecosystem (against significant threat models). I know, I know, you're thinking that they have a terrible track record (in so many ways). As a matter of pragmatism, I must have hope that we can do this well though. 

Bring the big players to the table. Are all the best software engineers in silicon valley working for big companies? Subsidize their work for the public good. Give reasonable stipulations. If they won't, then find a way to break their walled garden monopolies. Threaten their existence if they don't comply. 

Work with Intel, AMD, IBM, ARM, or even roll your own. Build hardware that is known to be safe.

We can make an infrastructure that is extremely difficult to attack, and we should. And we should give that software to everyone around the world. We should make privacy, security, and performance the norm. 

We should overhaul our digital infrastructure with opensource computing.

* [[2017.05.02 -- Wiki Review Log]]
** Monthly audits are good. I like how it gives me an overview. I'm actually excited to see what I say about this month in my next review. The structure of the wiki is definitely more programmatic than it was the previous month. That said, I've had a lot less of other kinds of content.
* [[2017.05.02 -- Diet Log]]
** I probably shouldn't have eaten that extra wrap. I need to eat smaller amounts over the course of the day. I need to feel hungry and not exactly fill myself up. I don't need to go to the "full" feeling everytime. Also, my farts have been smellier than usual. I'm guessing it is the introduction of having the occasional beer and the chili. Chili is especially potent for me.
* [[2017.05.02 -- Pipefitting Log]]
** Made some edits. Also, it helped me realize what I failed to think about or say in today's Pipefitting Log. Being able to compare daily logs against each other is useful!
* [[2017.05.02 -- Link Log]]
** Edits
|customTable|k
|Food|Calories|h
|Pears|200|
|Wrap|300|
|Mandarins|105|
|Biscuit and Gravy|350|
|Tikka Masala|400|
|Jalfrezi|400|
|Ice Cream|180|
|Beers|200|
|Tikka Masala|400|
|Total|2535|f
* New League of Legends client on Linux, again -- https://www.reddit.com/r/leagueoflinux/comments/696pil/79_how_to_get_100_platinum_polwine_config_after/
* Hackerone defers to the judicial system for arbitrating moral judgments (crossing the legal positivism normativity line) -- https://www.hackerone.com/blog/ethical-considerations-of-access-to-the-HackerOne-community
* I never did like Roger Penrose's arguments about consciousness, although I find it interesting that he and I agree that Gödel's work is deeply involved in our fundamental worries on the topic (and related); I am absolutely convinced our minds are reducible to Turing machines (organic at that, but I take up my position even when we posit very thick views of metaphysics) -- http://nautil.us/issue/47/consciousness/roger-penrose-on-why-consciousness-does-not-compute
* Obama endorses Macron. Heard it on NPR today. It is interesting to see Americans caring about French elections more than usual. This French election is yet another domino question. Is everyone catching the alt-right cold? -- https://digg.com/2017/obama-endorses-macron-unusual
* Interesting direct-from-China shopping -- https://www.wish.com/
Today was a very charged day. 

Nobody went to the computer lab today because the lady in charge had a death in the family. That meant that I didn't get to weld today, and we were all given a project.

We were tasked with building the second simulator structure (so we'd have two right next to each other for more complex simulator fabrications), as I suspected we might. My worries from yesterday were well-founded. Our teacher obviously expected us to do well on this, since we're using parts he had to go through a bureaucracy to beg for to get in the first place. I still think it was a lot to ask of us considering how we've never actually done any buttweld fitting before. Going straight into production may not have been the wisest choice. A few practice constructions would have benefited us considerably.

Nash and Mel went to carve out and bevel the generic sockolets to make them fit 3" pipe.  I asked Nash and Mel to leave one sockolet for me to try, since I want to have at least experienced doing it. Apparently, you can buy sockolets that are specific, but most people now just get generic ones for a job. This will be useful to know.

Chris and I went to the simulator to measure it and create an isometric drawing. It took us over an hour. We found that we were off by a 1/4th of an inch somewhere in the height. Our teacher helped us here, since he said it was possible that it was off. We checked the level, and we did the measurements again. It was Chris' first measurement that was off. I really hope we got it right, lol, because I drew it up, we did the math for it, and we went straight into cutting the pipe.

That shit was very heavy. Chris and I made the majority of cuts, specifically on the large pieces (since we couldn't afford to get them wrong due to a lack of materials). I eventually went to shape/bevel my sockolet. It turned out to be easy, although, I didn't put much of a bevel on it. My teacher said that normally a full bevel is applied, although it was just fine for what we were doing. Mine also actually fit the pipe, unlike Nash's and Mel's. They didn't pay enough attention or practice enough when we worked on stainless steel, and it really shows now that that it is assumed we can do it. They really do suck at it. Their suckiness played out today.

We then had to bevel the pipe. I explained how it should be done, even though I've never officially done it for any project. 37.5 degrees. I showed them how to use the bevel angle measuring tool. My bevels turned out pretty good. Their bevels were...not beautiful. Honestly, even Chris' bevels weren't really great. There's definitely some virtue theoretic tricks to it. I hope that I can practice to become really good at it. It's hard to articulate how to get it right, how to compensate, correct, etc.. Problematically, Nash and Mel did not understand  (even though they should have) that they shouldn't bevel into inner diameter of the pipe itself since it actually shortens the length of the pipes themselves. Luckily, I gave each pipe a hair more length anticipating the mistakes. 

The teacher noted how deeply they beveled, which thinned the walls of the pipe too much. This made it much harder to tack, as it was very easy to burn holes right through it. Is it my job to correct every single mistake I see? Maybe. It's difficult to have the right kinds of relationships with my classmates if I'm literally their teacher (blind and inexperienced as I am) the entire time.

We started fitting and tacking. Nash and Mel decided they were going to do the tacking. They wanted to put the pipes/fittings flush up against each other, but I told them we needed a gap. I got a wire for it, and showed them how it is done. I even told them that I was required to use an even larger gap, and warned we might burn holes. They didn't even think it was possible to weld it, but also felt like they could do it (contradiction). 

Chris did the fitting (which he tends to do well at, even eyeballing). I had to explain that we needed the high-lo's correct all the way around and that it needed to come straight out (I had brought out two squares and a level for this). In addition, we had to use the wire to gap it. This was the first time any of us had actual done any buttweld fitting, mind you. I should not be the one explaining this. The teacher should have been there from the beginning. 

Nash's first tack attempt made a hole, as I suspected it might. I suggested we turn the heat down (this helped considerably for me but not them; note, I had to keep knocking it down). I then asked to level and check it, but Nash wasn't going to have any of it (I probably made him look bad). He went straight into tacking the rest of it. That is to say, Nash went on to very clumsily tack it. Holes were everywhere. He gave up. Mel tried his hand. It didn't go well. I said I could fill them in, but Mel said I shouldn't touch it. I said I was going to try anyways. I turned the heat down again, and I did it. Lickity-split too. I jumped from one tack to other and nailed it into place. Of course, that shut them up for a second. It was obvious that they couldn't use the stick welder on low heat. I know it's hard to strike it, but it fill the holes safely.

Unfortunately, it was only after my tacking that I took a level to the fitting. I should have stuck with my first instinct and assumed we may not have fit it perfectly (because we didn't). Sadly, it was slightly off. You couldn't see it by your naked eye very well, but the level did not lie. I gave what is at this point my classic "oh shit" facepalm tarnation face, which everyone knows to mean we've made a mistake that is going to cost us. I pointed it out, and Chris saw what I meant. Nash and Mel thought it was fine. I said it wasn't. The teacher came by and said it wasn't right either. He took the squares against the side of the fitting and ran the side along the pipe. It was obviously off. Hence, we had to dismantle it. 

It was only then that the teacher explained we needed to use even thinner wire because the bevels were so deep (I also worry the teacher has given contradictory advice to me over the course of semester on this; I remember taking a trip to Millwright specifically to pick up thicker gauges wire for my welding sessions). In any case, as our teacher informed us again, there is some leeway on the angle of the bevel and the gap which must be decided by the welder's tastes.

At this point, Mel decided the problem was that we were stickwelding (embarrassed by the fact that I could tack a lot better than he can, even though that's all he ever wants to do). He convinced the teacher to let him MIG-weld it instead (any retard can MIG). This was obviously not the problem. I pointed out that welding wasn't the problem, it was the fitting. They ignored me. Fine. So, I decided to let them work on it themselves. They don't have to take my advice or hear my opinion. I just moved onto the other leg of the simulator. They clearly didn't need me, lol. Chris helped cut the piece for them, but saw I was moving onto the second leg. He decided to join me while Nash and Mel did it their way.

The teacher came to help us now. He explained the proper technique for fitting, and told us not to use the jackstand if we could help it (although said that sometimes you can't help it). He said that with time we'd get a feel for the high-los, and that if we needed (and when we could), we could look inside the pipe to get the right high-lo's. We fit the fitting on, gave one tack on top, and continue to fit, measure with the square, adjust, and tack it. Voila, done. We then moved onto fitting the second piece of pipe (sitting on the other "C" side of the T). We fitted it and tacked it. The level looked great. Even the square looked fine. Ah, but our teacher came by and explained that we should never use the square (as he had just shown us earlier) on pipe. He didn't explain why, but my theory is that we can't trust the bevel of the pipe, although I guess we can trust the manufactured fittings to be straight for the square (which is what the teacher had just done on the first leg).  

The teacher then set two combination squares against each pipe on either side of the T (instead of against each other) and had us measure the distance from the inside and outside of the lengths of the rulers of the combination squares. They were off by an 1/8th of an inch. So, clearly, it wasn't good enough. The teacher told us that he thought we should attach the sockolets after these fittings because we already had it setup.

After the teacher had left, Chris remarked that the teacher should have shown us that from the beginning. Chris was annoyed that the teacher was annoyed at having to show us this. I was annoyed too. Luckily, everything else was clean. I cut the tacks on either side, and we kept knocking it into place and testing with this new method. I then retacked it. 

After tacking it, Mel comes over to me and without saying "sorry" attempted to apologize. He says they really screwed up big time. He said he wanted to work with us altogether after they fixed their mistake. I glanced at what they had done. Unfortunately, using MIG puts a shit ton of material down. They had practically welded (not merely tacked) the pipe and fitting together. Unfortunately, they didn't fit it appropriately; it wasn't aligned, level, and straight. They didn't even try to get it right. They just tacked/pseudowelded. Ii looked really bad. He said they were cutting it and beveling it again. Afterwards, they were coming to work with us.

After Mel left, Chris and I gave each other the look. We really don't like working with these clowns. Whatever. We then talked about how to get the sockolets on in the right place. We had measured down to the floor on the simulator, but that included flanges on the bottom (which we weren't going to attach to our leg). We decided to subtract the flange takeout and measure from the end of the pipe we had, marking it with a wrap around. We did it for all three sockolets. We then had to figure out how to center these. My idea was to measure the outside diameter of the sockolets, and then mark the radius from our center point on either side. That way, when we fit the sockelet, we'd know where the edges should be. Mind you, these sockelets were very poorly cut by Nash and Mel; they were wobbly! This meant that we couldn't just nicely apply them and level them. I think they need to be fixed before we do this part.

It was then that Mel came by a second time. He said that the teacher had come out of his office and taken one look at Mel and Nash's work and shook his head in anger. Apparently, the teacher was disappointed+angry. He was definitely pissed at Mel and Nash. I'm not sure if he was angry with me or not. I think he partially was since he assumes I'm going to force them to do my way every time (although, even my way has mistakes, although generally fewer and more correctable ones). I think my teacher really needed to be a bit more angry with himself though. Ultimately, I am not in control of the class. I give my half-educated opinions, but people don't have to listen to me. Anyways, Mel said they really messed up badly, said the MIG wasn't working out, and he wanted my help fixing their mistake. I gave my condolences and said I'd be happy to help them. Chris pointed out that class was almost over. I said we'd try anyways. I left Chris to it, and I moved to help Mel and Nash.

I looked at the bevels, and they were fucking awful. They were chewed up and far worse than before. They destroyed the fitting and the lengthy pipe. I took out my measuring tape and an unused fitting. 6-3/4" I believe, and their fitting was now 6-1/2". Jesus Christ. I kind of panicked for a second. This mistake had repercussions since we couldn't just replace the fitting. But, I realized we could just recut some short pipe for the other side (extending the 14" pipe to 14-1/4") to make up for it. So, I said we could probably fix it. Mel said he really wanted to fix it today because our teacher was so angry. 

Unfortunately, Chris and Nash weren't going to touch this one. It was me and Mel. I tried to explain to Mel how he needed to hold it while fitting. I wish I could do the fitting, but I needed to do the tacking because I'm the only one who can strike an arc on such low heat and make it a legit tack. He felt he had it right, and I tacked the top. After he took his hands off it, I inspected it. It was way fucking off. The high-lo's were decent enough, but it wasn't even remotely straight. Maybe this shit is really hard, I don't know. I tried to knock it into place, but it was clearly too far off. After knocking it, the high-lo's were off. Thus, I said we couldn't fix it as it was. We needed to cut it and do it again. This dismayed him. Luckily, I didn't even need to cut it. I just bent it off with my hands. By that time, it was close to quitting time. We started cleaning. 

Mel was unhappy that we didn't actually get it fixed. I don't know what to say. They didn't listen to me, and they didn't really try to do a good job. I knew it was going to be a clusterfuck, and so I moved onto a different part of the project. I care about what I put my name on. Don't get me wrong. I definitely made mistakes and had my own hiccups too. Nobody is perfect. This was a kind of "you reap what you sow" moment though. I hope Mel and Nash will, yet again, learn to listen to me more often. They clearly need my help. We'll still have fuckups, but it generally won't be as often or as bad.

After we finished cleaning, the teacher told us we could go. He didn't seem too unhappy (maybe his Youtube watching calmed him down?). 

I got some gas and mailed my forms to AB&T. I should talk to my teacher about what tools to get with around $200. I want to use those funds up before July.






* [[2017.05.03 -- Subsidized Opensource Computing]]
** Edits
* [[Pipefitting Buylist]]
** Added dogs, tools, etc.
* [[2017.05.03 -- Link Log]]
** I have to say, I like compiling small libraries and groups of links. It's a way to dive in. It's basic curation and research.
* [[2017.05.03 -- Wiki Review Log]]
** I worry that I'm not saying important things, that I'm not drawing extremely relevant conclusions now. Hrmm, but perhaps I can't expect to strike gold everyday. It may be a slow process, hit or miss, that builds over time.
* [[2017.05.03 -- Pipefitting Log]]
** Edits. Also, it reminded me to modify my pipefitting log for today.
* [[2017.05.03 -- Diet Log]]
** Next time we go shopping, we are buying way more salad stuff. We ran out.
* [[2017.05.03 -- h0p3's Log]]
** Edit. I'm not sure I have much to add. I will think about it more. I thought about this post through the day today. It weighed on me some.
|customTable|k
|Food|Calories|h
|Jalfrezi|800|
|Tacos|1000|
|Beer|100|
|Wine|150|
|Mandarins|140|
|Total|2190|f
!! How is your health? Daily routine? 

Fairly good. Still sleeping well enough, but I wake up a lot. I'm not tired though, so this might just be a normal aging thing. I'm feeling the need to stuff my face with food. That's not the behavior I ought to engage in.

My routine is fairly standard. Going back to school/work gives me an excellent reason to wake up in the morning. I have much to do with my day. I like that feeling of having thing to do (and wanting to do them) throughout my days. I take that to be a good sign.


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

The car didn't start. Again. I feel like it's farce. I also feel like I'm better prepared this time, slightly. The car is charging as we speak. I traded back the old (brand new) charger that didn't work (since I tested it, just in case we would need it, and it failed). The new one is analog, and it works.


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

If I understood the technological problem, we wouldn't be having one. Lol. I think of the problem as being about lacking money to progress and replace this vehicle. I can't have a bad attitude about the vehicle; it has served us so well. I'm incredibly grateful to have it. It is easily my favorite car of all time, however beatup and shabby this officially antique aged car may be. It has done the job, and performed well above what we could ever expect. Let me reiterate again, I am so grateful to have this car. It's been a blessing.

Living in a society where this is common, well...that's the fundamental problem. Not much I can do about that either. 

Stoicism, friend. That is the answer.

(So, the tactic is to reframe and continually reframe the problem as necessary).


---
!! What are you going to do about what happened?

I'm charging it. I'll count my blessings. I'll work on that dryer while I'm waiting, eh? Lol. 

As to eating, I think I should stop eating later in the evening. Alternatively, a replacement snack, fruits and vegetables only, might be acceptable. That's when I prefer my beer, unfortunately. I do use it as a drug to relax.
* Like all of our recent presidents, he's cashing in -- https://www.theguardian.com/commentisfree/2017/may/01/barack-obama-speaking-fees-economic-racial-justice
* Gospel of Wealth: If you take the power, you take the responsibility -- https://www.theatlantic.com/technology/archive/2017/05/american-discourse-version-12/523875/
* Oh, but what about the children? Censor! Lol. -- https://www.washingtonpost.com/local/education/educators-and-school-psychologists-raise-alarms-about-13-reasons-why/2017/05/01/bb534ec6-2c2b-11e7-a616-d7c8a68c1a66_story.html?utm_term=.06303ff5f7ab
* Yet another argument in favor of Postmodern epistemology -- https://aeon.co/essays/the-complexity-of-social-problems-is-outsmarting-the-human-brain
* Makes Cuba sound pretty good #notallsocialists, etc. -- http://www.invent-the-future.org/2013/07/20-reasons-to-support-cuba/
* Yeah, Rex Tillerson is a good man with our best interests at heart -- https://www.commondreams.org/news/2017/05/04/tillerson-says-human-rights-will-not-interfere-america-first-agenda
* What appears to be yet another Trumpian gaffe seems more likely to paradoxically persuade his support base -- http://abcnews.go.com/Politics/trump-meet-australian-prime-minister-attend-intrepid-event/story?id=47187711
* Apple's untaxed holdings only continue to grow -- https://www.bloomberg.com/news/articles/2017-05-04/apple-buys-more-company-debt-than-the-world-s-biggest-bond-funds
* Trump's Mental Fitness -- http://www.npr.org/2017/05/04/526857048/trump-s-fitness-to-serve-is-officially-part-of-the-discussion-in-congress
* It's bad when /r/AdviceAnimals can point it out -- https://www.reddit.com/r/AdviceAnimals/comments/69ep13/i_find_it_crazy_that_this_is_a_thing_in_the_us/
* Some well-placed critiques of those who call themselves Leftists  -- https://www.theatlantic.com/politics/archive/2017/05/why-cant-the-left-win/522102/
* Among others, the NYT reassures us about improvements in unemployment, giving the wrong caveats! Their shift to the right of center (including their "climate skeptic" they've hired) is disturbing. At best, this is just another face of their neoliberal blindness -- https://www.nytimes.com/2017/05/05/business/economy/jobs-report-unemployment.html?_r=0
* Shameless lies, Trump's transition staff are even more openly bought and sold -- https://www.independent.co.uk/news/world/americas/us-politics/donald-trump-transition-staff-lobbyist-register-us-president-six-month-ban-issues-betsy-devos-a7718106.html
* Borg, Consciousness, and Human Evolution: Sign me up. Jaynes' thesis is exceptionally interesting, although the timing seems wrong. Change that, and it sounds far more plausible. My gut says there is a kernel of truth to it, even if it got most things wrong -- http://nautil.us/issue/47/consciousness/pre_conscious-humans-may-have-been-like-the-borg
* GOP Reps grab some beers, sing "Na Na Na Na, Hey Hey Hey, Goodbye," and head to the Whitehouse for a party -- https://digg.com/video/democrat-chant-health-care-vote
* Church and State issues. Tey voted Trump in. God help us all -- https://digg.com/2017/trump-religious-liberty-executive-order
* The mass incline of drone usage; a Big Brother Orwell never anticipated -- https://motherboard.vice.com/en_us/article/did-someone-leave-us-surveillance-drone-feeds-live-on-the-public-internet
I didn't arrive at school until 9:15. I was late because the car wouldn't start, again. When I got there, I informed my teacher I arrived, and then I plugged my charger into the car (I parked right outside the garage door entrance, just in case it wouldn't start again. 

Chris had already taken the exam. He said it was the hardest test we've taken yet. Nash eventually took it and said the same. I borrowed Chris' book with mine as collateral to read his highlighting. I knew I didn't have much time to study, and I trust Chris' highlights. 

I read the highlights first, then I read the sections which had highlights, then I re-read the entire chapter (I had read before earlier this week). Afterwards, I started grinding on the highlights again. This was literal test-cramming, although, I feel like I have a handle on the content. It was screwpipe, after all. 

I took the test and only missed one question. It wasn't so bad. I talked to the guys about it, and the things they missed weren't the hard parts. 

Anyways, the guys had already started doing some work on the simulator. The new guy could actually tack. That's good. He's an ex-druggie, and that's how he identifies himself. I suppose it's a way to gain underdog sympathy, etc.

I talked to my teacher about the state of simulator project. He thinks it will be fine, including Mel and Nash's error. We went over the flanges, and at first he didn't believe I took them into account. After checking again, he realized I had. 

Before we left, the new guy (don't know his name), the teacher, Keith, and I stood around talking. I literally had nothing to say. We're playing a social game in which I'm fairly inept and/or we are interested in very different things. I can talk about the job all day long. Other stuff, not so much. I noticed the same thing previously when I walked with the guys to the Burger Hut. I'm really quiet. There's not way to really socially integrate myself. These people would not want to know who I am, even if they could understand me. Being smart leads to loneliness. Good thing I talk to myself? What do you think, self? Lol.

I didn't really do much though. It was about time to leave. I cleaned, started the car, put away my stuff, and left.
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 //

This is a metapage specifically about 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖.<<ref "1">> Someone needs to be thinking about the state and nature of the projects I am working on from a more objective or metanarratival perspective. This is the reification of my mid-long-term executive functioning. I do it naturally, but forcing myself to write it down is useful.

I need a constantly updating gameplan for this wiki. I must hold myself accountable and strategize. I need to consider where and how I spend my time and energy on this lifetool and wisely adjust my behaviors accordingly.<<ref "2">> 

Thus, here I generate a list of my currently prioritized projects. It's a mid-term report on what I've recently been working on.<<ref "3">> After gathering that information, I hope to provide a narrative for those priorities to inspect and weigh. In the end, I will attempt to strategize, forecast, and redirect my focus.

---

!!Current Focus:

* Self:
** [[Taking care of my things]]
** [[Cleaning my nails]]
* [[Pipefitting Library]]
* Everything under [[Logs Collection]]
* 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖
* 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖

I've been sprawling out lately. My logs are clearly important to me. They are specialized journals that I continually grind through. They are places where I feel compelled to write. 

---

!! Focus Goals:

* Self:
** [[Taking care of my things]]
** [[Cleaning my nails]]
* [[Logs Collection]]
* 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖
* [[Pipefitting Library]]
* [[Links]]

I would like to make sure I'm developing the memoir portions of 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖. I also need to continue to expand the my [[Pipefitting Library]]. 

I can see I only have so much time in my day. It is crucial that I triage. Routine is excellent, but so is exploration and random injections (that's how things change). I'll keep adding to the wiki droplet by droplet while still grinding through my logs, filling out one existential section, and developing one highly practical section.

For now, there are two major changes I hope to achieve. One, I will be relaxing my work in 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖. Two, I hope to migrate or graft my massive store of bookmarks into the wiki.

---

!! Vault: 
* [[2017.04.24 -- Retired: 🢔⦗Focus⦘🢖]]

-------------

<<footnotes "1" "Here I briefly turn Husserl's ray of intentionality upon itself. When I am thinking existentially in a recursive manner, I can more decisively align my many orders of networks of beliefs and desires. Here I directly practice [[metaliving]].">>

<<footnotes "2" "Perhaps it needs to be done more programmatically. Having to give a qualitative explanation for quantitative arguments is a strong method of hyper-efficient inquiry (even with inductive/abductive risks).">>

<<footnotes "3" "How often should I update? How do I make these determinations? What standards am I going to use? Clearly, I have much to think about. That is likely a 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 kind of question, in a sense. It might be the central planner that governs even this page, or it might just be me. I don't know. I'm clearly not finished in my pursuit of what counts as my autonomy.">>
* [[2017.05.04 -- Wiki Review Log]]
** I've given more thought to what I said yesterday about not drawing awesome conclusions. My work on the wiki has been kind of minimal. Somehow working in a stringent and programmatic fashion seems to detract from my motivation to freely make content. We'll see how this weekend goes. In any case, I can't expect myself to be redlining the entire time. It's okay just have regular, slow days on the wiki.
* [[2017.05.04 -- Diet Log]]
** It was a delicious day, wasn't it? A moderately active man at my weight must eat 3,290 calories to maintain weight. I'm probably not that active. I'm still overeating. I can feel it in my stomach. This addiction is one of the hardest to kick. Jesus.
* [[2017.05.04 -- Link Log]]
** That League on Linux trick didn't work. Shame. I've now tried several things and none worked. I'm not really interested in digging around. I run league in Win8 VM. It can have serious FPS drops, and even at full screen, Virtualbox doesn't always place nice with my cursor placement (especially towards the edges). It works well enough though. I only play ARAM. Of course, that doesn't prevent me from swearing when it messes up.
** Made some edits too.
* [[2017.05.04 -- Pipefitting Log]]
** We'll see about fixing it on Monday. 
|customTable|k
|Food|Calories|h
|Apple|100|
|Pizza|300|
|Salad|150|
|Berries|75|
|Bucatini and White sauce|500|
|Sardines|200|
|Asparagus|60|
|Brussel Sprouts|75|
|Wine|250|
|Peanut Butter Toast|300|
|Veggies, Hummus, and Chips|400|
|Total|2410|f
!! How is your health? Daily routine? 

It's fine. I've been sleeping on the couch a lot. I usually wake up in the middle of the night and head back upstairs. I find it so easy to fall asleep to the TV. I know it's a bad habit. From my perspective, it is one of the few ways to drown out my thoughts. If I lay there in my own bed, I'll just think. Thinking begets thinking, not sleep. Overall, I still feel like I'm getting a sufficient amount of sleep, although it isn't great. 


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

k0sh3k gave me a my birthday present early. It is a very high quality "spinner" fidget toy. It's brass, 6-sided (detachable), heavy, and the bearings are excellent. I remember skateboard bearings as a kid that were very expensive, and these are even nicer. If you flick it well, it will spin for 3 minutes straight! That's crazy. It made me happy. 


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

She gave it early because she saw me checking out 1$ spinners on wish.com. Lol. This was a way to make sure I didn't. And, I think it is really cool that she knew me well enough to have purchased this well in advance of when I would consider even getting one. I loved my autism-sucky lanyard toy (spinning mostly, but gnawing too), and it makes sense that this would be something to try out. 



---
!! What are you going to do about what happened?

Count my blessings. Be grateful and thankful. Suck the marrow, lick the spoon, etc.

Continue to monitor sleeping habits. My nightly beer or wine should be well before I go to sleep, let's say 9pm is the latest I can have a drink.
* Interesting approach to dealing with bot attacks on a Tor hidden service -- http://www.hackerfactor.com/blog/index.php?/archives/762-Attacked-Over-Tor.html
* Your apps can (sometimes do, and eventually will) track you qua the sounds around you -- https://www.wired.com/2017/05/hundreds-apps-can-listen-beacons-cant-hear/
* Data laundering appears to have several definitions -- https://blog.ouseful.info/2012/02/03/several-takes-on-the-definition-of-data-laundering/
* Picketty's claim that the "Rate of return on capital is higher than wage growth" explains inequality far better than merely applying the Pareto principle -- http://jamesclear.com/the-1-percent-rule
* Extracting fresh water from icebergs towed from Antarctica; enjoy it while you still can -- https://www.independent.co.uk/news/world/middle-east/uae-icebergs-drinking-water-from-antarctica-towed-united-arab-emirates-a7715561.html
* Another Reddit metadata tool -- http://www.redditinsight.com/
* Cartoon distillation of Chomsky's Manufacturing Consent -- https://www.youtube.com/watch?v=34LGPIXvU5M&feature=share
* Police/judicial system victimizing victims through Material Witness Warrants -- http://www.bbc.com/news/world-us-canada-39662428
* 0-day Windows RCE -- https://twitter.com/taviso/status/860681252034142208
* Bilingual perceptual differences, yet another reason to think that language is at the very core of the framework of who we are as human epistemic agents -- http://www.lancaster.ac.uk/news/articles/2017/language-shapes-how-the-brain-perceives-time/
* The Evolution of the Douchebag Aesthetic -- https://digg.com/video/evolution-douchebag-style
* Fractal Consciousness and walking the line between chaos and order -- http://nautil.us/issue/47/consciousness/is-consciousness-fractal
* The evolving compsci security theory of adblocking -- http://randomwalker.info/publications/ad-blocking-framework-techniques.pdf
* A great intro video on Bayesian Theory -- https://youtu.be/R13BD8qKeTg
* VIM in action -- https://www.youtube.com/watch?v=o6omymj1JZI&feature=youtu.be
For at least the past few months, Russian actors have been interfering with the French presidential election. The French have been subject to similar Russian intervention tactics that the Americans experienced. Russia has done this over the decades (France was targeted in 1974), as have the hypocritical Americans. 

We've seen the same kinds of "fake news" propaganda injections into French memetic networks. Macron's computing infrastructure has been the target of significant hacks, with sensitive private data released into the wild. Russian news for Russians favors Le Pen as well.

Russia, or at least the Kremlin, obviously wants Le Pen to win. There is a famous picture of Le Pen and Putin shaking hands, and the PR moment means something. She's yet another alt-right insanity candidate which Russia wants to see elected. Russia wants that triple crown: Brexit, Trump, and Le Pen. 

If France were to elect Le Pen, there is a good chance they would Frexit the EU, and with it, bring the entire EU down. That would be the last straw. Similarly, Russia wants to damage NATO. Recall, of course, that these are significant competitors and opposers of Russian interests. Russia would benefit, however much they claim they wouldn't, from the lifting of sanctions. 

Putin may be to blame, but he's not the only sinner here. Vitally, I'm not accepting Russia as the bogeyman which we must fear so greatly that we give up our freedoms. I am convinced that our deep government is every bit as evil as Putin, only they are more successful in forcing their vision upon the world. First and foremost, I blame those in power.

However, I also blame ourselves for creating uneducated masses that can be swayed like this, for lacking a bullshit-detector, for people being unable to curate information for themselves, for anti-intellectualism, and for a lack of critical reasoning. I blame ourselves for building insecure infrastructures with built in backdoors instead of going for publicly funded maximum security opensource software and hardware. I blame humanity for being human.

My hope is two-fold:

* The French aren't as stupid as the Americans. I predicted Trump would win the election in early 2016 (long before the election), despite mainstream predictions finding it unthinkable. This time, I believe the mainstream predictions are likely correct: Macron will win.
** I would like to add that Macron is still likely a terrible choice in the end. I'm not saying the French are brilliant. They clearly fucked up in the first stage of their elections.
* If we are exceptionally lucky (and we won't be), the American people will see what Russia has been doing and realize that our government is playing the exact same game. Cliché time: we must revolt against those in power. Get woke, sheeple. Fight the power. Take it back while you still can.
* [[Current Focus of h0p3's Wiki]]
** I retitled 🢔⦗Focus⦘🢖 to be more in line with what it reviews (the wiki as a whole). I revamped it as well. It clearly needs more structural work. It is one of the harder parts of the wiki to write. The logs, in a sense, are easy compared to that work. It's okay that I don't know what I'm doing. I can only do my best, and look through your snapshots. Your best causes good change.
* [[2017.05.05 -- Link Log]]
** Edits.
** I'm not in love with my aggregated news sources themselves. I truly despise most of these publishers. 
* [[2017.05.05 -- Wiki Review Log]]
** I made a [[Realpolitik Speculation]] post because I noticed I wasn't doing more. I want to continue that trend. Let's see if I do. 
* [[2017.05.05 -- Pipefitting Log]]
** Edits. Forgot to say I spoke with my teacher about the simulator, and also didn't mention a moment of awkwardness.
** Also, I forgot to ask my teacher about which tools I really should buy off the list. I want to use all the resources available to me.
* [[2017.05.05 -- Diet Log]]
** Eating fewer meals helps. 
* [[2017.05.05 -- h0p3's Log]]
** Made a few edits. Still glad I've made scripted encounters with myself for myself. Talking about it makes me feel better. It allows me to reflect more cautiously, and to not have to come up with my positions on my narrative on the spot.
* You have serious content on every single day. Good job.
* Work on making titles. 
* Use your mouse correctly.
* Check your spelling more often. 
* Write about your books and reading.
* This is the best week you've had on your wiki.
I should do the work of my house. I should always do dishes with the kids. I should help them clean their room. They aren't motivated because I'm not motivated. We must be virtuous together. I can't simply foist it upon them.

You must remember that you are mentally unsound to most people. They do not see or understand you as you see and understand yourself, and vice versa. 

Be kind.

You must be there. 

There is an alienness to how people know each other. Aliens don't exist (or, if they do, we technologically just can't know, and I strongly believe the speed of light is a barrier no one will ever breach, questions of universe simulations aside). It is a social construct entirely. I think, however, that we see each other as aliens to varying degrees in various contexts.

I'm pretty sure, my family is filled with people who think we are all idiots in important ways. I must not let my son feel like an idiot. He is my heart. My one. So damaged. I have fucked up everything. God. help us. 


I need to teach my children how to understand other people. I need them to have the gutteral flow of it. I don't know how to do that myself. How do I teach my children something I can't even do well? I can't teach them like they are me because they aren't me. They are someone else. So, I have to generalize it. I do my best there, but even then I fail. 


Having good procedures in place to deal with conflicts, the right frameworks, intuitions, and conventions in our family will enable us to accidentally and programmatically solve many of our problems. In a sense, the hard work is build that social structure, the right structure. We're bootstrapping, so it's even messier.

God I feel like the blind leading the blind.

My worry is that we are all just really fucked up. There is no way to have empathy with each toher. To hold each other like we once did. I want that hope back. I don't think we can. I want it though. I will work and fight for it. It is our happiness. 

Evolution is odd. 

This probably appears to everyoe that I'm going crazy. I kind of am. I am tring not to though. I am trying to put our lives back together. The fractures run deep. 


The madness inside us. We have to work together. We have to love each other. We must reach out. Dark times. 

I hate evil.

I hate chaos.

I hate pain.

I wish we were all happy. I want us to be released. 


I don't play the game correctly. It's about playing the game correctly. Life is a video game, and that means we are derealized phenomenologically. Ugh. The machinations of going insane. It sucks. 

I wish I understood.


I Have a fragmented understanding ofthe world. 

Be positive.

Being positive is the foundation of happiness. That isn't to say that you will be happy because you are positive. Positive attitudes are necessary but not sufficient for happiness.


I think it is fucked up that we call my son by his middle name. That sucks. There something kind of sophisticated/weird about it, but it also makes him feel like a shadow possibly? That is not what I want at all. I must treat him with esteem. His name is his name! I adore him. 

I need to make a son who loves to live. I suck at parenting. I love him so much. Oh God. Why do I fail with my son so hard? 

I would like to get my son officially diagnosed with autism. The problem is only that I don't have faith in the people around me. I will ask my brother. He has an objective answer. My wife will decide. 

The good of the mentally different. For real, I know that mentally different people can have good lives. We must empathize. My parents brought me to see the funny farm and my dad put on an act to show me and my son what we were, perhaps all of us. 

I was so unprepared to be a parent. I've been a fool. 

I love my chldren so much though. I wish I could torture every cell of my being through through every dimension, just so they could be happy. That, obviously, won't make them happier. 

I am a bad dad. 

I need to be a good one. 

I desperately want to be good one. 

I've always wanted to be a good one.

I can't connect with people in the way that others do, I can't feel like others feel. But, I am a part of them. 

My son is my peer. He is just like me. I'm such an asshole, but that doesn't mean he is an asshole. God I have to forgive myself, and I hope I can help him. There is so much pressure to get it right. 

Today, as an act of exectuive functioning, I will work side-by-side. Side-by-side is how I want to work with my children. But I can't always! The financial pressures are so high. I am not emotionally able. What a fool! Just because you are a genius doesn't mean you can be a good parent. There is a skill that I just don't have. The assumption that being smart in so many areas means that you'll likely be smart in the area of parenting is ridiculous. I was a fool. That's okay though. I am where I am. I will do my best. I love my children.

How can I cultivate my children?

My mom was right about that, no doubt. 





Do you know what I do on K?
 

I fight with myself. I reason with myself. I find a way to convince myself. I attempt to unify myself. My goal is to make my family happy in a moral way, without being Hursthouse-ianly marred. 

If only we had a financial way out of this. I hope we do. I have to hope that I have time to fix this. I think we do. 


Back to executive functioning. I am so worried that the stain of "autism" will follow my son around. I really do believe people are evil. But, a paper trail could be incredibly useful to him. It's a fork in the road, I tell you what. Trust is the problem. I realize that I'm not mentally stable enough to trust that much. If he were to get better, I believe the label would hold him back significantly. If he were to get worse, it might help him (it might not).



I wish I could hold my mom. I think she thinks I'm demonically posssessed or something. I realize that's how she sees the world. I can't help her cross the bridge. It's too hard, she's too integrated into her perspective, and that just fucking sucks. Confabulate->Hallelujah! Enjoy the memory of what you had. 


I need to be there with my children. 

Perhaps that means I just shouldn't and can't be myself. I need to change for them. I need to walk with my daughter. I need to help my son believe in himself. 


My wife has the unenviable task of dealing with insane people in ehr life. She is amazing. I love you. My wife's empathy is profound. I ache. My love for my wife makes me hurt. I realize how little I can do to make her happy, to give her what I can plainly see she deserves. This brilliant, kind, loving woman, salt of the Earth with a mighty mind, and I have nothing to give her. I have nothing to pay her for the chance to see her beauty, to have the chance to be with her... I'm literally trembling at the fact that I can't repay her. She is my god. I love you. I don't want to call you k0sh3k on my blog. I want to call you by your name. What if I take the site down? 


Should I drop the pseudonyms?

How much should I trust people? 


My wife cultivates and empathizes. I want to be more like her. She's real. She beautiful. How can I 



My worry about the vault is that as I age, I lose my memories. If I don't write them down now, I eventually just won't remember them. I will even misrememeber. I want an accurate narrative. I still pursue truth.

Can you take care of a house by yourself? Just do it. If you care about your life, then act like it in every way. All the way down. 


Honesty is the best policy, right? Wait. what about in the face of evil? There are clear utilitarian problems with that. 




I remember one of the few comments I made at the Murphy institute. I'm clearly very skeptical, they see me as insane and breaking down. Be kind and stick to the truth. Always. Even when it isn't popular. Even when you don't like it. Stick to the truth.

I must be there for my children. I must be a good dad. That is my reason for existence. It isn't that I need their affirmation, it is that I simply seek for them to be happy. I want them to live the good life. I must pursue it for them. The Giving Tree, as always, points in the right direction. 

I want to work alongside my children. I fail in my teaching. I've got to have hope that I can do better. I will do better. 

My mission is to do my kids chores with them. I know it is their's. Forget everything. Just do it with them. Let's try a more intuitive gutteral approach. Thinking, clearly, is not enough. Paradoxical as it may seem.



That Reddit drug. We haven't tried not using it. We should try a week without Reddit. I'm considering Lentenizing my life here. The problem, of course, is that Reddit's signal-to-noise ratio is incredibly high for someone who wields it well. How do you balance this part of your life? I don't know. I know that I don't know. That's the first step, right? There is that Reddit zone or mode I enter into. It sucks me in. It is definitely a drug. 

The problem is that Reddit often is extremely valuable to me. I don't know when or why it will be, as that is the nature of not knowing in the first place. 

How do I know when my dependence upon something produces more value than the other options? It's the difference between the good kinds of dependences in our lives (water, oxygen, and so on and so forth on that spectrum) and addiction (definitionally the wrong option).

I need to more clearly separate judgment from condemnation. Make judgments, use them in your inferences (ah, you've already fucked up in many uncountable ways and kinds here), but refrain from condemnation. But what about evil? You can't ignore it. 

I hope that I can bring order to the chaos of my vortex. I must climb out with the right structure to make my family happy. I don't want to infect them.

Don't forget, you should finish your work for your brothers. Finish your art.

I remember an economics professor of mine who didn't show up to a dinner party to talk about the term paper I wrote for my independent study on thinking about God and evil. I wonder why he never showed up. I'm sure there were a mix of reasons. I'm a very weird person, and furthermore, I often don't understand how other people reason or feel about the world or myself. Mixed signals don't help.

Sometimes I receive incredibly high praise from people, and he was one. We were going over some part of game theory and what he said just clicked with me, perfectly. I understood it, all the way down (or so it seemed at the time). It was powerful to understand it. It was part of the practice of what I called (and still do) metagaming. I couldn't contain myself, and I burst out into his lecture and explained the theory was trying to describe. I was so happy to talk about this thing that was awesome! He said it was the best explanation of the concept he had ever heard. Seriously. My friends in the class just stared at me with their mouths literally open. It was a kind of "wow" moment. So, I'm thinking my paper disappointed my professor tremendously. He probably saw me as mentally ill. Smart man, but not empathic.  

Most of the economist philosophers I know ultimately are terrible brilliant people. They might be happy people, but they promote a point of view I don't respect: descriptive egoism without prescriptive attempts to fight against the evils which arise from that description. Ah, you think I'm asking them to be altruistic and to contradict themselves. In a way, yes. That is the only hope. They did not take this fundamental metaethical paradox seriously enough.

One of the most interesting aspects of being an academic is coming to understand just how much the people before us understood. Here we approach many postmodern problematics. One of them being that I can't even squeeze out the explanation of what those problematics exactly are. I feel the gutteral shape of them, but I can't articulate it. I hate being unable to explain the thing I've seen. Why do I hate it?

Part of it is the inadequacy. Part of it is that I want others to see what I've seen. It could change the world in a positive way (although, it could be used for great evil too, depending on how it was wielded, of course).

Do I need others to see that I understand it? Kind of? I want to be empathized with. I don't need my dick stroked, but I want people to understand and appreciate me, to really get me (I can hear my father's emo-rant; I wish we could click together on this). It's part of our human nature that we care about what others think, of the world, of us, etc. The Good and The Right, appraisal and recognition respects, etc. These are all deeply intertwined. I cannot expect myself to give a Theory of Everything since I don't even have one for myself. I see the shapes and shadows that others do not though.

I think that is one of the most interesting aspects of Plato's Allegory. I think that the metativity, complexity, and bleeding-edge of my understandings of the world are really shadows for me. I can't describe it well enough to anyone, not even myself. My exploration of The Truth^^tm^^ is unfortunately locked into my phenomenological experience. I clearly do not know. I know "of" it, I know "around" it, I know the "feeling" of it, but I don't know "it." I can't see it. At least I am not alone. Many people take up this claim throughout history in different ways. We may not see eye to eye, but we are all metamodernly searching for the truth through the Rationally deconstructive postmodern fog in the hope of beholding Truth.


-----

k0sh3k's Notes:

* It's all over the place.
* I think you are harder on yourself than you need to be.
* I think you are a good dad. 
* I think a lot of guys struggle with all of this. They just aren't as open about it with their families.
* I think this social construction of the man of the house stalwart is just a lie that guys tell themselves in order create an image. 
* It is honest.
* I think it is a good idea for you to work with the kids. 





|customTable|k
|Food|Calories|h
|Sausage, Biscuits, and Bacon|600|
|Eggs|190|
|Taco|200|
|Salad|200|
|Hummus, Olives, Chips|400|
|Total|1590|f
!! How has your health been this week?
* 1uxb0x
** Other than headaches, fairly good. 
** Haven't had as many allergies problems this week.
* j3d1h
** Allergies have cleared up quite a bit.
* k0sh3k
** Period complete.
** Really tired. 
** Sleeping better, other than the cat yowling.
* h0p3
** My sleep pattern has been acceptable, not great.
** I've felt anxiety chest pains, but not depression from what I can tell.
** I've drank more this week than I have in a long time. It wasn't a ton, but it was more than usual. See [[Diet Log]]

---
!! What happened last week? Have you been happy this past week? Why or why not?
* 1uxb0x
** Noticed a change in his happiness. He has been happier, except for Sundays.
** He has been more emotional overall, he says. Banged his head with his hands a couple times in emotional frustration. 
*** Contradiction?
* j3d1h
** Happy about having done her schoolwork better.
** Sad that she needs to buy more stuff for needlefelting. She wants to save her money for a new laptop. 
*** Utility maximizer
* k0sh3k
** Finals was crazy. 
** Kitten cuddle puddle was amazing. They were so cute.
** Had to fire someone, which was really rough. 
** Really glad the semester is over.
** Enjoyed dressing up in her regalia.
*** Doesn't want her doctorate because she loves the sleeves in her pockets.
* h0p3
** Learned that Gary, [[k0sh3k]]'s boss, was a Mennonite minister. Very interesting.
** I got a ton of work done. It was a very productive week across the board. 
** I've been more programmatic on my wiki, and I'm still adjusting to it. 
** Overall, I feel quite happy.

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** You are very loving. You always seem to think the best of people. That is a very cool trait to have.
** You are forgiving, which is something I am not.
** Played well in Magic, and doing better in school work.
*** Did better than his sister thought he would.
* j3d1h
** You chose to sacrifice for your brother. You did the right thing, even when you knew it meant you would have to do more work because of it. I think that shows integrity.
** You have a very good grip of your emotions. You are stoic, and even when you are unhappy, you find a way to bounce back. 
** You are very funny, and you aren't a crybaby.
* k0sh3k
** You are the rock of the family. You hold us together while we change, even under enormous pressures.
** You are the kindest person in the house.
** You are very forgiving in schoolwork.
* h0p3
** I try to remember to give my kids money for allowance. 
** My wife likes my blunt honesty. She doesn't have to wonder if there is a difference between what I'm saying and what I'm actually thinking.
** My wiki is taking a lot more shape. It is awesome.

---
!! What will you do this week?

* 1uxb0x
** Cheer himself up when he isn't happy.
** Try picking up guitar.
* j3d1h
** Try and make sure she gets ethernet to her room. She wants it.
* k0sh3k
** Going through all the paper files at work. Shred that vast majority of them.
** Getting a new washer and dryer on Friday.
* h0p3
** Want to finish my brother's artpieces.
** Find help on Friday for moving the washer and dryer.
** Borrow the dolly or buy one.
** Prepare the RPi.
** Get my other presents ready.
!!General Notes

* Monday through Friday will be standard schedules. No bootcamps. No vocational Fridays. Just get the regular pattern down.
* You've not been doing your morning routine so well, and part of the reason for that is because you've not been finishing your dishes on time. You need to make sure that you have your chores done in a timely manner. 
* [[1uxb0x]] needs to get up in the morning and start his day immediately. 
* We had one hiccup day.

----
!!j3d1h:

* Review past week: 
** Research Skills: Cosmetology
*** Fell behind considerably in this subject. 
** Math: Singapore Math
*** Put dates on each page of your notebook.
*** Completed 9 pages. 
** Writing: 250 word count in her wiki
*** Didn't know what to write on (confabulation).
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Completed one program and understand one other, but haven't commented.
** Vocational Practice: Applied Computer Science
*** Fixed mom's memory problem, very neat hack
*** Completed backup script
** Reading: Ethics Toolkit
*** Done with the 4th large section
** Social Studies: Khan Academy - World History
*** Zoroastrianism, Achaemenid Empire, Alexander the Great, Romans (pretty badass, she says)
** Spanish
*** Started on something new: time.  

* Plan next week:
** Research Skills: Cosmetology
*** Continue doing the 100 years videos
*** Actually practice. Put together an outfit. Take a picture and develop a catalog. See and think about your transforming aesthetic. Build a fake outfit online with links. Build concepts and ensembles in your head. Think about your fashion style.
** Math: Singapore Math
*** Keep rocking through it.
** Writing: 250 word count in her wiki
*** Have an idea bag for writing prompts. 
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Make sure to post you it to your wiki every day.
** Vocational Practice: Applied Computer Science
*** Setup backup scripts for the family, except dad.
*** Measure for ethernet cord
*** Make the USB backup script. Look for one first.
** Reading: Ethics Toolkit
*** Will attempt to finish the book this week. 
*** If you don't know what to read for any reason, then read from plato.standford.edu
*** Move onto: Little House in the Big Woods
** Social Studies: Khan Academy - World History
*** Kick ass, take names, etc.
** Spanish
*** Keep it up.


---
!!1uxb0x

* Review past week:
** Research Skills: Curation
*** Doing well on finding links for studying skills. 
** Math: Life of Fred - Cats
*** Finished Cats, yay!
** Writing: 150 word count in his wiki
*** Doing fine. Keep it up.
** Vocational Theory: Core Construction Curriculum
*** Banging through. Just fine.
** Vocation Practice: Redstone
*** Didn't build OR gate
*** Did learn about the command block.
** Reading: Dr. Jekyll and Mr. Hyde
*** Enjoyed it. I saw him read it. He can't seem to remember what he read.
** Social Studies: Khan Academy - World History
*** Did way better this week. 
** Language Arts: JacKris Books
*** Not so great.


* Plan next week:
** Research Skills: Curation
*** How to stay on task.
*** How to focus.
*** Ways to make sure you understand what you're reading. i.e. improving reading comprehension.
** Math: Life of Fred - Dogs
*** Starting on Dogs
** Writing: 150 word count in his wiki
*** Links don't count in your word count.
** Vocational Theory: Electricity Demystified
*** Look things up. If you don't understand, then research it online.
** Vocation Practice: Redstone
*** Build OR gate (before everything else)
*** Tell me why there is a "0" at the end of your command line
*** Learn more about command blocks.
** Reading: Fairy Tales from the Brothers Grimm
*** Bang it out. =)
*** Write about your reading.
** Social Studies: Khan Academy - World History
*** Make sure you do the full half hour. 
** Language Arts: JacKris Books
*** Make sure you do it for the full half hour. 
* Great writing on the wiki, brilliant conceptual branch in "Moral fluency"
* This is the best wiki week I've seen from you.
* Consider a summary bot.
* Learn how to link to your wiki
* Consider putting dates in the titles of posts that should have them
* I'd like to see your work done about or for your classes posted on your wiki.
* Set aside an hour a day to talk to yourself, to create, to digest, to explain, etc.
* [[ARAM Compositions]]
** I started this to answer a question my daughter asked me about ARAM. 
* [[ARAM]]
** Moving ARAM content to its own tiddler was a good idea. It's better to have to click more often. The search bar can help me find what I need.
* [[2017.05.06 -- h0p3's Log]]
** I'm pleased to have a happy thing to write about. I've realized that h0p3's log is about writing when I'm emotional in general, not just negative emotions but also positive.
* [[2017.05.06 -- Link Log]]
** I really need to consider categorizing these at this point. Some of this is "one-off" use content that you watch once and forget. Some of this is collectible. Some of this requires digestions. And there are some in between. I feel bad just grouping them altogether. 
* [[2017.05.06 -- Wiki Review Log]]
** I talked to my family about these. In my explanation of them, I kind of convinced myself more of their use. There is a weird way in which talking about my wiki to other people can help me understand my wiki. There are limits to having a conversation with myself, I suppose. It makes sense, as fresh perspectives, even in trying to empathize with other perspectives, will have different limits.
* [[2017.05.06 -- Diet Log]]
** Probably eating too much. Good thing we bought more vegetables today.
* [[2017.05.06 -- Russian Intervention in French Elections]]\
** Edits. I'd like to see more in this section.
* [[2017.04 -- Realpolitik Speculation]]
** Oh yeah, I forgot to do this in my monthly audit. I think I forgot a couple others. I need to comb through it again.
|customTable|k
|Food|Calories|h
|Pear|100|
|Apple|100|
|Mandarins|105|
|Tacos|400|
|Ice Cream|350|
|Sausage|125|
|Tomato Juice|50|
|Hummus, Chips, Olives|350|
|Tikka Masala|700|
|Total|2280|f
!! How is your health? Daily routine? 

Doing fine. I slept terribly last night, but this is as it always is with DCK. I will sleep quite well tonight. k0sh3k is also very sleepy. We stayed up late (11:15) to finish our family meeting last night (although, I couldn't sleep until about 3:00, and even then only half-brainededly). Everyone was sleepy, including the children.


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

Despite being a long day yesterday, it was a wonderful day. I really enjoyed bonding with my family. My children have been asking for a while to play a game with me. I brought out the magic cards and taught them. I've given MUC to 1uxb0x and Affinity to j3d1h. I talked about my history with these cards, what they meant to me, what it would take to learn to play it, etc. It was a blast for us all. I ended up playing different decks against them to give them a quick sampling. My favorite game was with 1uxb0x, since I decided to play MWC against his MUC. It was truly an epic control vs control matchup.


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

DCK has been quite effective. I'm trying to make my children's lives easier and more interesting by integrating myself more directly into their lives. This is a lot easier when I am not responsible for holding them accountable. When I can just be their friend, it is miles easier for us all, more productive, and we're all happier.

I've been doing the kitchen with my kids. While they can and even perhaps should do it themselves, this model seems to work better in many ways. I want to be side-by-side with them.

Honestly, I have no idea if they want to play magic with me. I'm not always very fun to play games with. I gave them what they asked for, or so it seems. Perhaps they are asking for something else. We will clarify it.


---
!! What are you going to do about what happened?

Enjoy my time with my family, particularly while I still have it.
* An interesting explanation of metamodernism (has more of a material/psychological component to it than a purely philosophical one) -- https://www.reddit.com/r/PostPoMo/comments/69vg85/wtf_is_metamodernism_1/
* Alt-Left/Alt-Woke Manifesto -- http://tripleampersand.org/alt-woke-manifesto/
* Not sure if I linked this before, but I think it will be a classic video "Millenials Don't Stand a Chance" -- https://www.youtube.com/watch?v=ARDfbMJpMqQ
* The pure sanity from Mozilla is just overwhelming -- https://blog.mozilla.org/blog/2017/05/08/next-10-days-critical-internets-future/
* Discussion on Robotic automation and employment on hackernews -- https://news.ycombinator.com/item?id=14290626
* I've read and bookmarked this several times, and it's worth looking at again and again -- http://metamoderna.org/youre-not-metamodern-before-you-understand-this-part-2-proto-synthesis-2?lang=en
* Fascinating user on Reddit -- https://www.reddit.com/user/ProjectVeritasPO
** Related to an interesting site as well -- http://projectveritas.com/
* Heartbreaking irony that white middle class support Trump -- https://www.thenation.com/article/trumpism-its-coming-from-the-suburbs/
* Despite being known for propaganda, it must still be inspected. Trump and Pence seem implicated in Flynngate; hello Paul Ryan POTUS? -- http://shareblue.com/sally-yates-was-fired-the-trump-fired-sally-yates-the-day-she-offered-evidence-flynn-was-compromisedday-she-invited-trump-admin-to-review-evidence-showing-flynn-was-compromised/
* The Student Loan Crisis continues -- http://www.zerohedge.com/news/2017-05-07/crisis-has-become-pandemic-system-collect-defaulted-student-loans-no-longer-function
* I'm so glad there are sane people who can at least appreciate why our modern Science mascots aren't the best representatives -- https://np.reddit.com/r/worldnews/comments/67675m/neil_degrasse_tyson_science_deniers_in_power_are/dgoftnv/
* Manchild Trump hitlist -- https://www.axios.com/how-trump-advisers-talk-about-the-president-like-hes-a-child-2393867823.html
* Psychology and Economics, brothers in understanding the human mind, have so much unreplicable "science" in common -- http://ponderwall.com/index.php/2016/02/05/global-warming-of-academia/
* Being human and philosophy towards death qua global warming -- https://opinionator.blogs.nytimes.com/2013/11/10/learning-how-to-die-in-the-anthropocene/?_r=0

Today was not productive at all. We had tons of students streaming in, and our teacher had us oscillate between our actual work in the classroom and looking like we were doing something in the shop. We can't do anything in the shop with kids in there. It's all grinding and welding, which they can't be there for. Hence, it was a waste of time. We also didn't do much at all in the classroom. We studied for an exam. I was ready (or as ready as I was going to be) for the test by 11:00. I basically was forced to wait until 2:00 to take the exam. I did very poorly, 82. My teacher saw my face and told me not to worry about it. He said it was just pride, and went back to his old story about being in college, where someone was happy to get a C. The problems I missed on the exam were very poorly worded, failing to match the books vocabulary and main points on these sections. Only two of us even passed, Chris and I. 

We did a bit of work on the simulator. We put the flanges on, but that's about it.

I did get to socialize with the guys some. It went better today. 

I asked Luke if he would come help on Friday. He said he would. I need to ask the teacher for the time off or the ability to leave early. I also need to make sure we can borrow the dolly. Furthermore, I need to find a way to dump our old stuff. Luke has a truck. This will be useful to us. 
I was reminded that I forgot to do some of my monthly audits. I suppose monthly audits can be spread across the month. I'd like to do it in a timely manner though. There is something useful about taking in the big picture all at once.

* [[2017.05.07 -- Wiki Review Log]]
** I have yet another happy thing to write about today in [[h0p3's Log]]. I'm glad I have clarified what I'm doing in it.
* [[2017.05.07 -- k0sh3k's Wiki Log]]
** I'm really trying to help k0sh3k start using this tool. I think it will be incredibly useful to her and to us. I think it will make her an even better role model for the kids, and I think it will enable her to see how to help them succeed with this tool as well.
* [[2017.05.07 -- j3d1h's Wiki Log]]
** Arguably, she has made the largest effort in hers. I'm pleased to see it. Give it a year, and it could be an excellent wiki for a person of any age.
* [[2017.05.07 -- 1uxb0x's Wiki Log]]
** He's doing well with what he has. He's growing and improving. I need to continue to encourage him. 
* [[2017.05.07 -- Family Log]]
** This is my favorite iteration of the [[Family Log]] so far. We're not only better at completing it, but it has evolved into having the right sorts of questions. The compliments/positive comments section went well this time.
* [[2017.05.07 -- Diet Log]]
** I actually went out of my way to eat. DCK makes it so I avoid it without even thinking about it. Par for the course.
* [[Homemade Maxims, Phrases, etc.]]
** My daughter came up with "moral fluency" in her wiki. It sparked a neat conversation. I think it's a brilliant phrase for an 11-year-old. Both my children, in many ways, are miles ahead of where I was at their ages. A decade from now, there will be several topics they will be able to speak about/engage in that I will never be able to do even if I tried. That pleases me.
* [[2017.05.07 -- Homeschooling Log]]
** This went so smoothly. When k0sh3k handles discipline our lives are better. I still offer reasons and explanations for why and how they've done something wrong, but I don't have to be angry about it. It's far more constructive across the board. 
** Progress was obvious. The structure maybe isn't perfect yet, but it is improving.
** The general notes section was useful. Perhaps I need a general notes section per child as well. I will contemplate it more.
* [[2017.04 -- Homeschooling Log]]
** I forgot to write an audit of this month. IIRC, there are a few others I need to handle.
* [[The Perfect ARAM Champion]]
** Clearly, I need to think more about the question.
* [[2017.05.07 -- DCK Meditation]]
** I'm leaving the grammar, syntax, structure, etc. as is. I think it is important to preserve the nature of this thing to some extent.
** I'm glad that k0sh3k reviewed it and gave me her comments. It is time that she plays a more active role in shaping me. For quite a while, it was really just me with her support for whatever I thought was best.
|customTable|k
|Food|Calories|h
|Apple|100|
|Pear|100|
|Mandarins|140|
|Tikka Masala|400|
|Banana|100|
|Cole Slaw|200|
|Beans|100|
|Pulled Pork Sandwich|450|
|Chicken Sandwich|400|
|Apple Cobbler|150|
|Ice Cream|225|
|Cookies|250|
|Total|2615|f
* Bye Feli...Comey. This is huge. He's an asshole with at least a modicum of integrity in appearance, but Trump's reasons (and his puppetmaster's reasons) for this are disgusting -- https://www.reddit.com/r/esist/comments/6a8if8/breaking_trump_has_fired_james_comey_per_sean/
** Also: https://www.reddit.com/r/politics/comments/6a8jsf/megathread_fbi_director_comey_fired/?utm_content=title&utm_medium=hot&utm_source=reddit&utm_name=frontpage
* TPP revival, fuck me -- http://www.cnbc.com/2017/05/08/trump-calls-it-a-disaster-but-top-experts-are-saying-tpp-might-still-happen-without-him.html
* k0sh3k pointed this link out to me, Ethereum controlled decentralized VPN tunneling network -- https://mysterium.network/
* Yates continues to destroy. Godspeed, even if you are an evil human, I hope you succeed in this endeavor -- https://www.washingtonpost.com/blogs/right-turn/wp/2017/05/08/sally-yates-demolishes-white-house-defenses/?utm_term=.01b61e665217&tid=sm_tw
* Voter Suppression claim, disturbing as usual -- https://www.thenation.com/article/wisconsins-voter-id-law-suppressed-200000-votes-trump-won-by-23000/
* A smidgen less commie hate in Cali -- http://www.sacbee.com/news/state/california/article149393519.html
* I am always amazed to see even some otherwise rational-appearing Leftists opposed to freedom of speech -- https://www.reddit.com/r/DebateCommunism/comments/69z94c/why_the_disdain_for_and_mistreatment_of_free/
We were fairly productive today. Chris and I finished off an entire leg, including an elbow. We also corrected for Mel and Nash's mistake by minimizing the takeout of the flange on the end to almost nothing. I did the vast majority of the tacking. I used very light tacks to mount, and then I passed over it for 1" tacks that will hold it permanently. 

It was a frustrating day though. Getting everything how we wanted wasn't easy. I wish we had more practice before jumping into it. That said, this second leg went quickly enough, and it looks clean. The teacher was fine with it.

Luke decided to spend his time completely welding our first leg, which prevented us from throwing the elbow on it. The welds were ugly, but even the tacks were ugly before Luke did his work. The teacher wasn't happy about it, and part of it was because the way Luke welded may have warped the flanges. The teacher said he's never actually seen them warp though. I think he just wants to talk down to Luke though. 

We will be lucky to have this completed before the end of the week. It was a larger project than I anticipated. 

I told the teacher I would be leaving early on Friday, and I told him Luke would be helping me.
* [[2017.05.08 -- Link Log]]
** Tiny edits.
* [[2017.04 -- k0sh3k's Wiki Log]]
** I finally added an audit. I haven't much to say. I hope I will eventually have more to say in these audits.
* [[2017.04 -- 1uxb0x's Wiki Log]]
** Audited.
* [[2017.04 -- j3d1h's Wiki Log]]
** Audited.
* [[2017.05.08 -- Wiki Review Log]]
** I'm realizing that parts of my wiki may just remain untouched. I need to be okay with that. I can't expect every loose end to be tied. This is, again, a shotgun approach. Let whatever sticks on the wall stick on the wall, and let the rest of the pieces fall where they may.
* [[2017.05.08 -- h0p3's Log]]
** I've been helping the kids more directly. We played some magic each day too. I think j3d1h doesn't enjoy it so much. I think she's expecting higher praise. 
* [[2017.05.08 -- Pipefitting Log]]
** Minor edits.
* [[2017.05.08 -- Diet Log]]
** Forgot to add it up. Done.
* [[Playing Life Like a Video Game]]
** I need to think more about this, since this has become a kind of mantra for me.
Recently John Oliver put up a site, http://gofccyourself.com, which redirects you automagically through the now labyrinthine public FCC feedback site, https://www.fcc.gov/ecfs/search/proceedings?q=name:((17-108)). A few things happened. Our now gutted FCC organization claims they were the target of a DDOS when Oliver called on the masses during his show to write to the FCC about the need to protect net neutrality, which Trump is, of course, targeting along with Republicans, media companies, and data carriers. 

ISPs/carriers, in particular, have been in full imageshaping mode. The lies are disturbing. Sometimes I find it hard to believe that anyone could be that selfish. Given their past direct attacks on net neutrality, indirect attacks through shaping public opinion and even the appearance of that opinion to the public are clearly in their playbook as well.

Of course, the DDOS may or may not be true. We've not seen logs, and I'm still skeptical that they are competent enough to handle that many requests a second (even though they should). Even more skeptically, if I don't see it as ignorant incompetence, it may even be a form of malice that purposes attempts to silence the dissenters from participating. Another part of me thinks that it easily could be true. Those who don't want net neutrality, the wealthy and powerful, could also pay for such a thing.

I will say this, it is clear that the FCC and several public forums have been astroturfed in recent days over the issue of net neutrality. The 130k posts from bot spamming are almost too obvious, but also appear to use false and/or stolen identities. Gross. Captchas would be nice.

I am not convinced this is standard online alt-right at all. Although, I've seen there astroturfing and brigading a'plenty. The tongue-in-cheek attempt to spam "appropriating my culture" alt-right backlash is almost funny. /r/The_Donald, Voat, and 4chan are still actively trolling. This FCC "DDOS" and spamming, however, doesn't feel like them at all.

Someone had a large database of personal information to spam the FCC. There are serious players, like ISPs, at work here.

I can only assume this botspam will be used as "evidence" that the American public ultimately is anti-net neutrality, even when it isn't (yet). It will be used to delegitimize pro-net-neutrality opinions. Republicans are more than willing to lie to our faces (not that Democrats are much better), but giving them half-truths arms them with tangible mind-weapons.

Ultimately, the luddites and retards in our country will take up the anti-net-neutrality sheeple stance. You've seen how much of an indicator education is as a predictor of where people stand on political, social, and ethical issues (and even who they'll vote for POTUS). I desperately seek for everyone to be fully functioning citizens. If they are voting alongside me, they need to understand the world as best as possible. But, no, computers are scary, I don't understand them, they've taken our jobs, and thus they must be evil. 

I detest ignorance and malice.











|customTable|k
|Food|Calories|h
|Wrap|350|
|Nuts|100|
|Electrolytes Sports Drink|130|
|Pears|200|
|Chocolate|125|
|Asparagus|90|
|Cabbage|80|
|Pork Chops|600|
|Salad|150|
|Ice Cream|250|
|Total|2075|f
!! How is your health? Daily routine? 

My sleep schedule takes a while to stabilize after DCK. I'm feeling more anxiety, but my depression is at least held in check with my weekly dose. Overall, I feel very productive. I felt sick today though, and I think it was because of what I've ate. I have to admit, I've not felt well after eating Tennessee-style pulled BBQ for the past 3-4 times. I may just avoid it, even though I love the taste. It wasn't worth it today, I'll tell you that.


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

A couple days ago my mother-in-law, [[R]] sent me some text messages. She's been on the lookout for a dryer for us (she is a gem). She found someone who had a washer and dryer would drop it off for us, one of her parishioners. This person is coming on Friday before we leave for my brother's hosted family reunion.


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

I'm extremely grateful to have a mother-in-law looking out for us. We need the help. I'm so glad I don't have to worry about burning down the house. Luke is also coming over to help me move it. Help comes when you least expect it sometimes.


---
!! What are you going to do about what happened?

I need to find a way to thank these three people. It is help at a time when we couldn't help ourselves (when we need it most). I need to find a dolly and a place to dump our old appliances. I also need to have everyone prepare to leave. I want to pack the car and leave immediately after the washer and dryer have been taken care of.
Kushner 500k
* Beautiful history video about human existence -- https://www.youtube.com/watch?v=xuCn8ux2gbs
* Disgusting tool for face recognition -- http://sightcorp.com/
Today was another frustrating day. I didn't sleep well because my stomach pains kept me up during the night. Whatever was in the BBQ last night didn't sit well with me. I was able to get up easily enough though, so I did sleep. I spent about 15 minutes of my morning just exploding on the toilet though; I had the nauseous shits all day. My wife needed a ride, and I was already running late. I took her to work, and then I drove to mine. I was 3 minutes late, and literally was walking to the table with my teacher for attendance. If I were any later, I'd have been tardy (which my teacher is not very charitable about). Close call.

Mel and Nash decided to go "study" for a test all day. They just sat there like bums. Lazy fucks. They probably would have hindered our work anyways though, so I guess I'm thankful they didn't want to practice. One of the new guys was "no call, no show." The other new guy, let's call him Robert, had nothing to do. So, he was directed to help Chris and I. Robert's dad is an ironworker, so Robert had tons of extra gear. Later in the day, after lunch, he even generously gave me a new pair of welding gloves, which I've desperately needed. I thanked him multiple times. I think he gave them to me because I've been teaching him a lot. I had to reëxplain takeout math to him, since our teacher really does a poor job of it (I tried to walk him through our buttweld takeouts [at a high level] as well). I'm trying to do what I wish others would have done for me. Robert is going to fly through this course in a way that I didn't have the opportunity to do. He's smart, was going to school for architecture until his GF got pregnant (so, maybe not wise). I like him, at least for now.

In any case, Chris, Robert, and I worked on the simulator. We put the final elbow on. I was the primary tacker today, although I let Robert do some 4th tacks (because I wasn't worried about mistakes there), and it went smoothly enough. We then moved to a third table for the long top piece of the simulator. The pipes and fitting went on lickity-split. We used the same method, end-of-the-pipe minus takeouts to find where to place the sockolets. It was going swimmingly, or so we all thought. Unfortunately, Chris (and ultimately I) made a large mistake here.

I had used the wrap around and tape measure to mark the center of the sockolet mounting areas on the pipe. We mounted two of the sockolets. For the third sockolet, Chris decided I had marked the wrong side of the pipe. So, he marked the opposite side and mounted it there. Being tired and sick, I decided to just go with the flow. Normally, I check through their reasoning. I should have, and it was my fault that I didn't. This mistake did not present itself until much later in the day though.

Chris then made a second mistake. Chris cut pipe for the sockolets and tried to tack it himself. This burned a hole in the pipe. I had burned two holes that day already, but I was able to fill it in using an extra rod (kinda like TIG welding) to give me a starting point to work from between the bevels. This was a hole straight through pipe though. I thought we'd be able to fix it, so we just moved on. I knew I was going to retack and fix the welds across the entire piece anyways.

Also, we had a ton of trouble getting the pipe turned in the smaller vise, and we ended up resorting to pipewrenches to twist it into place. It was quite frustrating.

We mounted the extension pipe on the T, and it was clean. We put the flange on it, etc. Everything was level enough. 

Chris and Robert decided to take a break while I did the welding. I got everything set, but I absolutely could not fill that hole. I did everything I could. It was very thin 1" pipe. We talked about it, then our teacher came by. At first he said we could just MIG it, but on second thought he told us to just cut the pipe and remount it. So, we did. Chris was unhappy that this mistake had to be fixed this late in the game. He cut it, and I had Robert clean it up. I did all the tacking from then on. It went fast enough.

So, we thought the top piece was done. We took the jackstands out and had them sit between the ends of the legs coming horizontally off the vise-tables. We moved the pipe into position. We did some work to get it level. It was only then that we looked at it and realized that I had been correct about the positioning of the sockolet in the first place. Fuuuuuuuuuuuck. 

We thought about it, and the teacher walked by. After we said we screwed up, he smiled and said he was wondering when we would figure it out (although, I'm not convinced he actually knew from some of his body language, word choice, and inability to target the thing we did wrong with his eyes). After explanation, he saw it. It had to be fixed. So, we took the top back to the table (heavy monster), and Chris cut it from the sockolet. I did the grinding to clean it up, since I'm far and away the best grinder in the shop. Even my teacher's hands are too shaky to do it was well as I do. It's like sculpting! 

So, Chris gets does the fit-up, which I thought would be pretty hard considered the sockolet itself wasn't cleaned up much. He did a good job, or so we thought. I 1-inch tacked it. Everything was good to go. Then I looked again, and I said, "Nooooooo!" I looked at Chris, and he knows my look by now. He knew something was off. I threw my hands up in the air and just laughed. He took a look and realized that we forgot to two-hole it. God damnit. So, he cut the piece off again. We two-hole it, and I do the tacks all over again.

By this time, we are worn out. If it could go wrong, it did, or so it felt like. Anyways, we move the top portion of the simulator into place yet again. I eventually convince them that we need an actual vice-stand in the middle, since we have to keep it from turning. I get one, we mount it. We then use our jackstands to try and level the top pipe out. We also got the legs all nice and level off the vice-tables. I realized that our jackstands for the top were literally lifting our vice-stand off the ground, making it useless. I realized that our vice-stand was ultimately just a centimeter or two shorter than the vice-tables. I laughed. It took a while to convince Chris, but I did. I explained that we needed to use two more vice-stands, since it was the only way to get the legs and top on the same level plane. He didn't want it to be true, I think, because moving the extremely heavy tables and readjusting all the pipe is a pain in the ass. So, we did it.

The teacher came by and saw that I was using a pipewrench to align the pipes inside the vices. He gave me a thumbs up for the "smarter not harder" trick I was using and showed me a few other wrenches worth using for this. The teacher told me to come get him when we were ready to check that the pipes were legitimately squared against each other.

We spent some time moving tables and adjusting. It took a while to get everything level and into place. I got it as square as I could by hand. Then the teacher had Mel and Nash come out of hte classroom to watch what he was going to teach us: the 3-4-5 method (also the 6-8-10). Classic triangle. Just mark 3 feet off from the center of the elbow, and 4 feet in the other direction. Mark them very carefully. Make sure to find the very center-top of the pipe. He brought out an expensive instrument for this that had a hole-punch with a level on it that had legs which went around the pipe. He showed us another way too. We took a square and torpedo level, and I checked the book for the OD of 3" pipe, which is 3.5". Half of that is 1.75". We put the square against the side and leveled the top. I marked the 1.75" measurement of the leveled square which gave us the center-top of the pipe. These marks were on our 3 and 4 foot marks respectively. We then measured point to point and hit 5'-1/8". The teacher said that is good enough (and it would have to be given the fact that he just eyeballed the center of the elbows for measuring the 3 and 4). 

It was late, and so we called it quits. Tomorrow we'll probably check the alignments again using the 3-4-5 method, and I will tack the pipes. Sucks that I have to do 2G and overhead on these though. It's fucking hard. Perhaps we may even get around to mounting it into the ground. We'll see. 


The Mad King, Donald Trump, fired FBI Director James Comey yesterday because he lacked loyalty to Trump and from a recommendation of the "self-recused" Jeff Sessions (who may also trying to save his own ass and not simply Trump's). It was a stunning flash of another smoking gun yet again echoing an obstruction of justice move from the Watergate playbook. 

At least three people related to the investigation of Trump's administration's ties to Russia have been fired so far. Trump's administration has been scrambling to provide even the semblance of a justified rationale for this, and yet he still survives. Will he be able to clean house before justice is brought against him and his administration? Will this firing only backfire on Trump? Is his reign spiraling out of control, and is it the beginning of the end (is "it happening?")? Ultimately, will we take Trump down like we did Nixon? That has been the question for many months now.

In a haunting PR moment, Trump hosted Henry Kissinger, Nixon's National Security Advisor, today to talk about Russia, among "other things." Surely this was half-planned, but I do not understand it. It is unclear the extent to which Trump's malice is impaired by his incompetence, particularly when he is surrounded by some extremely intelligent and resourceful psychopaths. One exception being Spicer, who hid in the bushes and refused to comment until the lights were turned off.

Trump has a lot of shady people working for him, including his own private praetorian security force. Obviously, he cannot trust the SS because he doesn't think he owns them through their salaries (and whatever else). One of his private Imperial Guards was ordered to hand-deliver Comey's termination letter (no mention of Russia in this letter either, but the forced "not under investigation" on "three separate occasions" hovers between cute and disugsting) in a public setting, which I take to be an attempt to humiliate Comey (Comey, apparently, learned of it from The T.V.). It is very much a retarded powerplay PR stunt that Trump would pull. 

Chillingly, it is my opinion that Trump (not by his own hand) has several versions of Nixonian "Plumbers" working on his behalf as well, some in the obvious open and others in more hidden layers (and we're not just talking about Congress here). While there may be more than one Grand Jury considering the evidence and merit of a case against Trump's administration and friends, it seems quite clear that the DoJ is at least partially in Trump's pocket. Trump may simply appoint yet another yes-man lackey; his current temporary pick is also under investigation (lol). The rumor mill has some very sad predictions.

Comey, apparently, sought more funding for the investigation. He likely knows quite a bit about the story. So, perhaps Comey may choose to go down swinging, and the intelligence community may join him (/fingers-crossed). He has been invited to testify in a closed session as a private citizen. However much Comey deserved to be fired for a number of reasons, including because he fucked up the Clinton investigation and due to his truly shitty handling of the Russian problem (which we've been worrying about even in the primaries), we must support him if he goes after Trump and Trump's administration. 

Let us see if the remotely saner members of Congress will listen to or use him instead of silencing him. McConnell and the RNC, of course, do not favor an independent prosecutor or investigation. I suspect Paul Ryan has more of hand in Trump's affairs, election, and possibly the Russian connection than many suspect (It's a public fact that he and McConnell knew of the Trump-Russia connection long ago, and Trump was only "accepted" as the real candidate after Paul gave his blessing). The line of succession doesn't make me happy, to say the least.

Even if things go our way, the worry is that Trump, the manchild clown he is, will react with irrational hostility to being held accountable. Trump may or may not be able to narcissistically bully his way out of indictment and impeachment. We can only hope that Trump will not distract the dumber swathes of the American public with a false flag terror attack or foreign war. Autocracy lay on that path, particularly if the RNC plays political defense for him. But, even if he were to be impeached, there could a very destructive ragequit we must vigilantly prevent.

This is a constitutional crisis I've never seen the likes of before. A house divided cannot stand, but that doesn't mean the rest of us will survive the fallout.

* [[2017.05.09 -- Link Log]]
** Minor edits
* [[2017.05.09 -- Wiki Review Log]]
** I'd like to point out that I had very little to say about this. Am I "taking the easy way out?" Do I really have so little to talk about? Is this practice working? Sometimes it seems like it is really useful, and othertimes it feels like it could be pointless work. Ah, I'm still unsure.
* [[2017.05.09 -- Diet Log]]
** Vegetables, yo?
* [[2017.05.09 -- Pipefitting Log]] 
** Minor edits. I really didn't say much in this log either. Am I losing my verbose touch? 
|customTable|k
|Food|Calories|h
|Mandarins|105|
|Salad|40|
|Pork Chop|250|
|Cabbage|40|
|Apple|100|
|Fajitas|800|
|Salad|150|
|Strawberries|20|
|Salami|220|
|Total|1725|f
!! How is your health? Daily routine? 

Not good. Last night was the worst night I've had in a long time (although, I did manage to sleep somehow?). My belly hurt all night. I sat somewhere between IBS and Food Poisoning in pain. It hurt. 

Everything else is fine though. 


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

I don't know what's causing it. I thought it was the BBQ. It may partially be that. I have another theory though. This week I've tried a new Ice Cream, and I've been feeling queasy every single day, with it ramping up. 


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

The other possibility is anxiety from seeing my parents, which is generally what occurs. But, honestly, I don't think that's what it is. I'm much better at escaping thoughtloops, and I've not really felt it much in my everydayness. I've bigger fish to fry generally. That said, it may play a role. 


---
!! What are you going to do about what happened?

I'm going to abstain from eating Ice Cream. I desperately hope I'm not becoming lactose intolerant.
* Police Officers who "believe" they detect substance use more accurately than urine and blood tests; sounds like a scam which allows them to target individuals and boost their quota numbers -- http://www.11alive.com/news/investigations/the-drug-whisperer/437061710
* A lovely repository of Trump's Tweets -- http://www.trumptwitterarchive.com/
Today was a peculiar and unproductive day. 

Everyone was sent to the computer lab except Mel, Chris, and me. Mel wandered off to "study" for the test he has failed multiple times (which is really just a way for him to try and memorize the questions on the test, as he admits). Chris and I finished the alignment on the simulator, and I made the tacks. The overhead tacks sucked. But the 1G looked super clean for me (I was actually proud of them). I cleaned them up, and that was that. 

Randy came over to deliver a handdrawn forklift to my teacher. He asked about the books, since he now needs to read them for his own class. I'll be bringing them to him next week.

The teacher can't find the right mounting hardware (and can't afford any more), so it is just sitting there. We'll see when we'll actually get to put it up.

The teacher then told us to go study. Fine with me. I read through the buttweld chapter, which is easily the longest we've ever had. There is much to cover. Several times I wished we had covered this content before we even began our buttweld project itself. That's okay though. 

Mel couldn't stop talking. He's an idiot. I've stopped taking him seriously. I listen to him, but with the appropriate lens now. 

We had another tour of school children paraded past us. Chris said it made him uncomfortable, like he was a spectacle in a zoo. Essentially, he felt objectified. We talked about advertisements in schooling in this area, including public school buses and our own school (which has Trane and Snap-on shit everywhere). It was a long conversation about the function and nature of school. Chris has his head on straight often enough. Poor guy.

We eventually got into politics. Chris is very levelheaded for lacking formal education. He understands the evil of humanity well enough though. I like that honesty in him. Mel, of course, was retarded. I think these people don't study political science, philosophy, or even follow the news because they don't believe it can really benefit them in the end. There is a kind of pragmatic rationality, in a sense, to sacrificing their citizenship. They could be right, but I think there is a deep moral flaw (failing to practice the golden rule) in their reasoning nonetheless. 

The teacher grabbed me from the classroom to help him with his computer. He wanted to download a Youtube video. I found a site for him, ripped it, and copied it to his "zip" (USB) drive. He had another file he wanted to copy to the USB drive, but didn't know how. I showed him. His computer illiteracy is shocking.

He hinted that what I was putting on the flash drive would be material we would later cover for the class. It was about the dangers of dropping tools. Seems dumb, but hopefully it will scare me straight into wearing a hardhat. Ultimately, I want a welderhood+hardhat+noise_reducer all-in-one.

I also asked if I could borrow a dolly, since he was obviously in a decent mood to follow through on quid pro quo. He said yes, and went to a step further to say that the HVAC guys had an actual appliance dolly. He went with me to ask to borrow it (using his social capital on my behalf). They said yes. So, now I have the right tool for the job. Tomorrow, hopefully, we get to use it.

I went back to studying. Eventually, the teacher came in and pulled Chris and I out of the classroom to work on a 4-on-6 concentric support for buttweld black carbon steel pipe. We've never done this before. It was obvious he wanted to give us "something" to do. That's fine because we really needed something to do.

From what I've gathered, he has told the other guys individually that they will not be able to keep up with Chris and I. I'm thinking this quietly offended them (although, they would not admit it). It is just a fact though. They actively avoid doing practice/labor, and it makes it all the more frustrating when we have to work with them because they lack the basics to even be helpful. Furthermore, they avoid work by "studying" for tests. But, they are failing those tests. Eh, whatever. That is their choice. 

Chris and I worked on the 4-on-6. We had to think about it for a bit since it has been a while since we've used the pipe fabricator's book (the dark blue one). It was fast enough though. We found the pieces (took some hunting to find a standard 4" pipe, since we didn't want extra thick walls to grind). I marked the 4, and then I went to figure out how to mark the 6 while Chris cut. 

The teacher came by as he saw me thinking about the 6" pipe marks. I explained why I wanted to mark. He gave me a quizzical look. He is not convinced that I need anything more than the vertical line along the heel (if you were standing the fitting up on an outlet). I was struggling to draw this line. I gave him one idea, since I had found a way to mark the center point alongside the very side of the pipe (same perspective), I could just measure 1/4" the way around the pipe's circumference. He felt that was more work than necessary. Instead, I used a square and just marked half the OD. The book and pipe didn't match up on the OD, so he told me to use the book (odd, imho). Remember, this is concentric, which means center to center. I think I need to draw that center line too. We could just level off the top of the support to get it "close." That's probably what we'll end up doing. If I was working with larger pipe, or if I had to make it perfect, I think it would be important to find this center line. Matching the 4" support against 4 points gives us a precision that 2 points simply can't (3 is really the minimum to triangulate). 



We'll probably finish it later.

Overall, it felt very unproductive. That's okay though. We hit it really hard yesterday. Maybe I should learn to enjoy slower days and not feel like I'm wasting my time. Sometimes I have too much, viciously, of that Go-go-go in me.
* [[2017.05.10 -- Trump's Nixonian Firing of Comey]]
** Minor edits.
* [[2017.05.10 -- Link Log]]
** Surprisingly few links. I'd like to point out that I missed a day of links as well. Sometimes you come home empty handed after the hunt, eh?
* [[2017.05.10 -- How the Trump Family Makes Money Off POTUS]]
** Ideabagging it.
* [[2017.05.10 -- Astroturfing, Imageshaping, and Mass Manipulation]]
** I know to inspire hope in myself, lol. Realism, of course, is necessary to real hope.
* [[2017.05.10 -- Wiki Review Log]]
** To answer my previous point, I just want to remind myself how my posting habits oscillate. This isn't pointless. It is the back-and-forth, to-and-fro, the bouncing between metanarrative and deconstruction which allows to clarify, restructure, and find more resilient answers to the shifting problems.
* [[2017.05.10 -- h0p3's Log]]
** New hypothesis: Ice Cream is the problem.
* [[2017.05.10 -- Pipefitting Log]]
** Sometimes rereading my [[Pipefitting Log]] from the previous day gives me excellent context. Sometimes it's a waste. I can't expect a perfect signal-to-noise ratio here. I also don't know what will be useful to me. The problem of not knowing what I don't know, etc.
* [[2017.05.10 -- Diet Log]]
** Forgot to find the total.
|customTable|k
|Food|Calories|h
|Burger|1200|
|Fries|400|
|Pizza|700|
|Beer|125|
|Total|2425|f
I'm writing this a few days later. That's not my preference, but I think it is better to have a retrospective than nothing at all. 

Friday was quite busy for me. I had spent my previous evening studying for the exam I wanted to take on Friday. When I got there, my teacher asked me if I still had to leave early. I said yes. He continued to ask questions about when, I said by 10:00 or as early as possible. He said he'd give me the test asap.

I studied more. Everyone decided they would be taking the tests early as well. I was told by Mel and Chris that since I was leaving early that the teacher was likely going to let everyone out early. The teacher usually only does a full day when I'm there: like I'm the only reason he does his job. I will find out on Monday.

I took the test. This was the longest test we've ever taken in the class. I felt fairly comfortable with it. There were a couple questions I wasn't sure about, but that's okay. I believe I did a decent job. It is known to be a difficult exam, even for those who have been pipefitting for a while. 

I gave Luke my information, and the teacher saw me. He realized that I had asked if Luke could leave early to help me. He told Luke that he could leave as well. Luke and I headed straight to the house. We basically didn't have to clean the shop at all. 

Luke and I threw away the dead dryer, and we moved the old washer into my room (in case the newer one didn't work). We had to wait for a couple hours for the lady to actually deliver it. I was on a tight schedule since I wanted to leave as soon as possible to reach my brothers house before nightfall. That didn't go the way I wanted, but that's fine. 

She showed up, and we quickly moved everything up into place. We tested the washer, it worked. The dryer, unfortunately, has a different electrical hookup. My brother says I need to do my research before I make changes. The amperage could be different, and that would be dangerous. Luke tried to fix it by pulling the ground off. Lol. A failure. We'll get there.

Afterwards, we put the washer in his truck. Since it worked, he thought he'd find a home or use for it. Then we mounted the door, got something to drink, and then packed up and left. We arrived 2 hours later than I thought we would at my brother's house. It was a productive day, and it was a start to a good weekend.
|customTable|k
|Food|Calories|h
|Bacon|260|
|Eggs|220|
|Mushrooms|50|
|Chili|260|
|Pizza|800|
|Beer|125|
|Total|1715|f
!! How is your health? Daily routine? 

Better. Ice cream clearly was tearing me up, and I'm glad I stopped eating it. I've not noticed the same from cheese, thankfully. I've not had the same sort of trouble sleeping or serious pain since then.


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

The whole family gathered today. We also saw my cousin (technically cousin-in-law, but frankly, I think of him as a brother grafted into my family) Kody last night. I like that man. 

I was able to setup the RPi. I had difficulty connecting to the router from my laptop and went through a series of troubleshooting exercises (I could access the router admin console from my daughter's laptop, but it didn't operate nicely; it's an ISP router). My system logs did not point to anything wrong on my end (and I've connected before with this machine). I didn't find out what was wrong, although it magically started working. Persistence, I guess? Anyways, I got the RPi hooked up. I set it to DMZ on the router since I couldn't get forwarding to work (shit router). Hell, I couldn't even assign a static IP, yikes, even for the DMZ (I'd prefer to enforce it on the router rather than the RPi). The domain to reach my brother's house is dimbob.philosopher.life (although, I worry he has a dynamic IP, oddly). I made sure I could SSH into from the house, and Resilio sync is all setup; it can be managed from the internet. Even if I can't SSH, I have a backup solution through resilio (which pierces NATs beautifully) that automagically runs scripts for me (dangerous, I realize; perhaps I should setup with public key authentication). I'm glad I didn't install a DE; I can use it just fine without it. There's no reason to slow it down.

I was able to visit my youngest brother's apartment and his workplace. I'm glad I did. We talked. He sadly wants to continue working like a slave for these people (it was interesting to hear my brother's SO say the same thing later that evening), even though he claims he could make better pay working fewer hours at other restaurants in town. I told him to keep his eyes and options open. It was really good to see him. He has a ways to go (he said the night before that he felt it was a waste of his time coming over at 11:30 since we were going to sleep and he'd rather just drink and smoke at his place than stay). Today, I was able to setup his tiddlywiki, firefox extension, directory structure, and resilio sync for him, I picked up his domain antsmelody.life , setup the webserver and the rest of the resilio chain for him on my machines as well; everything should be set. I showed him how to use it, etc. I hope he will spend time journaling and talking to himself. I told him to feel free to ask my daughter or me if he had any questions on how to get something to work like he wanted on the wiki. He needs to be empathically compassionate towards himself. I think he hates himself. I wish I could give him a hug as I write this.

The beginning of the day went well. After lunch, my parents decided to attempt to argue about when we would meet up next year with the family. They clearly wanted it to be at their place (even dropping hints about the new furniture they bought for hosting us), and they refuse to even consider the reasons for why we don't want to go. They said that they would only come to my brother's house for a few hours on a single day and nothing more. There was a strong-arming component to it. We said we'd continue to meet at my brother's house, and this seemed best to everyone (except my parents).

The do not appreciate how their children are not in a season of life where we can a year in advance and guarantee it. They literally expect us to revolve around them. Unlike them, we don't have hundreds of thousands of dollars in the bank; we're fighting to survive. We are facing typical Baby Boomer psychopathy.

They took the children to buy clothes; it is a means of buying their grandchildren's love. Of course, afterwards, they voiced their entitlement to my children multiple weeks out of the year. The fun and merriment stopped. They made it awkward. My father went on to accuse us of schooling our children 52 weeks out of the year, like we are slavedrivers. He clearly cannot contend with the fact that he was a shitty teacher/parent. As I said before, my success as a parent only serves to highlight their failures. Obviously, my children get several weeks off during the year. And, frankly, they did get a week off already with their grandparents this year.

He went on to say visiting us while our children were in school would only allow them to see our children for an hour. His pointed implication assumes that our children are doing schoolwork when my parents are visiting. Frankly, that is just not true. Our children don't do schoolwork on those days when we have visitors, including my brothers and cousins. There are many other days where we give them the day off as well. 

My dad raised his voice slightly and was obviously perturbed. He ordered us to work it out since he was obviously not satisfied. Sometimes he is an entitled<<ref "1">> asshole; that is to say, he lacks rational justification for what he delusionally believes is owed to him. He does not understand the reality of Hohfeldian rights and duties which obtain. Mom sat silently as my abuser just continued (she is complicit). 

That my parents think spending time with my children is as important for my children as education is a failure to understand the nature of the world my children are facing and what it means to flourish as a human being. I think my parents believe we should be revolving around them. They take "honor thy father and mother" in an extreme way. 

The conversation awkwardly moved onto more pleasant things. My father then decided to tell me that my son had complained that he didn't want new clothes because he couldn't fit them into his drawers.<<ref "2">> My father went on to uncharitably and condescendingly tell me to make sure my son's drawers were clean. I think the foolish hypocrite does not remember what my life was like at that age and how poorly he parented. More importantly, he did not take the time to consider the possibility that my son has been working on this very problem; that we all have, with him. My father talks to me like I'm mentally handicapped. Granted, I definitely have significant psychic struggles, and breaking out of depression is very hard. I think he forgets what life was like when he was raising us. I think he is an abusive hypocrite who ultimately doesn't have our best interests at heart. It would be kinder and wiser of the man to keep his mouth shut if he doesn't know how to politely and empathically converse with his children.<<ref "3">>

---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

It is important to recognize that my parents are highly skilled manipulators. They grew up with it, and it has been fundamental to their careers as pastors and missionaries. I think my parents are lucky to be invited to see us at all. They were abusive. This is us trying to build a friendship with them despite our history. They continue to ignore reality. 

My parents clearly were unhappy with having to see us on anything besides their terms. They felt they should be worshipped as creators of their children in what is basically a lower form of the worship they expect their creator God deserves from all humans. They fail to empathize with those who don't hold the same religious point of view, and hence they do not appreciate the terms on which our relationship exists at this point.

I must contend with the fact that my parents are anti-intellectuals in certain respects. Sure, they value economics and HRD, and they previously had interest in theology, biblical studies, and even evangelism in some respects (although that has waned as they've become increasingly Capitalist). They have lost their humanity in their psychopathy. They do not appreciate the struggle of being human outside of the scope of their narrow Christian lens; it limits their ability to empathize with others and meaningfully see the world through the eyes of others. 

I believe they look at the educations their older children received and believe that "Liberal" (like a swear word) schools have poisoned their children's minds, turning their children away from Christian faith. They, of course, believe in memetic infections, but are not open to the possibility that is they who are memetically infected. Ultimately, they do not support a heavy emphasis on the education and critical reasoning abilities of my children. They don't want what is best for my children. They think they do, but they don't actually.


---
!! What are you going to do about what happened?

I'm going to let them head back to Thailand and think about it. I will set it aside. I have much bigger fish to fry in my life right now. Their feelings which result from their psychopathy is their burden to bear at this point. My children's well-being and happiness comes before all else. 

It is not my fault that my parents behave the way they do. I'm not responsible for their inability to effectively compromise, empathize, or acknowledge their abusive and manipulative approaches and behaviors. In some respects, I must protect my children from them.

From now on, they will visit us. Hopefully, the power dynamics will be much improved by then, and maybe they will better appreciate the reality of our situations. I doubt our relationship will improve. 

On a different note, I must not forget to send my brother the libgen URL. Furthermore, I need to send my other brother an invite to myanonymouse. I need to setup a VPN on the RPi and build ratio for him. 

---

<<footnotes "1" "I mean this in common parlance sense here rather than in a formal philosophical way.">>

<<footnotes "2" "My son later told me that wasn't true. He claims his grandfather misunderstood him.">>

<<footnotes "3" "I'm sure he would not be able to handle his own quip: 'If you have nothing nice to say, then say nothing at all.'">>
* You should write more on your wiki
* I like your Home page
** Center your Link Bar on the bottom
|customTable|k
|Food|Calories|h
|Egg McMuffin|288|
|Egg McMuffin|288|
|Hashbrown|147|
|Coffee|50|
|Tea|90|
|Hot dog|200|
|Quinoa Chips|130|
|Salad|100|
|Salami|220|
|Mandarins|70|
|Pear|100|
|Bagel|400|
|Total|2083|f
!! How has your health been this week?
* 1uxb0x
** It's been okay. He's been accidentally running into things. Spatial reasoning/dexterity problems are common for growing children and autistic people.
** Has seen growth in his legs.
* j3d1h
** Allergies are gone. Feeling well.
* k0sh3k
** Had a headache during the storm.
** Very sore from sleeping in a bad bed this weekend.
* h0p3
** Have been very sick from eating ice cream. I stopped, and it cleared up.

---
!! What happened last week? Have you been happy this past week? Why or why not?
* 1uxb0x
** Happy to visit his uncle. 
** Says he felt unhappy this week (however, it may be because he is feeling emotional right now). 
** Upon further inspection, he decided the week was better than it initially seemed.
* j3d1h
** Held out from buying anything. She is saving. Resisted temptation like a boss.
** Had a great time this weekend.
** Happy about having new clothes to mix and match for outfits.
* k0sh3k
** It has been an awesome week. Got to go out to eat multiple times on her employer's dime.
** Had a great weekend
** Got a new washer and dryer.
** Was very productive at work.
* h0p3
** I had a blast playing magic with my kids.
** It was a relatively productive week.
** I was happy

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** Holding up emotionally well under stress and change this week.
** Shows significant growth in socialization. He made people laugh, and participated in socializing with his family. He was good at it.
** Cautious and productive in the shop. 
** Thought a lot about other people this week, and thought about how to make other people happy. 
* j3d1h
** Cautious and productive in the shop. I was impressed.
** When there is no one else to help her brother, she helps her brother. When he is sad, she comforts him.
** You are tenacious and ambitious in your pursuit of your interests and help of others.
** Proud of the person you are becoming and seeing you interact with others and being comfortable with who you are (even if you aren't perfect)
* k0sh3k
** You are an empathic mom.
** Without you, I would be a much meaner person and probably couldn't live on. You make life worth living.
** You are a good accountabilibuddy. You hold us accountable to our schoolwork, but you do it kindly. 
* h0p3
** I wouldn't be as smart without you.
** I appreciate that you dream for the family. You think about long-term plans.
** I put up with her bullshit in schoolwork.

---
!! What will you do this week?

* 1uxb0x
** Write about seeing family more often. Yay! =)
* j3d1h
** Measure for ethernet
** Write my calorie log
** Resist temptation
* k0sh3k
** Conference
* h0p3
** Fix the dryer, again.
!!General Notes:

The kids were given Friday off for an extended weekend of freedom.

---
!!j3d1h:

* Review past week: 
** Research Skills: Cosmetology
*** She did the 100 years, and she tried the makeup styles
*** She did not do outfit building
** Math: Singapore Math
*** Missed one day of math.
*** Completed 3 pages.
** Writing: 250 word count in her wiki
*** Did her writing. It was hard to find.
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Did not do it.
** Vocational Practice: Applied Computer Science
*** Worked on USB backup. Several of the standard suggestions did not work. Will not quit.
** Reading: Ethics Toolkit
*** Finished.
** Social Studies: Khan Academy - World History
*** For 3 of 4 days, you did well. The last day you did 43 seconds of work.
** Spanish
*** Did a great job.

* Plan next week:
** Research Skills: Cosmetology
*** Build outfits out of your clothes. Take pictures.
*** Actually research how to build outfits. What does that entail?
** Math: Singapore Math 3A
*** Complete 10 pages
*** Put dates and page numbers on your work.
*** Kick it out in your math. 
** Writing: 250 word count in her wiki
*** Organize your writing. Date your writing. Make it easy to see your growth. Make it easy find. Structure your creations.
**Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Do the writing on the wiki, but you can still use sublime text to read it.
*** Do 1 program a day
** Vocational Practice: Applied Computer Science
*** Setup backup scripts for the family, except dad.
*** Measure for ethernet cord
*** Make the USB backup script. Look for one first.
** Reading: Little House in the Big Woods
*** Think about differences between the story and present day
*** Consider the differences the ways in which the characters think and modern thought, approaches to gender and race, etc.
*** Bookmarks!
** Social Studies: Khan Academy - World History
*** Consistently work the full amount of time.
** Spanish
*** Keep it up
*** Eventually, we'll move to Curationless conversation and more structured, and then we will dive right back into conversation.


---
!!1uxb0x

* Review past week:
** Research Skills: Curation
*** Found things about remembering what you read
*** Sent a few links on focusing and staying on task as well.
** Math: Life of Fred - Dogs
***  Completing about a chapter a day.
** Writing: 150 word count in his wiki
*** Missed one day of writing, but otherwise did a great job.
** Vocational Theory: Electricity Demystified
*** After questioning, it was clear he did his reading, but it was too difficult for him.
** Vocational Practice: Redstone
*** Created an OR gate.
** Reading: Fairy Tales from the Brothers Grimm 
*** Read 30 pages, roughly 4 stories (1 per day)
** Social Studies: Khan Academy - World History
*** Did work every day, although only did a full day once.
** Language Arts: JacKris Books
*** Did well, about a page a day with all the answers correct. The handwriting has improved. 


* Plan next week:
** Research Skills: Curation
*** Find two links, and write something about what you learned from using them.
**** e.g. If you find an article with "20 tips about focusing," write down a gameplan of what you are going to do with that information. Plan to apply some of those tips.
** Math: Life of Fred - Dogs
*** Continue doing about a chapter a day.
*** Mark the question number, and don't forget the page number.
** Writing: 150 word count in his wiki
*** Organize your writing. Date your writing. Make it easy to see your growth. Make it easy find. Structure your creations. 
*** Edit alongside your mother.
** Vocational Theory: Eyewitness Books: Electricity
*** Read to comprehend. Big sections first, then go through the little sections.
** Vocational Practice: Redstone
*** Try to build an adder
*** If you can't, build something which uses multiple logic gates.
*** Build something interesting with Redstone circuitry. Impress me. 
** Reading: Fairy Tales from the Brothers Grimm 
*** Aim for about 40 pages. 
*** Bookmarks!
** Social Studies: Khan Academy - World History
*** Keep track of when you start, and make sure you do the complete 30 minutes every day.
** Language Arts: JacKris Books
*** Complete 2 pages a day. 
*** On test days, copy out the words to practice your handwriting.
* Keep your calorie log
* Organize and structure
* Date your work
* Provide summaries and explanations for each major page.
* Write your booklist
* Spend one hour each day writing.
* I wish you wrote more about what you were learning in your class each week.
* Give a title to your story
* Spend a day dropping your entire picture collection in. 
* Learn hacking from nude girls --  https://archive.org/details/haxxxor_volume_1_dvd
* Interesting doxxing tool -- https://www.truepeoplesearch.com/
* Republican's targeting Democratic regions with double-standard applications of the law, gerrymandering, and now also funding cuts -- https://www.washingtonpost.com/news/answer-sheet/wp/2017/05/14/republicans-in-n-c-senate-cut-education-funding-but-only-in-democratic-districts-really/
I skipped 3 days because I didn't use the wiki or even the internet much at all over the weekend. I was visiting my family. I'll review my last full day, the 11th. Note, I did keep notes for my diet and few other things over the weekend. I'm grafting them in today.

* [[2017.05.11 -- Link Log]]
** I despise using twitter. I like how the quotes are aggregated on the trumptwitterarchive
* [[2017.05.11 -- Diet Log]]
** Glad we took it easy that day because the weekend was wild. I did not eat healthily at my brother's. 
* [[2017.05.11 -- Wiki Review Log]]
** I noticed that I continued to tweak [[2017.05.10 -- Trump's Nixonian Firing of Comey]]. Sometimes the wording just wasn't what I wanted. I like that I nitpick.
* [[2017.05.11 -- Pipefitting Log]]
** A few edits
** Oh, shit, I forgot to write about Pipefitting on 2017.05.12. Let's do that: [[2017.05.12 -- Pipefitting Log]]
* [[2017.05.11 -- h0p3's Log]]
** Don't eat ice cream. Problem solved.
|customTable|k
|Food|Calories|h
|Pizza|500|
|Pears|200|
|Apple|100|
|Mandarins|70|
|Pancakes|700|
|Berries|70|
|Honey|90|
|Nuts|170|
|Total|1900|f
!! How is your health? Daily routine? 

I'm feeling anxiety pains in my chest. I slept well enough. My head feels cloudy/fizzy/compacted/tingly (like coming off Lexapro), which I associated with depressive symptoms as well.


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

I've had a lot of thoughtloops since meeting my parents. It clearly is emotionally draining for me. Thankfully, I can pull myself out of those loops. I have the will power to stop. 


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

I'm not sure I have much more to say. I thought I should at least write it down. Perhaps more of what it is that makes me anxious will leak out. Right now, I just have the physical symptoms. I will say that I had to skip to DCK this week. This may also be part of the thoughtlooping.

The wiki makes me confident in being able to handle anxiety and depression bubbles. Recall that eventually I will not use DCK. I must find the right habits and constructive behavioral reactions to stress and the problems I encounter. This is the best place to do it. Remember to be kind, compassionate, and empathic!


---
!! What are you going to do about what happened?

I'm going to continue to monitor. I will make sure I don't fail to take DCK this weekend. If it gets bad, I will take the day off to take DCK during the week. I believe this won't be necessary though.
* The problem with this mentality, I worry, is that it allows the Democrats to seat whomever they want, namely neo-liberals. It's a trojan horse. This is just a continuation of the false-compromise process which continually occurs over the decades in US politics (like all modern, and perhaps even ancient, politics) -- http://www.nbcnews.com/storyline/democrats-vs-trump/democrats-agenda-win-house-2018-investigate-donald-trump-n759106
* I love having my cognitive bias on privacy and the belief in the increasing collapse between the distinction of corporations and our government confirmed -- https://www.theatlantic.com/technology/archive/2017/05/the-thinning-line-between-commercial-and-government-surveillance/524952/
* While I grant there are significant problems with the Left, I'm blown away that people do not see how those in power continue to use it over and over to suppress Leftist thought and political movements throughout the world; the game is rigged memetically, financially, and politically -- https://www.prospectmagazine.co.uk/politics/how-long-can-the-centre-hold
* Yet another article which shows what we already know. The fact is that many corporations are building vast dossier profiles on every person. I am continually amazed by the fucktards who don't value privacy -- https://spideroak.com/articles/facebook-shadow-profiles-a-profile-of-you-that-you-never-created
* It is no accident that Americans do not learn geography -- https://www.nytimes.com/interactive/2017/05/14/upshot/if-americans-can-find-north-korea-on-a-map-theyre-more-likely-to-prefer-diplomacy.html?rref=collection%2Fsectioncollection%2Fupshot&action=click&contentCollection=upshot&region=rank&module=package&version=highlights&contentPlacement=1&pgtype=sectionfront&_r=0
* OP has a much better grasp of employment problems than the vast majority of people I've seen (/u/SaikenWorkSafe's comments are cringeworthy in their ignorance of the nature of the good and the complexity of measuring it) -- https://www.reddit.com/r/lostgeneration/comments/6ba13l/the_screwed_job_market_why_are_good_percentage_of/
* It's a good thing when the military control swathes of foreign policy, right? -- https://www.thenation.com/article/the-military-now-runs-us-foreign-policy/
* You don't have to agree with what you read, but god damnit, fucking read widely -- https://www.vox.com/science-and-health/2017/5/15/15585176/motivated-ignorance-politics-debate
* Material conditions will need to become even worse before we'll see any sane collective consciousness of American Youth, if at all -- https://boingboing.net/2017/05/11/the-c-word.html
* From the bottom of my heart, Conservatives and Psychopaths, if you can't reprogram yourselves, then please kill yourselves; it's the only empathic thing to do -- https://arstechnica.com/tech-policy/2017/05/cable-lobby-conducts-survey-finds-that-americans-want-net-neutrality/
* Self-compassion and empathy is exactly what I'm trying to do here (points one comment up) -- https://www.theatlantic.com/health/archive/2016/05/why-self-compassion-works-better-than-self-esteem/481473/?single_page=true
* Socialist writers are brutally honest -- https://www.johnlaurits.com/2017/children-great-recession-millennials-class-struggle/
* Democrats who support the DNC's rape of the primaries disgust me; democracy my ass, and how dare they sweep it under the rug (people have memories almost as terrible as their critical reasoning skills) -- https://medium.com/@caityjohnstone/the-media-blackout-on-the-dnc-lawsuit-proves-that-it-is-nuclear-32305f574f6e
* Chinese public school failures and corruptions; again, I blame capitalism and psychopathy (or are you foolish enough to still believe China is socialist or communist?) --  http://projects.thestar.com/expelled-by-beijing/index.html
* MS confirmed NSA created the recent hack. This hack was, of course, "stolen" and released when the NSA was hacked. Do you see why I don't fucking trust backdoors? -- https://twitter.com/Snowden/status/863872972553166848
** A good post on it -- https://np.reddit.com/r/news/comments/6b7gd4/microsoft_president_blasts_nsa_for_its_role_in/dhkpmtt/
* As we all seem to say nowadays: "Sad if it is true" -- https://www.salon.com/2017/05/15/donald-trumps-aides-are-resorting-to-fake-news-so-that-he-hears-what-he-wants-to-hear/
* Trump has a big mouth with classified information *gasp*, and with the Russians *double gasp*, color me fucking //shocked!// -- https://www.washingtonpost.com/world/national-security/trump-revealed-highly-classified-information-to-russian-foreign-minister-and-ambassador/2017/05/15/530c172a-3960-11e7-9e48-c4f199710b69_story.html
Today wasn't as productive as I'd have liked, but it was good. I overstudied for my exam on excavation. The past few tests, which are directly about pipe construction, were difficult. They required a lot of attention to detail. This one almost disappointed me with the simplicity of the questions. It is better to be overprepared than under though. I will continue to ultimately aim for the golden mean, even if that requires I slightly overshoot to the side of excess.

I literally spent all day studying, except right after lunch (before break). I talked with the guys about a very wide variety of topics. They continually picked my brain about my children, what I wanted for them, education, New Orleans, computer hardware, hacking, anonymity, research chemicals, etc. 

In any case, I crushed the exam (I found out I did well on the previous as well). I then moved onto the 4-on-6 Chris and I started last Thursday. Chris didn't get much done in an hour and half last Thursday, and I didn't have but 15 minutes to do anything with it. I deburred it and smoothed it out. It still has a wobble and gap, but it is closer. My teacher told me to tack it and mark it. I'm not convinced that is going to help though. I'm all ears, but remembering my marks isn't the hard part. Knowing //where// to mark in the first place is the hard part on this piece. Hopefully, we'll fix it tomorrow. Chris was out on some guilt-trip trip (not sure if I should be redundant here) today. 

The teacher says we won't be able to buy the hardware to mount the simulator until after July 1st, the beginning of the school's fiscal year. I talked about where we should store it. OSHA makes it a bit difficult for us. We'll probably take down the simulator fabrications on the old one, clean it up, and then forklift the new one over. We have to tie it down with some serious rigging too. That's the plan at least.

After talking about the simulator, he showed me something he's working on for the city. It's a park bench. We're taking it apart, fixing it, and welding it back together. He has assigned that to me for tomorrow. I'm excited. I hope I can figure it out. I have no idea what my teacher is getting out of it, but I don't care. This is practice. I'm grateful to have it.

My teacher also told me that we'll be spending Wednesday through Friday on the Torque seminar. I have read about it, and I've a special packet on it I've covered. I've yet to actually use it. I'm going to try and take exceptional notes. I hope to get my hands dirty too (although, I have my doubts we'll get the chance). I want to really understand it deeply. Our teacher for this topic is apparently an expert, although the teacher hates the man. I've heard our torque teacher is not a punctually reliable man from more than one person.

Also, my teacher has a Memorial Day vacation swap he decided to force on us. We'll be out of class for an extended period of time, a whole week extra for my teacher. We will "make it up" in July's break (unenforced attendance). I think this sucks. I want to fucking learn. This is ridiculous. I'm going to ask the welding teacher if I can come in and learn from him and his students during that time period. There is no reason to waste this opportunity.

On a different note, my teacher thought it was stupid that 7th graders were touring the school. His reasoning was "Why would they think about their occupation at that age?" To him, it was as if planning for the future and teaching them to plan was not worth doing. Even if it isn't successful for all, the attempt is obviously necessary. He has the wrong mentality.

After class I visited the union. I talked to Randy. I made a mistake. I brought 2 of 3 the books that I meant to give back. Upon inspection, I found the 3rd book in my backpack wasn't the right one. Fuck. I didn't have time to run all the way back home for it. I thanked Randy and explained a couple points about the books that I found interesting. We talked about the fact that a lot of people in our area hate unions, allergically so, and that it's hard to find workers and work in our area. He is trying to find a way for apprentices to train locally though. I think this is because the higher-ups don't like how he does it. I talked about how school was going. He told me they still intend to hire in August, and that even if they weren't, he is going to fight to hire me and T.J. anyways. I told him about Chris. Anyways, I'm bringing the book by tomorrow; he won't be there, but he said someone would. He needs the book for the classes he is required to take. I'm going to put a "thank you" note in it with my name to make sure he remembers it.

Lastly, I want to note that I am kind of in awe of my brother [[JRE]]. I talk to him on the phone, and talking to him in person makes it even clearer.  His pipebending is beautiful, and he understands screwpipe (and something else that electricians do which pipefitters, who work with pressure, do not). I have no idea how he learned all this without going to school for it. I hope that I'll be able to do on-the-job training as well as he has. 





 
!!What is your most invaluable possession and why?

* What counts as a possession? 
* Ah, do you think I'm making the mistake of responding to a question with a stream of questions? 
* What else do you expect from a philosopher?
* Is there a difference between "most invaluable" and "most valuable," and if so what is it and why?
* Why is that question valuable?
* Why is the above question valuable?
* Why is the above question valuable?
* Why is the above...go fuck yourself.

I take a possession to be the target object of some person's or persons' Hohfeldian ownership claim right(s), a molecule of rights reducible to a complex set of atomic claim rights with corresponding duties assigned generally to other people. Problematically, possession comes in degrees and perhaps different kinds, especially under a variety of normative contexts (legal, moral, etc.). Possession, therefore, is a very complex normative concept, and it is likely more inclusive and complex than you imagined. 

Do I possess my children? To the extent and kind that I do, they are clearly it. My wife's and my happiness are instrumentally invaluable qua being a means to my children as my telos. Or, perhaps Eudaimonia is still it. The Good Life in itself, inescapably, is that which I seek above all else. I'm a proper Egoist who understands how the happiness of others is necessary for my happiness. Is this a chicken or egg problem? I don't know. 

Your question comes embedded with serious problems, and it's foundations are unclear. I don't even mean this in some Derridean post-structuralist sense about "There is nothing outside the text" or other equally skeptical problems (although, I take the point here too). There are too many unanswered questions for me to rightfully answer your question.

So, can I //possess// a telos? If so, in that respect, Eudaimonia seems the obvious answer. Maybe there is a difference between saying I "have" a telos and I "possess" a telos. I don't know. There is a sense in which it is perfectly natural to say it is my happiness, and yet there is another sense in which I find it strikingly odd to say I "own" my happiness. I think plenty of people don't have a right to the happiness they enjoy.

What has pure, unified, unconditional intrinsic value? Is it for me only? Is it universal? How universal? Is it particularized to the point absurdity? 

Is this what I believe to be my most valuable possession, or are you asking something more objective? Can it change, and how so?

The question requires a metamodern framework to overcome so many timeless questions, clearly.<<ref "1">> I don't quite have one, other than to attempt to give you a practical answer.<<ref "2">>

Okay, um, so I take my life to be my most invaluable possession.

Oh, you don't like that answer, do you? Maybe you find my answer to be #iamverysmart annoying to you.<<ref "1">> Maybe you think it's cheating? It's sneaky and cheatyfaced, eh? It's kind of like answering "Jesus" in church; you'll get the answer ultimately right at least 50% of the time, but you've somehow evaded the intention of the question's author by piercing too much to the heart of the matter. You were looking for a more concrete, simple, almost relativistically dismissable answer, I suppose. You think that answering the question with some physical object tells the answerer something important about themselves. Well, then my answer seems fine. It says what I mean and tell me about who I really am, right?

Thus ends my first masturbation session in my newly founded [[Prompted Introspection Log]].

---

<<footnotes "1" "Go ahead and kill yourself, psychopath.">>

<<footnotes "2" "Thank you Plato, Aristotle, and Kant. I will never escape you.">>

<<footnotes "3" "But, that's okay, right?">>
* [[2017.05.14 -- k0sh3k's Wiki Log]]
** Maybe my wife and I should set aside an hour together each day. I know she just wants to veg. Sometimes it helps to have an accountabilibuddy who does it alongside you. I know weightlifting was that way for me.
* [[2017.05.14 -- 1uxb0x's Wiki Log]]
** I really need my wife's help to help my son. I can't motivate him. I can't get him to do it. She is the only one who can. Without her, he will fail.
* [[2017.05.14 -- j3d1h's Wiki Log]]
** I need to stay on her about the calories counter. Having the discipline to maintain the habit of being honest with ourselves is really the major hurdle. After that, getting it done is often easier (although, not always).
* [[2017.05.14 -- Family Log]]
** It really sucks doing the [[Homeschooling Log]], [[Family Log]], and [[Family Wikis Log Collection]] completed at the very end of Sunday night. We had to out of necessity, but we should plan around it as much as we can. It is a very intense series of objectives to complete in a single setting.
* [[2017.05.14 -- Homeschooling Log]]
** My wife will be going to conference, so I worry that my children will fail more towards the end of the week without her daily accountability session with each of them.
* [[The House]]
** I'm glad I'm dreaming. I looked it up. It would be crazy expensive. It doesn't hurt to dream though. Motivations rock, even if you don't achieve the dream you had in mind. I'll do the best I can with what I have.
* [[ASCII & Unicode Art]]
** Doodles, yay!
* [[2017.05.14 -- Link Log]]
** I've found that I use my lunch breaks to generate my Link Log. It saves me time. Eventually, I'd like to make sure I have zero sync problems so that I can edit from multiple devices. This may not be possible. I should at least work on it though. Ultimately, I'd prefer not to use a text editor for notes on secondary machines.
* [[2017.05.12 -- Pipefitting Log]]
** It was interesting being away for a weekend. I think I need to develop better coping mechanisms. That said, retroactive writing is still better than nothing. I know I can't always get what I want. I should plan around it. I'm not exactly sure what I should do though. I'm glad I didn't just give up on it for those days I was away.
* [[2017.05.14 -- Diet Log]]
** Found the sum total.
* [[2017.05.13 -- Diet Log]]
** Surprisingly didn't eat much that day, although I didn't eat healthily either. I'm betting I just felt anxious.
* [[2017.05.12 -- Diet Log]]
** Eat all the things that are bad for you! Nom, nom.
* [[2017.05.14 -- Wiki Review Log]]
** A few edits.
* [[2017.05.13 -- h0p3's Log]]
** Edits
** Also, glad I reminded myself to send the invite and the libgen address.
** I need to set the VPN up.
|customTable|k
|Food|Calories|h
|Pear|100|
|Biscuits and Gravy|800|
|Lemonade|220|
|Hummus, Chips, Veggies|400|
|Stir Fry|650|
|Apple Strudel|600|
|Total|2770|f
* An outstanding talk about continued centralization of the internet and web in particular, and he offers an alternative "Othernet" -- https://vimeo.com/217265093
* Not boring article about capitalism, democracy, and globalization. I find it too charitable to capitalism, but what's new? -- http://www.claremont.org/crb/article/sending-jobs-overseas/
* I've seen lots of people live on a laptop alone, with docking. I am not surprised to see a push for the phone to be the ultimate all-in-one device. It is not clear to me that mobile computing will catchup enough for me to desire switching -- https://maruos.com/#/
* Footnotes to Plato echoed again -- https://aeon.co/essays/what-plato-knew-about-behavioural-economics-a-lot
* I think it's hilarious how they do not see the connections between the what they take to be the primary causes of the Life Expectancy gap and income inequality as well as other centralizations of power in our profoundly capitalist society -- https://directorsblog.nih.gov/2017/05/16/widening-gap-in-u-s-life-expectancy/
* Publishers only entered the digital book market kicking and screaming, as always for media companies (and, I'm well aware of the aesthetic and pricing considerations which we falsely claim accounts for the decline) -- https://www.theguardian.com/books/2017/may/14/how-real-books-trumped-ebooks-publishing-revival
* Late Stage Capitalism and the Enslavement of Masses bias being confirmed, again -- http://www.epi.org/publication/employers-steal-billions-from-workers-paychecks-each-year-survey-data-show-millions-of-workers-are-paid-less-than-the-minimum-wage-at-significant-cost-to-taxpayers-and-state-economies/
* Hard-to-fathom STANDARD slavery in modern suburban America -- https://www.theatlantic.com/magazine/archive/2017/06/lolas-story/524490/

Honestly, it wasn't as productive as I would have hoped. I'm actually sore today though, so I did work hard.

Today I was told to start taking apart the simulator fabrications. Robert helped me since the other new fellow, Matt, didn't show up again (he doesn't have his life together yet, I take it; sucks man). Robert was unhappy with being held back from testing, but he worked hard with me. He's a father-to-be and kind of boring (but decent). He doesn't seem to have any actual hobbies (used to snowboard long ago, despite being 400 pounds) from what I can tell. That's okay. We took down one and half fabrications and dismantled one. My teacher came over and said he forgot to give us something before that. 

We were tasked with fixing a truly damaged metal park bench for the city (apparently, their guys couldn't fix it, as we could see). I didn't realize how damaged it was until today, despite having looked at it yesterday. We think someone very overweight sat on it, or something else went terribly wrong. 

In any case, we took it apart and cleaned it up. It was bent, rusted, and we had to clean it up. We had to take some paint off as well, although even some of that melted. It had an unpleasant odor to say the least. Ultimately, the major mounting area had a hole in it, and it was so thin and cracked that the only real option was to cut some carbon steel plate and weld it over the area. My teacher required us to MIG, and I'm not sure why. We put the plate over the mounting region (some of my welds looked decent, but many weren't), and then we had took quite a while trying to fit the piece on level, plumb, and properly rotated. It turned out okay. At the end of the day, my teacher asked us to clean it up with a tigerpaw disk. It was funny to hear him say we should grind the weld in contradiction of his previous requirements.

Chris studied, and I helped him. Oddly, he failed the test. That's a first. He'll have to take it next week, I think. Afterwards, he dismounted one of the simulator fabrications and took it apart. That's really all he did today. I think he was feeling pretty down today.

We cleaned the shop today. I even organized the tool room, especially the large shelf, top to bottom. It desperately needed it too. Interestingly, I found the concrete mounting hardware we needed for the permanent simulator we created. The teacher was pleased. Ironically, if I found these before then we wouldn't have had to remove the simulator fabrications. We will probably mount it tomorrow.

Before we left for the day, he had us mark 3 feet off the current simulator and chalk-line it. 

I went over to the union to drop the book off, but no one was there. I thought about leaving it outside, but thought better about it. I said I would return it in the condition I was given it, and I want to guarantee that.

I need to see if I can step out on Thursday to see the welding teacher. In part, I want to finally meet with him, but also I want to see if he'll let me show up on my days off. 





!! What is your idea of a boring evening?

I am straight-up addicted to not being bored. I realize that being bored, from time to time, can be a good thing. I hate the feeling. I need another hit off the various kinds of "drugs" in my life (which is far broader than mere substance use, which I barely use at this point). Hell, even this wiki serves as a kind of drug, a constructive one at that though.

My idea of such an evening is frightening. I'm psychologically dependent upon not being bored. I need bangs and flashes, one after the other...

//God fucking damnit. Fine. This prompted introspection is inescapably useful to me.//

As I was saying (before I rudely interrupted myself, *ahem*), I need to be titillated, entertained, appeased, surprised, and constantly (with zero interruptions) have my attention focused on something interesting. I refuse to be bored. 

What are the negative effects of not living a life in which I experience more boredom? 

I really don't spend time sitting on the porch. Life moves too fast. I jump from one thing to another, and perhaps I lack the reflection I really need. Is it important to have brainfart, space-out, veg-out time? What is the use in just sitting there? What is the value in being bored? I don't mean to confabulate here. It is something I should investigate. 

Okay, so I'm committed to giving more literal answers here as well (even though the theory is obviously crucially practical). Um, a boring evening would be:

* Zero electricity or battery-powered objects
* Little or no light
* No substances
* No music (even from my own instruments)
* No ~~bored~~ board games, magic, etc.
* No books of interest
* It's especially bad if I have no one to talk to. I can survive such an evening just fine if I have people to talk to. In fact, I enjoy those uncommon evenings often enough. It's part of what has led to me walk and talk with my family more often (that sounds sad). 

I mean, being truly bored requires a kind of isolation from everything and everyone I care about (it reminds me of one of the better theological descriptions of Hell). Of course, I'm not sure if I can ever be truly isolated when I have myself in a way (conversing with oneself seems to be the basis of not feeling isolated and truly alone). Maybe being bored, to that degree, is a bad thing. 

There is the phenomenological question (actually many) about boredom. What would Heidegger say? His view, imho, seems far less laced with normativity, except his question begging about the superiority of the Ready-at-Hand mode. I'm not sure how useful that perspective is here, besides helping me identify what even counts as boredom.

Maybe the feeling of boredom isn't itself a good thing, but rather from a virtue-theoretic perspective, being someone who experiences sufficient quantities, time-periods, degrees, and kinds of boredom in the right ways at the right times, etc. is living, ultimately, a better kind of life.

Aristotle warns us about The Calm. Sometimes it seems as if he could be wrong. Diminishing marginal utility often seems like it is only kept in check by taking "tolerance breaks" from those thing which give us utility, joy, happiness, pleasure, hedons, etc. Maybe boredom accounts for a tolerance break that ultimately enables us to enjoy the lives and resources available to us in a more efficient, economical, and stable way. Boredom allows us to more effectively lick the spoon, suck the marrow, etc. out of life.

Is it conceptually possible to embed boredom in the notion of carpe diem?

Clearly, there is much I do not understand here. 
* [[2017.05.15 -- Prompted Introspection Log]]
** Edited.
* [[Writing Prompt Sources]]
** I should add more. I'll do it slowly though. I'm in no rush.
* [[Prompted Introspection Log]]
** Edited.
* [[2017.05.15 -- Link Log]]
** Edited. I had a lot to say yesterday. I suppose it comes in spurts.
* [[2017.05.15 -- Wiki Review Log]]
** I still haven't finished the VPN, although I have the script for it. I haven't heard back from my brothers.
* [[2017.05.15 -- h0p3's Log]]
** Edited.
* [[2017.05.15 -- Diet Log]]
** It felt like I used more calories that day. The pancakes were cheaper than I expected.
* [[2017.05.15 -- Pipefitting Log]]
** I've noticed that I continue to claim my days aren't as productive as I'd have liked. What does this mean? The pattern is there. I need to reflect on this.
** Edited.
|customTable|k
|Food|Calories|h
|Chili|700|
|Honey and PB Cracker|190|
|Pizza|1200|
|Beer|100|
|Wine|25|
|Total|2215|f
!! How is your health? Daily routine? 

I'm doing well. I've had some rough dreams (not exactly nightmares), but I did get sleep. I've not felt as much anxiety since diving back into my work.


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

My wife is gone for the next three days away at a professional Librarian conference for the major universities and colleges in the Appalachian region. It's exciting. I'm hoping it goes well with the kids while she's gone. 


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

Today, the kids have been more lax about school. The fact is that their mother is in charge of keeping them on task because when I do it, I'm a brutal taskmaster. It isn't like the work is different, it is simply a fact that I suck at motivating people to do the right thing. I'm fine giving rational arguments, but beyond that, we encounter different kinds of problems. 


---
!! What are you going to do about what happened?

I'm going to try and chillax with my children. We're going to play magic tonight. I will require them to write in their wikis, but I'm leaving the rest of their schoolwork to their mom.

Oh, I looked up my dryer. It can use a 3-cord. The amperage is fine. I picked one up from Amazon. I won't receive it until Monday. I'll fix it then. 
* Political Activism Will Be Punished -- http://thehill.com/homenews/house/333395-gop-rep-goes-after-activist-by-writing-letter-to-employer
* It seems I made a reasonable prediction in my [[2017.04.17 -- Ransomware Economic Strategies]], although this wasn't nearly as big or well-done as I think may eventually occur -- http://www.economist.com/blogs/graphicdetail/2017/05/daily-chart-10
** Also, the new ransomware does attempt to scale with income -- http://www.taiwannews.com.tw/en/news/3161826
* Voting Reform:
** https://www.youtube.com/watch?v=s7tWHJfhiyo
** https://www.youtube.com/watch?v=e3GFG0sXIig
** https://www.youtube.com/watch?v=Erph1L_XwVQ
** https://www.youtube.com/watch?v=l8XOZJkozfI
** https://www.youtube.com/watch?v=QT0I-sdoSXU
* I recognize the propaganda, but Republicans, like all politicians, generally say one thing and do another. McCain is a classic example at this point. -- https://thinkprogress.org/the-myth-of-republicans-in-congress-pulling-away-from-trump-a77ac7436f
* Chaotic simpleton Dark-Triadics still merit analysis -- https://www.vox.com/policy-and-politics/2017/5/12/15621140/interpret-trump
* Post about Placebos -- https://np.reddit.com/r/AskReddit/comments/6bibrt/what_surprisingly_is_scientifically_proven/dhnfpp8/?st=j2sbfuup
Today was a good day. I got some studying done for my final exam. Also, Chris told me that the teacher is not prepared for the next book. We'll see. I'll ask to start studying the book anyways. After studying, we started getting the shop ready for mounting the second simulator. We moved the tables, set all the wires, got an air hose set, fixed up the concrete bolts, and slowly took the simulator off its stands. 

Eventually, the teacher took the forklift and raised it up. He can drive it well. I hope to learn how to drive it as well. Eventually, I will ask to build an obstacle course in the parking lot to do it. That would be worth my time. 

They slowly moved it around, got it into position, and then we started leveling. We brought out a giant german hammer drill and made some holes while the simulator was in place. We aired them out, and then we hammered the concrete screws into place. I tightened them up. Everything came out well. 

Luke found the L-shaped (looking down it longways) metal that we cut in several places to fit over both simulators (the other is anchored to the wall). It took a while to clean that up. Luke tacked it, and Nash asked me if he could do some welding (I took some video of it for him). I went back over all the welds though. This time, my welds kicked serious ass. Like, it flaked off nice. More than once I've had good looking welds. I'm pleased by that. 

I cleaned up almost entirely by myself. Eventually, the teacher told us to find all the 3" 150# flanges we could. We found 10. He then told us to create fabrications for the simulator (in as many pieces as we wanted, as long as it was complex). We spent the rest of the time trying to figure out what we wanted to do. We each drew up some plans, but nothing quite worked.

The big monkey wrench was when I went to measure. The simulators aren't perfect duplicates. In fact, there is 1/16th off on the bottom 3" flanges and possibly 1/4th on the top 3" flanges. I think that means we'll need to redraw because we can't count on them to be perfectly level across the board. We'll figure it out tomorrow. I think we'll do some measurements first, and then we'll plan around it.

Chris was lazy again today. Maybe something else is wrong with him. I don't know what it is. He's not exactly been himself lately. Or, perhaps this is just part of the continual pattern I have in getting to know people. In almost all cases, the more I get to know someone, the less I like them.
!! What advice would you give a new student?

Student of what? What is the purpose of this advice? Presumably, my goal is to help them succeed at their practice. But, what if I think their practice is immoral? Alasdair MacIntyre shows us the moral non-realism of Virtue theory. My advice, of course, would need to fit the student, the practice, and the context, among other things. Am I being asked to give generalized advice? Am I assuming I want the student to succeed, and am I to assume success simply counts as what everyone generally considers to be virtue of the practice?

I used to teach. Hell, I still do, but I don't get paid for it. I teach the other students in my class. I teach myself. I teach my children. I give advice all the time to students. Here goes:

* Do your best.
* Work smarter not harder, but still work crazy fucking hard (just not at the expense of efficiency, effectiveness, etc.). Give 110% (Bobby Hill).
* Have a good attitude.
* Do not give up. Don't quit. Persist! Be relentless.
* Empathize with your future self; know thyself; know why you are a student.
* Focus.
* Understand the theory, and grind it in practice/application.
* Practice correctly. For the love of God, practice correctly!
* Be creatively programmatic. Design and follow gameplans. Develop habits which make you virtuous at the practice.
* Understand your goals, find the means to them; break large problems into manageable smaller ones, etc.
* Listen to experts.
* Be insatiable in your pursuit of wisdom and knowledge.
* Be meta.
* Understand the meaning and purpose of what you are doing. Understand the value of your practice.
* Be humble, honest, open to change, willing to fall and stand back up, etc.
* Explore the landscape of your practice.
* Find your niche, develop a competitive advantage, but don't simply work on those things which are easy for you.
* Learn the fundamentals like the back of your hand. Master them.
* Appreciate crossover, hybridization, and interdisciplinary aspects of your practice.
* Perform your practice with moral integrity.
* Maximize your utility.
* Be rational; be empathic.
* Do as the virtuous agent would do, feel as they would, think as they do, be as they would, aim for the golden mean, etc.

See, this shit just boils down to the kind of advice we have to give ourselves as students of life. I generalize to the point of absurdity; it's like some shitty self-help list. Ultimately, I need more context to answer the question. I have tons of thoughts about how to learn various subjects, how and what to learn at different ages, and which subjects are worth pursuing and why. I can't just write you a one-size-fits-all answer. The world of learning is simply too broad.

I fear you think I'm literally throwing your question away. But, specificity really is key here. 

Ah, but the answer is obviously not as clear I made it sound either. All too often, moral luck and at least a strong disregard for the opinions, feelings, or thoughts of others form another basis of successful students.

* Be born in the right circumstances.
* Be wealthy.
* Be attractive.
* Don't be unattractive and poor.
* Be intelligent, and if you can, be clever.
* Do not respect authority except yourself (that doesn't mean you don't appear to respect authority). 
* Appearances tends to matter more than substance.
* My [[Common Sense]] page is invaluable to you.
* Cheat where applicable. Be sure to abuse summaries and shortcuts. Find the easiest, laziest way to defeat the system in front of you.

Ah, my student, success is an ugly thing all too often. My advice will have many contradictions in it. Unfortunately, success itself has too many contradictory definitions and contexts.

Give me the telos and context, and I'll try to come up with the means to your ends. Such a maxim, of course, hasn't been universalized. It is mere instrumental reasoning on its own. And, yet again, this house of cards of a question is reduced to absurdity.

Of course, [[RPIN]] and [[KIN]] wage their battles over such fundamental questions. I am not unified enough to answer this question, not that any person I've ever met or read could answer it satisfactorily either. I legitimately wish there was a purgatory for me to talk to my philosopher kingods, at least as I've imagined them with my Straussian charity.

This reminds me, I need to take my DCK this weekend. I clearly need it.

* [[2017.05.16 -- Prompted Introspection Log]]
** Edited.
** I'm really glad that I'm grinding through these introspection prompts. It is my hypothesis that the recreational and free-wheeling aspect of them allows me to lower my guard and think about things in an honest way. It's a way to force myself to do some existential lifting.
* [[DIY Art]]
** I fear this could go many places. I'm still unsure what I want to do about my thousands of links.
* [[2017.05.16 -- Link Log]]
** Edited.
** Also, I forgot links from yesterday. Lol. Umm, so I'll just put them in todays. Or should I graft them in? This is a problem that I don't know how to easily answer. I need principles for this problem. I don't run into it often, but I need to know how to handle exceptions in wiki procedures.
* [[2017.05.16 -- Wiki Review Log]]
** I said scarcely little in this log. I take this to be part of the oscillation. I won't strike gold every day.
* [[2017.05.16 -- Pipefitting Log]]
** Edited. 
** Also, I was reminded to edit today's log.
* [[2017.05.16 -- Diet Log]]
** You are eating more than you should. Look at those calories. Were the biscuits worth it?
** Not having shopped for more fruits and vegetables may be hurting me here. I've held back on them to make sure the kids have enough for the week. I'm trying to save money and squeak a week by without any shopping. You can still just eat less. If you have hunger pains, then feel satisfied by your grind towards happiness.
|customTable|k
|Food|Calories|h
|Burger|600|
|Fries|240|
|Coleslaw|75|
|Gravy|40|
|Couscous Stir Fry|900|
|Beer|100|
|Total|1955|f
* I'm definitely in confirmation bias territory. The article is a bit too anecdotal for my taste. It makes some good points though -- http://www.truthdig.com/report/item/trump_is_the_symptom_not_the_disease_20170514
* Define Narcissism -- https://www.independent.co.uk/news/world/americas/donald-trump-intelligence-reports-white-house-read-them-mentioned-name-president-a7740726.html
* We can see which side of the fence they sit on concerning "populism" --  http://time.com/4775441/the-wave-to-come/
* Hitpost on Nye and Scientism as a cult -- https://www.reddit.com/r/television/comments/6bi4ho/i_think_im_done_with_bill_nye_his_new_show_sucks/dhn89le/
* I am unsurprised that those who want to make money purposely ignore the crucial distinction between shareholders and stakeholders -- https://www.nytimes.com/2017/04/24/books/review/golden-passport-duff-mcdonald.html?_r=0
* Economics continues to appear to be an exploitative form of psychology -- http://nautil.us/blog/to-become-a-better-investor-think-like-darwin
* Disheartened about Net neutrality, you and me both; we must stop this capitalist game and decentralize -- https://blog.mozilla.org/blog/2017/05/18/one-step-closer-closed-internet/
* WTF BBC! Legal or otherwise, are you out of your Gawd Damned MINDS!? -- https://www.techdirt.com/articles/20170517/15232937397/bbc-says-it-may-contact-your-boss-if-you-post-comments-it-finds-problematic.shtml
* Internet Rabbitholes, Fascinating, Sometimes Brilliant, Odd, Crazy, Scary, Contrarian, Technologically minded, and *gasp* often Rightist Links:
** Link heaven -- http://www.xenosystems.net/
** https://redice.tv/start
** It doesn't matter how much I disagree with large swathes of his claims, this is absolutely fascinating -- http://xynchroni.city/
** https://vincentgarton.com/
** http://thearchdruidreport.blogspot.com.au/
** http://www.overcomingbias.com/
** http://www.isegoria.net/
** A fucking classic at this point -- https://www.ribbonfarm.com/
** http://www.accelerationwatch.com/
** http://hooverhog.typepad.com/hognotes/
** http://unenumerated.blogspot.co.uk/
** http://home.earthlink.net/~flyingdragongoddess/indexa.html#peter
** Another fucking classic -- http://yudkowsky.net/
** I should stop repeating myself -- http://slatestarcodex.com/
** I consider myself a culturalist in the sense that I think there are superior memetic networks, ideas, behaviors, etc. This isn't what I mean by it though. -- http://alternative-right.blogspot.com/
** Oh, I'm sure we could be best friends (/bleh) -- http://www.amerika.org/
** http://anti-gnostic.blogspot.com/
** https://antinomiaimediata.wordpress.com/
** http://www.staresattheworld.com/
** http://wmbriggs.com/
** http://helian.net/blog/
** https://status451.com/
** http://www.synthesisips.net/
** http://hyp3r.space/
** http://thezman.com/wordpress/
** "sorcery" lol -- https://www.urbanomic.com/gematrix.html
** http://pespmc1.vub.ac.be/
** http://neoreactionarymap.blogspot.ca/
** Prepare yourself for the insanity -- https://omega9alpha.wordpress.com/
** A cla...yeah, also, not a rabbithole -- http://consc.net/papers/singularity.pdf
** http://28sherman.blogspot.hk/
** http://theanti-puritan.blogspot.hk/?m=1
** Yikes -- https://www.traditionalright.com/
People showed up late, as usual on Thursdays. Those who had computer testing went. Chris and I stayed to work on our project. We scrapped yesterday's work and started from the beginning with measurements. We quickly found out that we fucked up badly. The sides aren't plumb! The bottom distance is 184" and the top 185". I believe something went wrong in the mounting since the 3-4-5 came out very well on the jackstands. This is bad. We had to Pythagorean theorem to find our offsets, which were different on both sides! The flanges were close enough, within a 1/4" or less for each. At least the simulators are parallel to each other. We were kind of freaking out a bit. The teacher said not to worry about it multiple times. 

Eventually, I got copies of the isometric I drew up of just the simulators (since I don't want to have to measure again). We decided to slightly simplify our drawing to give us less to worry about. It's still complex enough for the teacher's requirements, I believe (although, it isn't what we sold him on). We went to him with our simulator's measurements isometric drawing, and he was completely unphased. He thought we were freaking out about nothing (he didn't really give us a chance to explain why we thought it was bad or what was really wrong though). So, that's that, I guess. We'll just push through. We did the math. We each found an error in the other's math today. I'm glad we double-check each other's work. 

We cut, beveled, and started fitting. Throughout the day, I kept going to see Dale, the welding teacher. I was meant to weld with him today. It wasn't until the day was over that I got to see him (I'll get to that later though). Anyways, we worked on this fabrication. It was tricky. First off, it's very heavy 3" pipe. The vice bends with it. We have to compensate in the same direction with our levels throughout the fabrication for that. The Hi-Lo's were decent enough. It's clear that Chris strongly prefers me to tack, but I have to assert myself in getting the chance to do fitting as well. After all, I want to practice what I will likely spend the bulk of my time doing. The pipe was very rusty, and we didn't clean it (normally not necessary). We had many tacks break today (both of ours). Eventually, I started putting very large tacks with higher heat to guarantee penetration. 

My teacher and I talked about Keith. Keith is a serious shittalker. I asked him about why we used Sockolets, since Keith claims he wouldn't. Sockolets just made it easier. We didn't have to cut pipe that way. Keith claims he could do the job in 6 hours. My teacher said Keith couldn't do it in 6 hours, especially without sockolets. My teacher said he could barely get it done in 6 hours himself. It took us much longer. Clearly, I have much to learn on these buttwelds. With time and practice, I hope to be able to fabricate as well as my teacher. 

My teacher talked about Nash falling behind. He was confused as to how Nash's scores didn't seem to have much consistency. I explained Nash's testing procedures, and that Nash takes snapshots of the test (which I think is bullshit). Without that, Nash doesn't do nearly as well. We also talked about the third book. We went to the office to see how much it costs them to pickup the 3rd and 4th book. They'll get back to us with the number. I hope to use the AB&T money on these books. Ultimately, I would like to pass the NCCER Journeyman test in addition to the Union tests. I want 'dem certs. 

At the end of the day, after cleaning up, I went to talk to Dale (as I said before). He was finally there and free enough. He had someone in his office, but he made sure to bring me in. I got to hear him talk to the other student. I assume this student was new because his work looked fucking terrible. His stringers looked terrible (although they were very shiny). He obviously was not consistent. But, to be fair, if I understand correctly, these were overhead. I'm sure this guy would run circles around me on my kind of work. I feel like I understood at least some of what he did wrong though. 

Another student came in after me, and I told him to speak with his student before me. He said we were both his students today, so I had priority (although, eventually he switched to hear the other student, since it was clear that I would be there for a while). I explained that I didn't know what I was doing, and I wanted to make sure I was practicing correctly. Apparently, he knows a lot about me (my background, etc.). He decided to give me a quick tutorial. 

The reason my roots have been failing: I'm using wet (you are supposed to dry them) powder flux 7018 rods. I should be using 6010 rods, which are designed to cool off faster, lowering the chance of burning through. Basically, I've been using the wrong rods the entire time. This makes sense to me, since my filler passes are generally quite acceptable. My root is what sucks. I'm hoping this will make a huge difference. We walked through what the numbers meant, how to read schematics, and other generalities. He said he'll find a used book for me to keep. I've read about welding, but now I'll probably have a much better understanding of it. 

I asked many questions (I can't help it; I'm psychologically dependent upon asking questions). He said it was fine to grind welds if I felt it was necessary. 

He told me to stop by tomorrow to do a weld with him. I will do that (assuming I can; I'll have to ask my teacher). I also told him that my teacher was canceling class, and I asked if I could join him during that time off. He said that while all the booths already have a student, he generally has at least one student per day who is absent. Thus, he believes he will have room for me. I thank him and told him I would be grateful for the opportunity. I really hope to make the most of this time. There is a 2-year waiting list to get into his class (and he produces the best welders in the state). It's a real opportunity to be able to walk in a learn from him.

It would be amazing to learn to TIG weld as well. In time, I would like to be able to pass the welder cert tests. A certified pipefitter + welder has options.
!! What do you like most about yourself?

Hrmmm, so many things to choose from: probably my unlimited humility. =)

Note, of course, there is difference between "what I like about myself" and "what I should like about myself." But, being the positive nihilist I am, I'm fine collapsing the distinction for now. Also, I think my choice answers both questions just fine.

Lastly, I'm not entirely sure what I am, who I am, or if I'm comprised of multiple minds. I definitely have competing intuitions. There are also significant metaphysical problems to persistent identity as well. That said, I think I'm allowed to do some handwaving here and "just answer the question," right? 

What I like most about myself: my use of my intelligence, particularly in the pursuit of wisdom and happiness. I am a philosopher, and I love that about myself. I'm not ashamed to say it.<<ref "1">> I like thinking. I love thinking. I need it. I pursue truth and happiness through reason (and hope they aren't mutually exclusive). I desperately seek to know and be moved by what is most relevant and valuable about reality. I really wouldn't be me without constantly engaging in that activity. Obviously, I'm far from perfect. Depending on how you consider causality and responsibility (and, of course, anyone seeking to take me down a peg or two would take up a particular view here), you could easily say I've never fulfilled my potential. 

I've built a life around thinking. It is part of the telos of humanity (which I take up as faith, despite obviously skeptical responses to my dubious claim here), if not the means to our true telos (eudaimonia). It's what I hope to improve. It's what I hope to use to make my life not only worth living, but also as good as it can be. 

Spending my time trying to be intelligent and wise (a particular kind of intelligence) is useful and I like to think even intrinsically valuable in itself. There is a profound aesthetic and existentialist beauty to being philosophical. I respect that part of myself. I prize it. It's the one thing about myself that I wish everyone had. While it may not be unconditionally good (that depends on a few definitions, Kant), it's one of the few pure things I pursue. It's something I can hold onto during the storms of life. It's a part of who I am, and I hope to continue to weave it deeper and more completely inside the fabric of my being.

----

<<footnotes "1" "One of my professors, Bruce Brower, had the (false) humility to claim he wasn't a philosopher. He reserved the term for the gods, Aristotle, etc. I prefer to think of these gods as simply being better philosophers. I'm sure plenty of people would find this post disturbing, perhaps even arrogantly delusional. But, this is my reflection, not theirs.">>
* [[2017.05.17 -- Prompted Introspection Log]]
** Edited.
** This prompt certainly stirred up my emotions. Ultimately, I hope to take up a stoic position on those things which I can't answer to my satisfaction. It's okay that I can't.
* [[2017.05.17 -- Link Log]]
** I have nothing to add to this in particular.
** I would like to say that I've been more likely to save links for a day before posting them. I think this is an interesting filter technique. 
* [[2017.05.17 -- Wiki Review Log]]
** I am reminded by my comment here to make sure we shop for fruits and veggies more often. I've been eating even worse this week than usual. 
* [[2017.05.17 -- h0p3's Log]]
** It isn't clear to me that this was worth a log post. Yeah, I'm feeling some emotions about it, but did it require analysis I didn't already have? In a way, shouldn't be the goal to grind through more cognitively dissonant content? 
* [[2017.05.17 -- Pipefitting Log]]
** I forgot to mention, but Chris said that he talked to the teacher again as well. The teacher said it won't be hard to get things ready. We'll probably start it after the break (the beginning of next month).
* [[2017.05.17 -- Diet Log]]
** Edited (because I ended up taking a sip of wine and just putting it away). 
** Summed it up.
|customTable|k
|Food|Calories|h
|Couscous Stir Fry|550|
|Pizza|930|
|Beer|100|
|Berries|35|
|Chocolate|125|
|Total|1740|f
* I've alway found Dark Matter to seem ad hoc. I'm not saying it isn't a possible explanation, but it certainly doesn't feel right. It feels forced, like an ugly constant. -- http://nautil.us/issue/48/chaos/the-physicist-who-denies-dark-matter
* My darker opinion is that algorithms will herd the retards among us to vote for the algorithms which make wealthy and powerful people even wealthier and more powerful; the winners here won't be The People -- https://www.wired.com/2017/05/hear-lets-elect-ai-president/?mbid=synd_digg
* Fuck 'em, write your personal essays anyways -- http://www.newyorker.com/culture/jia-tolentino/the-personal-essay-boom-is-over?mbid=synd_digg
* There is much to say here. One fun note I want to point out is how consciousness is thought to be about minimizing surprise, and yet I think that humor, entertainment, and learning are a kind of controlled and highly contextual way of pushing these kinds of boundaries and surprising ourselves (perhaps as a way of learning not to be surprised?). -- https://aeon.co/essays/consciousness-is-not-a-thing-but-a-process-of-inference
** nautil.us and aeon.co are clearly valuable in my eyes 
* Classism and Evolutionary Considerations about Stress -- https://www.youtube.com/watch?v=eYG0ZuTv5rs
** You will be healthier and live longer when you subordinate others. Those in charge literally live better and longer lives. Eudaimonia and Ethics are not always compatible.
* Our purchasing power is decreasing; I think there are serious caveats and exceptions to consider in both directions here -- http://davkett.com/en/much-purchasing-power-americans-lost-last-decade/
* Color me surprised, Uber doing evil? You mean their "innovation" isn't ultimately for the benefit of humanity? What? Say it ain't so. --  https://gizmodo.com/uber-doesn-t-want-you-to-see-this-document-about-its-va-1795151637
* Interesting book -- http://www.naomiklein.org/shock-doctrine
* As much flak as I see LSC get, sometimes they really do fucking get it -- https://www.reddit.com/r/LateStageCapitalism/comments/6c5e8p/worth_the_read/
Today was good. I studied my last chapter. It's huge. I'll have to take the exam on Monday. 

Before class even started, the teacher had me come into his office. He wanted to tell me that he was thinking on his way back home from school about what he said to me the day before. He wanted to point out (if not reiterate what he said the day before) that without the sockolets, even he couldn't have finished the simulator in 6 hours. Cutting the holes, even with a drill instead of a torch, would have taken far more time. His point was to show me that Keith was talking out of his ass. Also, the books will cost $260. I'm hoping I can find a way to have AB&T pay for them (that reminds me that I should cash my check and mail off my current form).

Around break time, I went over to Dale's office. He's frankly a better teacher. His students are higher quality too, imho. Pipefitters are definitely a rough bunch. That said, I spent a lot of time just sitting in his office talking and listening. Dale spends a lot of time with his students. He does a lot of the right things. I say a lot a lot.

Dale didn't want to do 1G. He said to learn 2G (moving horizontally with one plate stacked vertically on top of the other). So, that's what we did. We tacked the plates from the back. Also, don't worry about welding over the tacks on plate. They cut off the last inch off each side anyways. I tried welding through it, and I couldn't. 

I finally put down my first root under instruction. It was night and day different with a teacher. I had to stick the 6010 rod in there hard. Seriously, like I was pushing my finger into your arm (that's actually what Dale did to show me). The root came out pretty well (the students, my teacher, and Dale agreed). I probably should have pushed even harder. My root could literally pass inspection. It was miles better than anything I had done on my own. Dale's pointers and suggestions were very detailed. There are clearly tons of small things to learn. It's an art. Dale showed me with his own hand as well. After I finished the root and grinding, Dale had his star pupil this year (the state champion) teach me how to drop the hotpass over the root. 

We switched to 7018 rods from 6010. We had to drop the crispness down and turn up the heat a pinch (Dale said it probably could have been a hair hotter too). I had about a 10 degree angle pointing up into the upper part of the root. Many students, particularly the upperclassmen, came to visit my booth. They said it was very good, especially given how little practice I have. Several asked if I was going to be joining them. 

I got to look at another upperclassman's work. I asked him what he liked about his particular weld piece and what he didn't. I think I made him uncomfortable asking, but the champion thought it was a fine question to ask. I hope that I can grow to be more comfortable being honest with myself about my own mistakes and learning from them. How else can I master this with what little time and as few resources as I have?

Dale came by to look at my hotpass. He said it was very good a couple times, although he thinks I should have sped up. I moved too slowly (I think I can fix this easily enough). I also have to make sure that it doesn't droop down and create a tiny trench or pocket on the bottom for slag to hide in. In time, I may get this down. I really hope to soak up as much as I can from Dale. I asked tons and tons of questions today, particularly targeting Dale and his star pupil. I don't have the benefit of time and practice that these guys have. I can't expect too much of myself here. I need to do my best and be pleased with whatever I can achieve.

What if I spent extra time after school with Dale to learn to weld? 30 minutes every day would go a really long fucking way. I'll need to find out what his class' schedule is like; this may not even be possible. Maybe I can ask my teacher to let me go over there 30 minutes each day. My teacher made the jokingish comment that I was betraying him by trying to learn welding, although he has encouraged me in many ways to do this.

//This page is dedicated to the memory of Dr. Gail Bowman. I'd like to think he'd find it ironic.//

!! What’s your motto? How would you like to be remembered?

I do not understand how these question fit together cleanly. They do in some respects, but not in others (particularly in more common applications and answers). Maybe I'm supposed to answer this in stages and then derive their relationship. 

!!!(1)

I fear my motto is laughably generic:

<<<
Be wise.
<<<

It's almost useless in its logical, too perfectly universalized, undefined or circularly defined truth. It lacks content. When I go to flesh it out, I see worlds upon worlds of very complex structures, questions, and relationships. Beyond even understanding them, I'm not able to reduce, crystallize, compatibilize, and commensurate these fragmented whirlwinds, and hence there is a disconnect between my lame-appearing motto and what I mean or even hope to mean by it. The spherical chickens in a vacuum metaphor in physics only begins to touch the tip of the iceberg I'm looking at.

This, of course, is a metamodern problem. Stoicism, friend. What more can you do? This is the only practical option in pursuing idealism. 

!!!(2)

As to how I want to be remembered, I legitimately try not to worry about it in the standard sense. While I do want to be motivated by the approval of the most rational, wise, and virtuous hypothetical persons I can imagine, taking into consideration what they would think of me and my actions in my context (applying the Categorical Imperative in a particularized fashion), I am otherwise directly trying not to seek the approval of others. I do not want to enslave myself to them.

Should I enslave myself to the memories and retrospective opinions others have of me, or even of what I would like them to have of me? I can easily point out tons of people whose opinions are truly irrelevant if not outright vicious. I do not see a better alternative to the approach I've taken. 

I seek the approval of the wise (which ultimately, none of us are). The memories the wise would have of me are the only truly relevant measures of who I am, who I was, etc.  

Ultimately, this question appears to deal in our existential thinking and being towards death. 

Of course, I want my family and friends to remember me fondly. I want them to feel a sense of loss when I'm gone. I want them to be happy to have known me, to have had me in their lives. I want them to feel like I've made their lives better, and that they are missing out by my non-existence. I want them to wish I was still alive in some respects. I want them to remember me like a voice in their heads, thinking about how I would respond to them. I hope my invisible voice would be encouraging, loving, empathic, and ultimately useful in helping them maximize their happiness.<<ref "1">> I hope they see me as a person of integrity who honestly loved them.

Do I want people to remember me by my motto of being wise? Well, simplistically, yes. But, it is clearer to me, more than ever, that virtue is exceedingly rare. It's a bellcurve. Those towards the extreme of virtue will appear vicious to most people. To be wise in the eyes of the masses does not make one wise. I would prefer we were all wise and that wise people remembered me as being wise because I was wise. That, of course, will not come to pass for so many reasons (including the fact that I'm not wise). Being remembered as wise just isn't a reliable enough indicator of having been wise.

We might also consider the jaws of oblivion and my place in humanity or the universe at large. I would like to have achieved something useful to humanity in itself. I doubt I will. To make a stamp on the universe would be great. It reminds me of a history teacher I had who reduced much of history to seeking fame and fortune. Living forever through our children or the memories others have of us was a kind of eternal life that mixed fame and fortune together. This is an ancient concept, no doubt. It is so stupidly obvious in celebrity culture and the baser instincts we all seem to have as humans in the pursuit of wealth, power, and appearance. But, I also see more respectable elements of it in many historical, philosophical, and even scientific points of view (The Philosophy of Evolution in particular). 

I think stoicism classically attempts to tame and quiet these pursuits of fame and fortune. Marking the universe is almost irrelevant. Enjoy what you have while you have it. Worry about that which you have control over. 

Of course, we might envision some hypothetical creatures or deities watching over us and our every move, calculating the causal relationships and responsibilities among us, measuring and judging our essence and value. Perhaps, in a sense, these are my hypothetical gods of whom I seek approval. I have wondered many times how healthy this really is. It easily slips into religious perspectives which I'm actively avoiding. However, I think there are even secular perspectives which make use of this device. I need to think more about it.

Admittedly, I see more clearly why these two questions are connected. Hence, I hope to be a stoic metamodern nihilistic eudaimonic lifehacker. 

---

<<footnotes "1" "I hope I will not be a tormentor to them like the memory footprint I have of my parents in me.">>
// The phrases "like shooting fish in a barrel" and "takes one to know one" have never been so painfully apt. His prescient ability to perpetually 4D-Chess checkmate himself is hyperreal.//

!!Tweets from @realDonaldTrump 

<<<
Are you allowed to impeach a president for gross incompetence? 

6:23 AM - 4 Jun 2014
<<<

I suppose this one is obvious.

<<<
Fact--Obama does not read his intelligence briefings nor does he get briefed in person by the CIA or DOD. Too busy I guess!

4:15 PM - 30 Sep 2014
<<<

 Trump is famous for not scheduling intelligence briefings (for several overdetermined reasons, it appears) or reading intelligence reports. 

<<<
Crooked Hillary Clinton and her team "were extremely careless in their handling of very sensitive, highly classified information." Not fit!

7:12 AM - 6 Jul 2016
<<<

Surely Trump would not directly provide classified information to Russians or business interests. Trump's administration haven't been leaking sensitive and damning information from the beginning of his presidency either, right?

<<<
Just as I predicted, @BarackObama has not allowed an independent investigation into the national security leaks from his cabinet.

4:24 PM - 27 Jul 2012
<<<

The stupid, it burns. I'm sure Trump hasn't pushed back against investigations into his connections with Russia, nevermind independent investigations. Of course, the RNC in general are completely hypocritical in this respect as well. Oh, fuck me, the DNC is too regarding their strongarming of Sanders (what a shit show).

<<<
Obama has no problem leaking national security secrets. Why can't he release his records? Especially when $5M is going to charity.

5:44 PM - 24 Oct 2012
<<<

There is so much wrong with this, I don't even know where to begin. 

* Trump leaks national security secrets on the reg.
* Trump has never released his own tax records, except for one carefully crafted to import his wife.
* Trump has never donated his own money; he only redistributes money donated from others through his "charity."
* While Obama deserves some serious hate, Trump's criticisms are not justified. He's playing a PR game, and that's all.

He's shameless.

<<<
If I win-I am going to instruct my AG to get a special prosecutor to look into your situation bc there's never been anything like your lies.

9:27 PM - 9 Oct 2016
<<<

Jesus H. Buttfucking Christ. It's like he's talking about himself and what he deserves. It's uncanny.

<<<
The FBI is totally unable to stop the national security "leakers" that have permeated our government for a long time. They can't even......

7:31 AM - 24 Feb 2017
<<<

Let's hope he's wrong. He's right in that they haven't been able to stop him, at least not yet. It's scary to see that he means leaks in his own administration here. 

<<<
“We build too many walls and not enough bridges.” - Isaac Newton

4:11 PM - 7 Oct 2013
<<<

But, don't we want to keep all the Mexicans out of our country? Maybe he could get them to pay for both a Wall and a Bridge, lol.

<<<
Lyin' Hillary Clinton told the FBI that she did not know the "C" markings on documents stood for CLASSIFIED. How can this be happening?

7:49 PM - 4 Sep 2016
<<<

Fish in a barrel.

<<<
The real scandal here is that classified information is illegally given out by "intelligence" like candy. Very un-American!

8:13 AM - 15 Feb 2017
<<<

He was literally president at the time of writing that quote.

<<<
While our wonderful president was out playing golf all day, the TSA is falling apart, just like our government! Airports a total disaster!

6:56 AM - 21 May 2016
<<<

Says the President who has taken more vacation time in 100 days than Obama did in 8 years. He spends that vacation time golfing, using taxpayers' money to subsidize extravagant trips to his own resorts where he sells us out to wealthy people playing golf with him.

<<<
Now that Obama’s poll numbers are in tailspin – watch for him to launch a strike in Libya or Iran. He is desperate.

5:39 PM - 9 Oct 2012
<<<

Says a president with arguably the lowest approval numbers who went on to attempt to distract the American public with an unprovoked bombing of Syria. This fucker has a finger on the button; you better not hurt his feelings, or else!

<<<
Call it any way you like, but Snowden is a traitor. When our country was great do you know what we did to traitors?

3:41 PM - 27 Jun 2013
<<<

He has several tweets about Snowden being a traitor for giving classified information to Russia. *facepalm* Trump literally gave classified information to Russia (Snowden likely didn't give it to Russia directly, but instead gave it at least respectable parties attempting to serve the global good). 

<<<
The electoral college is a disaster for a democracy.

11:45 PM - 6 Nov 2012
<<<

Says the man who lost the popular vote.

<<<
China, Russia and Iran are laughing at us. We have weak leaders who are threatening our national security. Dangerous times.

3:19 PM - 12 Sep 2013
<<<

Laughing and crying. Prophesy makes me wail, weep, and gnash my teeth.

<<<
Russian leaders are publicly celebrating Obama's reelection. They can't wait to see how flexible Obama will be now.

2:11 PM - 8 Nov 2012
<<<

I'm sure Russia has zero influence over Trump. They must have been devastated when their insanity candidate of choice won the POTUS election.

<<<
What will we get for bombing Syria besides more debt and a possible long term conflict? Obama needs Congressional approval.

2:14 PM - 29 Aug 2013
<<<

Hrmm. That's a really good question, Trump. That going to war part thing needing congressional approval seems pretty reasonable too. /wrists

* [[2017.05.18 -- Prompted Introspection Log]]
** Edited.
** I think I should ask k0sh3k what questions she thinks I should answer.
* [[2017.05.18 -- Link Log]]
** Edited.
* [[Cockatrice Ubuntu 16.04 Setup Script]]
** Worked like a charm. I remember having to build it without this script. This was stupidly easy.
** I'll send the link to my chill'uns.
* [[2017.05.18 -- Wiki Review Log]]
** Edited.
* [[2017.05.18 -- Pipefitting Log]]
** I forgot something from yesterday's log that was pertinent to today's log. Review provides continuity.
** Edited.
* [[2017.05.18 -- Diet Log]]
** Calories looked good.
|customTable|k
|Food|Calories|h
|Chips|500|
|Pickle|10|
|Cherries|308|
|Grilled Cheese|350|
|Grilled Cheese|350|
|Asparagus|60|
|Tomato Soup|148|
|Chips and Salsa|600|
|Wine|250|
|Total|2576|f
!!General Notes:

* My wife was gone, and my children didn't do their work.

---
!!j3d1h:

* Review past week: 
** Research Skills: Cosmetology
*** Missed 3 days. 
** Math: Singapore Math
*** Completed 10 pages as required, with dates and pg numbers. Good job.
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Completed one program, but didn't work for 2 days.
** Vocational Practice: Applied Computer Science
*** Barely tried on implementing the backup program.
** Reading: Little House in the Big Woods
*** Read half the book. Should have been close to finished.
** Writing: 250 word count in her wiki
*** Did it for 3 days.
** Social Studies: Khan Academy - World History
*** 2 days where she didn't do her work
*** Christianity, Judaism, Confucius, Chinese Dynasties, Daoism
** Spanish
*** Less than half a week of work.

* Plan next week:
** Research Skills: Cosmetology
*** Build outfits out of your clothes. Take pictures.
*** Actually research how to build outfits. What does that entail?
** Math: Singapore Math
*** Complete 10 pages. Keep it up.
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Complete 3 programs.
** Vocational Practice: Applied Computer Science
***    Setup backup scripts for the family, except dad.
***    Measure for ethernet cord
***    Make the USB backup script. Look for one first.
** Reading: Little House in the Big Woods
*** Finish the book, and then move onto your Literature book.
** Writing: 250 word count in her wiki
*** Guarantee that you do your work. It will be structured and titled correctly.
** Social Studies: Khan Academy - World History
*** Keep it up, and don't miss any day.
** Spanish
*** Actually do your work.


---
!!1uxb0x

* Review past week:
** Research Skills: Curation
*** Missed 2 days.
** Math: Life of Fred - Dogs
*** Missed 2 days of math.
*** Failed to organize his problems in his workbook.
** Vocational Theory: Eyewitness Books: Electricity
*** Didn't do it for 3 days.
** Vocational Practice: Redstone
*** Attempted the adder, but didn't do anything else.
** Reading: Fairy Tales from the Brothers Grimm 
*** Read 4 stories and understood them. It is weird how he can recall fiction but not non-fiction.
** Writing: 150 word count in his wiki
*** Didn't write anything.
** Social Studies: Khan Academy - World History
*** Worked for 3 days on Ancient History
** Language Arts: JacKris Books
*** Did 3 days of work, 6 pages.


* Plan next week:
** Research Skills: Depression Workbook
*** Finish 5 chapters of the "Negative Muck" book. 
** Math: Life of Fred - Dogs
*** 5 Chapters in Life of Fred.
** Vocational Theory & Practice: Reading Comprehension
*** Go through your mother's site to find it. Bookmark it.
*** Read, don't listen. Complete the work.
** Reading: Fairy Tales from the Brothers Grimm 
*** Continue reading through it.
** Writing: 150 word count in his wiki
*** Do it.
** Social Studies: Khan Academy - World History
*** Do it.
** Language Arts: JacKris Books
*** 10 pages of work.
* Neat text formatting tool and also learned how to use it -- https://gist.github.com/noromanba/3062530dc3970d93762a5775080715f8
* Those who own their devices will be punished. Conform, Pirate, or Perish -- https://www.techdirt.com/articles/20170516/06083537378/new-netflix-drm-blocks-rooted-phone-owners-downloading-netflix-app.shtml
* Confirm my bias: Death to The Economist -- https://www.currentaffairs.org/2017/05/how-the-economist-thinks
I'm posting on the weekend here, but I was browsing around tools and hardware for pipefitting. I really want to make alignment dogs. I'm not sure how best to do it. There seem to be a lot of options.

My perfect dogs would be:

* Thick
* Machined
* Have the threads inside 
* Very thick bolt, and can be turned by hand (like a C-clamp).

I've drawn them up. I'll talk to the machine shop and my teacher about it. If the CNC guys would build it, that would be insane. If they can't, that's totally fine.

I think 8 of them would go a very long way. 
!! What is your favorite song and why?

Always with the simple questions for which I never seem capable of offering a simple answer.

What makes a song my favorite? I hate to say it, but I'm not a monolithic identity in some respects. What makes a song my favorite is particularized to a context. Some days, it is Johnny Cash's rendition of Reznor's "Hurt." Other days, Rachmaninoff's Barcarolle dazzles and humbles me. In my grind mode, Caribou's Sun (Altrice's 'Only What You Gave Me' Remix) mesmerizes me. When I'm meditating, Paul Ellis' "Firefly Rising Outshined by the Moon" transports me. Bach's Prelude from Suite No.1 in G major for Cello moves me to tears every single time. I feel uncomfortable naming one song. 

Music is most powerful in the moment. What makes me soar, wail, pumped, energized,  cathartic, or emotional? That's the stuff that music is made of and for. Music must activate me. I listen to music all day. Only sometimes, when I'm really lucky, do I recapture its true true magic. To my dismay, it is rarer as I age. I love it, but one builds up a resistance or tolerance to the soul piercingness of music.

Of course, I'm addicted to it. My favorite, I suppose, is that which grants me maximum pleasure or utility in the context.

I have a weird history with music.

Admittedly, I have a problem, a deficiency in my brain: I can't remember song lyrics. Most people who have heard a song 5 or 500 times can recall the lyrics, easily and almost mindlessly singing along with the song. But, I usually can't. This strong innate ability which even children and alzheimer's patients have, I don't have. There is a flaw in my brain that has twisted how I see, understand, and interact with the world, and it is tied to my inability to remember song lyrics in an efficient or effective manner. 

For example, I'm a PK, I've sung Amazing Grace a thousand times. I've played it for serious performances. I've played it on a dozen instruments. I've studied the words and the history of the song. But, I'd be lucky to even sing, recall, or write down for you the first verse. The melody resonates deeply with me, but it does not activate human words in me. It activates something else. What? I do not know.

For me, music is about the notes. Vocals are just sounds, texture, and notes which form something to listen to in itself.<<ref "1">> I wish I could put my finger on it for you. I do not know.

Music is a drug. Sometimes it is the only thing which can soothe me or motivate me. What drug do I need in the moment? That is my favorite. I'm capricious and lustfilled when it comes to music. Give it to me! I crave it!!


---

<<footnotes "1" "Although, it is my experience that the words of musicians, producers, and songwriters are rarely valuable or worth interpreting.">>

It's been on a deathspiral for a long time. The ecosystem is vast. Larger than anything in history so far. It's legacy is truly something to behold, and it's ability to run legacy software alongside its profound influence over personal computing has kept it at the head of the pack for a long time. 

Mobile computing was the knock-down. The inescapable security flaws in its unupdatable or unupdated software will eventually be its knockout. At this point, you can only VM sandbox it.

Here's the kicker: powershell and POSIX compliant virtualization makes life easy for hackers. They break into the machine, and now they are just fucking handed everything on a platter. Windows was built on the wizardry of protecting the user from themselves, and that atleast added some speedbumps to the effectiveness of malware. This is adding fuel to the fire. It is ironic that the push towards usability for Power Users ultimately serves to highlight its weaknesses.

It is unclear what paths are available. Some of their research work has been outstanding. Their willingness to bring decent hardware to the market when Apple won't may allow them to survive in a different kind of Walled Garden niche as well. Windows in its standard incarnations, however, will die.

I want to say, Fare thee well. But, it's dying a slow death. And with it, many lives will be ruined. Computers are tools deeply integrated into the fabric of our lives. Our identities, finances, communications, access, and mobility are all tied to our boxes. Those relying upon Windows will continue to feel the beatdown. M$ never did give a shit about you and me though. Consider it a form of planned obsolescence. 
* [[2017.05.19 -- Trump's Hypocritically Prophetic Tweets & Quotes]]
** This post makes me laugh and then cry.
* [[2017.05.19 -- Prompted Introspection Log]]
** Good post.
** Edited.
* [[2017.05.19 -- Diet Log]]
** Summed.
* [[2017.05.19 -- Wiki Review Log]]
** I asked k0sh3k. She felt it would be better to choose my own and gave a good argument. She said she would be willing to choose once a week for me though as a matter of curiosity.
* [[2017.05.19 -- Pipefitting Log]]
** I think I should study it tomorrow. It would be useful to be prepared for it in advance, especially to make up for the fact that I was over in the welding shop instead of studying with the others.
** I've still not cashed the AB&T check or mailed out my form. Also, it wouldn't hurt to get photocopies.
** I should definitely think more about how to integrate welding into my work. I've done a poor job of it. I see now how important it is to have instruction from the welding teacher. I should not do this on my own. One weld a day, I might be able to do that. There's a way of avoiding the 2-year waiting period to enter his class by doing it like this too.
** Edited.
* [[2017.05.19 -- Link Log]]
** Edited.
* When you are sad, I want you to write about it. 
* We will restructure asap.
I was sitting on the porch with my cat, Ranga. He is always cooped up in the house. We aren't allowed to let him wander. Our cat door has been sealed, as required by our landlords. I was sitting on the porch after my DCK trip, just thinking outside. I went to go inside, and the cat darted out so fast I couldn't stop him. So, I sat with him. 

My family came home from church as I was sitting there with Ranga. My son talked about his Sunday school lesson. He talked about what he learned about and discussed in Sunday school. it instantly took me back to a story of my childhood, which I told him. 

I told him that Carol May (Mae?) Cox, one of my Sunday school teachers had asked me which human reminded me most of God. I said it was my father. This stunned her and later my father. As a father, it stuns me. 

I held my boy and shed tears. 
As I've noted elsewhere, I didn't take DCK because I was traveling. It literally takes my entire morning. I would be willing to use at my brother's house, but I didn't think it would be the wise thing to do. We had to travel back, and I wanted to be in good shape for driving in case my wife needed me to do so. 

Below you will find my DCK Meditations:

----

I'd like each person in the family to come up with a day-long activity for us to do together (or perhaps a list of activities). Eventually, I'd like for us to do something on each person's list.

What would mine be?

* Canoing 
* Theme Park (maybe should wait until everyone is tall enough)
* Visiting Washington D.C. for a weekend.

We need to develop plans and dreams together. What do we want to achieve and experience? I could do it all, and that's fine. I think your buy-in matters. I want you to steer the ship too.

---

I hope that I will look at non-school environments as learning opportunities and places for growth. This, of course, has to be balanced against financial planning and our well-being. I'm still holding my breath about the union job. I'd like to work before then, but the pieces aren't falling into place. Maybe I need make them fall into place.

---

I hope not to wrestle today. Struggling sucks. At least it doesn't feel like being powerless entirely though. I'm struggling with myself and the universe, but it doesn't feel insidious or torturous. The inability to escape pain produces learned helplessness.

What is the opposite of wrestling? That's what I want to do. It is hard to see what doesn't include wrestling and struggling. Maybe that's just the nature of honest effort.

---

I hope that I can describe and highlight the Platonic Allegory to my children. Reality really is fuzzy and difficult to understand. Striving is all we can do. 

---

Closed eye visual started out more strongly today. I haven't used in 2 weeks. Let it flow.

---

I see us as bumping against things which give us pleasure and pain. Many algorithms emerge and die off. I want to make sure that my children don't feel cast out into the world without any experience or guidance. They have to get their hands dirty. They have to take some risks, fail sometimes, and stand back up. This is about developing not only the right character, but also having the right kind of grid or matrix of the world in their mind. They have to anticipate what's coming at them. They have to ride the waves and currents. They have to know when to fight and when to flee. They have to know where to strike with their daggers in the world and when, and why, etc.


---

I must admit there is a weird tension I cannot resolve. I want to give my children the independence to become who they want to be. I don't know when the fledgling bird is ready to fly though. I don't even know what counts as good flying or safe enough flying. I do want to shape them into someone who is good and happy though, by my standards or better.

---

I feel like the hard and soft divide in my bed is a terrifying symbol. Maybe this is hocus-pocus. Maybe it is Freudian. Maybe it is nothing. I miss the days when I could turn over and hold my wife on equal ground. I want us to be at the same elevation. In time, we will find a mattress which solves the problem. Maybe it doesn't fix the symbolic problem, but money can find a mattress which is flat and perfect for both of us. We spend many years of our lives on th mattress. I do buy that argument. 

Financial pressures have certainly been on my wife. Now it is my turn. I hope to do her justice. I hope to show her that we have not wasted our time, and that this story has a happy ending. I feel like I keep gearing up and readying myself to take the big swing, but I feel like I've not taken the swing into financial security. This, of course, is not all my fault. The economic climate is not simple (understatement). But, I want to make sure I'm not holding myself back.

---

I wish to inspect gift-giving, yet again. The sinews of the tension between altruism and egoism string out. 


---

Why does it feel like DCK isn't fully hitting me today? I've felt like that a couple times actually. It doesn't destroy me.

I am not convinced DCK is helping me today. Does it right my world? Does it work? Do I pass through fires and emerge as a better person on the other side? Ah. Maybe.

My hope is that there will be a time when my lose doses of DCK are irrelevant and unnecessary. I want to be unified, happy, and functioning enough to not rely upon anything. I want unconditional happiness.

I'm not even feeling the effects very much today. Or am I? I feel incredibly stable despite the drowsiness that usually accompanies it. I can type. I feel very much like myself. I am me. The dissociative aspect does not seem to be working in full force. If it is working I think it is in tiny ways, opening a door here and there, allowing me to channel a thought I did not anticipate. Obviously, I couldn't write like this permanently. It does have some effect. I feel clear in some respects.

Not all DCK trips are going to be the same. Remember that. This is incredibly messy. Temper and buffer your expectations. 

---

Sometimes I imagine raising children like growing flowers (this is a fairly common theme in literature, I'm sure). My wife thinks she is bad at growing flowers. I do not have the virtuous perception and attention to detail that she does (which isn't to say she is virtuous here, but to say that she is clearly more skilled at it than I am). That doesn't mean I shouldn't try to grow flowers, of course. It's about being economical and divvying up with work according to our comparative advantages. 

---

Ah, I feel the pain now. The pressures of this drug on my brain, I fear, mimic the pressures in my mind. 
 
Sometimes I feel like I'm forced to write out the schematic of the organic journey I am taking. 

---

It kills me that I am not compatible with my parents. I am not good with theories of minds. Right now, I feel like they feel like they are dying (although, not anymore, possibly) and estranged by some demons or evils of persons interfering in their happiness, health, relationships, etc. (rest assured, they have an exceedingly complex and coherent point of view; they are extremely intelligent creatures). I may have overreacted to my mother's illness. I may not have either. It isn't clear what will unfold. The evidence was there though, I was convinced she was dying. The transformation to frailty was eye-opening. I am more than happy to be wrong. 

There is this weird problem where your adversary appears omniscient but admits they aren't. There is something logical and deeply illogical here. Fog.

The loss of innocence is tremendous. I must not accept my father's cliché hatred of the cliché. I think, at the moment, I don't know what I think. Brainfart. Honesty. These are the psychological cracks. 

Ah, you too see the incoherence of my writing. What are the missing puzzle pieces? I feel pain in my stomach.

---

Am I building a new consciousness through DCK? I take myself to be doing something in that ballpark. How, how, and how? In the various kinds, orders, and degrees I do not know. 

---

Mobile computing wins because people don't know how or won't learn how, and won't exert fitting market forces to decentralize and control their own data, networks, and other infrastructure.
 
---

I guess I approach DCK like a rodeo. There is danger, power over myself, and perception to be harnessed and controlled. I feel like I have to bring order to the chaos of the phenomenological experience (which maybe sounds incoherent, but I don't even know what to call it). 






|customTable|k
|Food|Calories|h
|Turkey Burger|400|
|Half a Turkey Burger|200|
|Brussel Sprouts|38|
|Salad|150|
|Cherries|77|
|Chips|700|
|Total|1565|f
!! How has your health been this week?
* 1uxb0x
** Great, except biting on the insides of his cheeks some. Use the chew toy instead.
* j3d1h
** Good. Sore throat. Should eat a little more. 
* k0sh3k
** Have a headache today. Most of the week has been really good though.
* h0p3
** I've felt some anxiety and thoughtlooping, but overall it was a productive week. I felt autonomous.

---
!! What happened last week? Have you been happy this past week? Why or why not?
* 1uxb0x
** Yesterday was awesome. The rest of the week had many blessings. We started recording them this week. See his wiki.
* j3d1h
** Mostly not because of homework. 
** Really happy because she did a lot of drawing this week. 
* k0sh3k
** Conference was cool. 
** Finished a good book.
* h0p3
** Worked hard last week. I'm proud of that.
** I spent a lot time doing chores with my kids, as I set out to do a while back.
** I played magic with my kids. It rocked.

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** I love that you spend time finding the limits of your body, testing it, and practicing with it.
** Did a great job deep cleaning and organizing your room and without a meltdown.
** Intentionally went out of his way to be kind to his family. He was considerate.
* j3d1h
** Took difficult constructive criticism very well about her wiki structure (and restructuring). 
** Encouraged herself and her brother to actually do their work, particularly on Friday.
** I like that you don't hide who you are, that you embrace your dorkiness. 
* k0sh3k
** I'm grateful that you are kind in how you parent us each day, particularly when we've not been well behaved.
** Your story is interesting, and I hope you write more of it. 
** Thank you for taking the time to connect with your family both in mornings and evenings every single day you were at conference. You had no spoons left, and you went above and beyond. That is love.
* h0p3
** You were willing to help us through a lot of stuff we hate.
** I am grateful to you for helping me this week with my chores and room especially.
** You maintained an even keel even without DCK, despite having a rough weekend.

---
!! What will you do this week?

* 1uxb0x
** Work harder
* j3d1h
** Work harder on school. 
** Will try to finish 2-3 pieces of art this week.
* k0sh3k
** God, I don't even know. 
** ILLs.
* h0p3
** Fix the dryer.
* Thank you for sanitizing your wiki
* Use consistent tags
* Make your python comments aesthetically pleasing
* Consider using title links so that others can link directly to it while visiting.
* Keep up with your logs
* Refrain from !!! formatting. Find a way to do format my globally or at least specific to the tiddler.
* Consider splitting up your argumentative blog posts, daily pictures, and daily links. These are three separate functions. Separate them. You can combine them automagically if you want. You can add pieces together, but peeling them apart is much harder (if not impossible).
* Write for 1 hour each day.
* https://www.youtube.com/watch?v=4eeGX4SlF1s
** I have run across rumors of pedophilia in Hollywood many times. I am not surprised.
* https://motherboard.vice.com/en_us/article/digital-surveillance-is-class-warfare 
** I agree with much of the article. I continue to inspect humanity's dependence upon mobile computing and the way it influences our lives.
* http://ranger.nongnu.org/
** Yet another tool I wish I had the will power to learn to use and integrate into my life.
* https://archive.fo/kU1Ly
** The monetization of Reddit continues from the inside and out.
* http://worrydream.com/LadderOfAbstraction/
** An interesting read, and visuals are also pretty.
* https://www.independent.co.uk/life-style/gadgets-and-tech/news/theresa-may-internet-conservatives-government-a7744176.html?amp
** Conservatives: kill yourselves. The authoritarian restrictions upon fundamental democratizing, access, and mobility information tools is beyond disturbing.
* https://blog.acolyer.org/2017/05/19/who-controls-the-internet-analyzing-global-threats-using-property-traversal-graphs/
** I'm not surprised to see the US at the top of these lists (I say that without a drop of nationalism).
* https://theweek.com/speedreads/700428/trump-signs-largest-arms-deal-american-history-saudi-arabia
** It's sad when you expect the contradictions.
* https://daringfireball.net/linked/2017/05/20/gilbertson-amp
** AMP does look like an attempt to build a walled garden inside the web itself. Disgusting.
* https://www.reddit.com/r/LifeProTips/comments/6c9wi8/lpt_if_you_are_having_a_stressful_day_or_period/?utm_content=title&utm_medium=front&utm_source=reddit&utm_name=LifeProTips
** Motivated me today to clean the house top to bottom. 
** I would like to note that I've seen several tidbits towards a theory of this. I've seen anecdotal evidence a'plenty as well.
* https://motherboard.vice.com/en_us/article/uber-is-using-ai-to-charge-people-as-much-as-possible-for-a-ride
** Oh, I can see that you have an emergency from my surveillance of your life, so now I can price gouge you.
* https://www.bloomberg.com/news/articles/2017-05-19/americans-are-paying-38-to-collect-1-of-student-debt
** It never made sense to socialists. I've found it's increasingly not making sense to capitalists either. I assume they will have more reactionary approaches to the issue though.
* http://www.npr.org/sections/thetwo-way/2017/05/21/529417148/saudis-and-the-uae-will-donate-100-million-to-a-fund-inspired-by-ivanka-trump
** This is no accident. This is a bribe. Capitalism is working just //fine//. Let me guess, you don't even see the connection to capitalism here (go ahead and play dumb). Oh, this isn't real capitalism? I suppose you think we live in a constitutional democratic republic too. You think you can honestly divide economics from politics? Are you fucking retarded? Open your eyes. The US has killed hundreds of millions of people off (and enslaved even more) for the sake of capitalism. 
* http://digitalcommons.ilr.cornell.edu/cgi/viewcontent.cgi?article=1457&context=articles
** But, I want to have my cake and eat it too. Certainty is a powerful drug.
//I decided I would ask this classic-like one for myself on DCK today.//

!! If you could go back 20 years and magically alter, advise, or force yourself to understand, believe, and act upon 3 things, what would they be?

Clearly, the question runs into plenty of wonderful time paradoxes, epistemology, and philosophy of mind problems. Let's pretend they weren't problems, just for the sake of argument.

# Empathize with and program yourself. 
# Humbly work hard on what you care about.
# Pursue meaning in the pursuit of happiness. 

I suppose 11-year-old me would have done a lot of things differently if he could have been fittingly trained to understand and implement those fundamentals.

Let us not fret over spilled milk. Be stoic. You have a life ahead of you filled with opportunities. Go for it!

Maybe it's the afterglow effect, but I don't have much to say. I wonder if my [[Prompted Introspection Log]] felt so useful to me directly because I hadn't been able to use DCK. I don't feel the impact of this log while on or after DCK, even though I found it interesting.

It isn't that introspection isn't useful to me. It clearly very much is. Maybe it's the kind of introspection that matters. Particularism and contextualism to the rescue, yet again. I must introspect about the the right things, in the right way, at the right time, for the right reasons, etc. Thank you viciously circular Virtuous Man. I need content and decisions procedures backed by profound justifications!

* [[2017.05.20 -- Prompted Introspection Log]]
** Edited.
* [[2017.05.20 -- Wiki Review Log]]
** Cashed the check. I still haven't gotten photocopies or mailed my current form.
** I'd like to point out that this backwards glance of [[Wiki Review Log]] sometimes acts as a useful "to do" list and self-accountabilibuddy system.
* [[2017.05.20 -- Homeschooling Log]]
** I don't know if if I have much to add, but this is not what I'm looking for.
** We failed this week, but we'll stand back up and try again (perhaps not the exact same thing).
** I fear that my son's vocational studies aren't working. I'm going to try just constructing things in general right now.
* [[2017.05.20 -- Diet Log]]
** Uh....lol. Well, it //was// delicious. Worth it? Okay. Maybe not.
** Summed and edited.
* [[2017.05.20 -- Pipefitting Log]]
** I think this is a really good idea. I should just hop over to the machine shop first and see what they think. If they are up for something, then I'll plan it with my instructor. 
* [[2017.05.20 -- Link Log]]
** Edited.
** That was short. I see a backlog of many tabs open though. I need to clear them out, eh?
* [[DIY Tools]]
** It isn't clear to me that this section is useful.
* [[2017.05.20 -- The Coming Demise of Windows]]
** Edited.
|customTable|k
|Food|Calories|h
|Biscuits and Gravy|800|
|Tacos|800|
|Cherries|122|
|Strawberries|16|
|English Muffin with PB|280|
|Rumcake Slice|250|
|Total|2268|f
Today wasn't too eventful, although I got plenty done. I have finally finished my second pipefitter book. Technically, I have completed all coursework. It took about 4 and half months, but I did it. I'm staying to really become adept at buttwelds, learn the rest of the tools, finish the optional two books, learn to weld, maximize my networking and recommendations, and grab my certifications. These are good reasons to stay and continue for now.

I was sick of studying for this last test. I decided to just ask for it and see what I got. Turns out, I did great. Chris did not. I was perplexed before, but I now I believe I understand the reason for this pattern. I think we are finally hitting a point in the books which extend beyond his knowledge (he has already studied this stuff for 2 years).

I talked to Mel at lunch. He continues to amaze me. He is purposely trying to bide his time sitting in the classroom. He wants to take 5 more days to finish 2 tests. His goal is to avoid the shop for the rest of the time he is here, which will just be those 5 days because he has found a way to weasel out of the full semester (this isn't like he is working ahead). He literally has never actually done buttwelds. The skill I've heard is most universal, he doesn't want to practice it at all. He wants to be a utility man for the government. I can definitely see him as the stereotypical government employee. Rubbish.

Chris and I went straight into our fabrication. We finished it. One leg was off in my measurements by close to half an inch. We didn't do the 1/8" takeouts, and the flange wasn't deep enough. That's the reason. Both can be solved with more planning. We should do so. We ended up doing a the 3-4-5 trick, but had to use a calculator for 2'-3'-43.26". We got everything set to mount, but our teacher said there would no be no overtime allowed. Essentially, he said we didn't have time to complete it today. So, we started cleaning and waited until he told us to go home.

!! What historical figure do you most identify with?

Am I not a historical figure? I suppose I'm not because I'm not famous. Of course, fame is an arbitrary set of lines we draw. I don't mean to say I deserve to be a legend (not even in my own mind). I mean to say that I existed in the past, there's even writing about me (and we can continue down the path of defining "historical"), and I am a figure (however unnoteworthy). Obviously, I'm not anything like what is commonly thought to be a historical figure. Inspecting the limits, of course, is ultimately useful. Words are simply made up, and we should test their boundaries and the reasons for why they have the shape and semantics they do.

I can tell you that I aspire to have the characteristics I imagine many historical figures have. I'm not sure how much I really am like them.

The very concept of "identifying with" is murky to me.<<ref "1">> There is clearly a kind of fad mixed with an important sequence of philosophical considerations in the phrase. We can do some handwaiving and say "you know what I mean" or "stop being a lawyer" or "stop playing semantics,"<<ref "2">> but I have legitimate concerns about how we wield these politically signfiicant words. This neologism has a lot of connotation embedded in it. 

In a very general sense, I guess it means I am like them, or feel as they do, or see as they do, or can empathize with them in strong or natural sense. Honestly, I feel like an alien. I'm an outcast, somewhat a hermit, and someone who people ultimately do not want to get to know most of the time. I consider that to be a defining feature of who I am, and it makes it difficult for me to find people who I ultimately "identify with." I don't really belong anywhere, and historical figures tend to belong somewhere. 

What then is left? What I value? What I think? What I practice? I mean, I'd straight up love to be anything like the philosopher gods I idolize. Beyond an issue of moral luck, I don't have what it takes, I think. My brilliance is fading; it has been wasted tracking down the wrong life. Who has a wasted life in the desert, trying to rebuild from shattered pieces of who he was? I'm sure there are many. I can't think of any remarkable "historical figures" off the top of my head like that (although, I'm sure I could easily be convinced, and maybe my memory is just failing me here). I think we tend not to remember or care about those kinds of people. We don't want to empathize with those losers, lol. 

I have to say: this question turned out to be sad to me. 


---

<<footnotes "1" "My wife talked about the fact that you can also not identify with yourself, which makes sense (even if it initially seems paradoxical).">>

<<footnotes "2" "As my ever charitable fucktarded father would say, except when he wishes to employ it.">>
* [[2017.05.21 -- Family Log]]
** The dryer is fixed. Who 'da man? Woot!
* [[2017.05.21 -- k0sh3k's Wiki Log]]
** She wrote for an hour today. Yay!
* [[2017.05.21 -- 1uxb0x's Wiki Log]]
** Restructured his wiki for him today.
* [[2017.05.21 -- j3d1h's Wiki Log]]
** Restructured her's yesterday. We'll keep it up.
* [[2017.05.21 -- Wiki Review Log]]
** Still haven't gotten photocopies or mailed my current form.
* [[2017.05.21 -- Prompted Introspection Log]]
** I think making up my own is a bad idea. 
** It is also possible that DCK (or lack thereof) significantly alters the experience. We will find out.
* [[2017.05.21 -- Diet Log]]
** That can't be accurate. I feel like I ate more than that. I worry that google and my measurements aren't accurate enough.
* [[2017.05.21 -- Link Log]]
** I like the new formatting. My wife was right.
* [[2017.05.21 -- DCK Meditation]]
** My wife didn't respond to it. I'm not sure she really wants to.
|customTable|k
|Food|Calories|h
|Chocolate|600|
|Pizza|640|
|Turkey Burger Sandwich|350|
|Pear|100|
|Apple|100|
|Mandarins|105|
|Gatorade|140|
|Sausage+Buns|600|
|Watermelon|190|
|Spinach+Potato Snack|140|
|Chips|150|
|Total|3115|f
!! How is your health? Daily routine? 

It's fine. I'm still trying to recover from my lack of sleep from the other night. I ate a lot today. I've still been experiencing thoughtloops. I need to do something about it. 


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

When my brother [[JRE]] was getting married, I remember talking to my dad about the fact that I wished I could be my brother's best man. I was sad that I wasn't considered.  You know my dad's response was?

<<<
You got what you deserve.
<<<

It was dripping with his standard judgmental venom. This wasn't prefaced or said kindly. It wasn't meant as constructive criticism. It was meant to be a stab. It reminds me of my Christmas as a 12-year-old where he said to me "You are the most selfish person I have ever met."<<ref "1">> Regardless of whether or not he is right, that is not how he should say it to his child. I'm tired of his shit. 

You know what I think? Fuck you, you dark-triadic asshole. You don't even deserve to breathe oxygen. Even your Holy Bible will tell you that. You think you care about children? Look at the suffering of your own children. You are the cause of their suffering. You clearly don't care. You should have taken Paul's advice; you shouldn't have had children. You are a terrible parent. It would be better if you never contacted your family again. Seriously, we'd be better off without you. That's the least you could do for us.

---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

My father lacks empathy for his children. He is a psychopath to a significant extent in this context.<<ref "2">> He damages his children, and his wife justifies it (which makes her a psychopath too). I'm tired of dealing with them. Every time I see them, it is ultimately just painful. Nothing good comes from it. I meet and talk with them because:

# I somehow still love them. Why the fuck would I love those who lied to me, manipulated me, and abused me? 
# I want to be wrong about who they are. I'm literally in denial.
# I'm conditioned to do so. I'm actively trying to fix that.
# I legitimately hope my children can have a good relationship with their grandparents, even if I can't. Can I trust they will be good to my children even if they weren't good to their own?

My parents want to see their grandchildren for selfish reasons. They want the warm fuzzies. They don't care about the damage they actually incur at the end of the day. They blind themselves to it. They really are classic baby-boomers. 

It has been eye-opening to get to know my mother-in-law. She's not perfect, but her behavior actually shows love. She regularly goes out of her way to ask me if I need anything. Contrast this with my parents. I can't even recall the last time they asked me that. They know we are in an incredibly vulnerable and difficult position, and they've done almost nothing to help us (besides attempting to buy their grandchildren's love). They don't even try to empathize. They don't even try to take responsibility for their creations.

I'm wishing my parents ultimately were different people than who they are. They are terrible human beings. I need to just accept that fact and move on. I have to protect myself and my family from them. 

They think I owe them respect. They don't deserve my respect. Let me reiterate: creators have the a priori obligations to their creations, not the other way around. They are human beings with basic human dignity, and that is the extent of the respect they are owed.<<ref "3">>

I think we both see each other as mentally ill. Maybe we are both right. Ultimately, they are more responsible for our situation though. Blame flows to those who had the power; power and responsibility go hand in hand. If you don't like your creations, guess who's fault that is?<<ref "4">>

I am angry at myself for having been suckered into being charitable to them for so long. I was correct about them as a teenager. I should have left them for good. It was a costly mistake.

---
!! What are you going to do about what happened?

I've decided to just start digesting my thoughtloops here. I'll have to inspect them, I'm sure. It's time to get it out.

---

<<footnotes "1" "I once told my mother about this, and she honestly didn't believe me. Fuck her too.">>

<<footnotes "2" "Recall that psychopathy is a spectrum. It comes in degrees. My definition here is 'choosing not to feel empathy for another person.'">>

<<footnotes "3" "Queue shitty religious or social convention argument here. They really don't have a sound //moral// argument.">>

<<footnotes "4" "Let's take the time to consider the possibility that I could dismantle whatever lame theory of free will they have in mind designed to conveniently abdicate their personal responsibility and narcissistically shape their narrative.">>
I had some links ready for yesterday, but I didn't log them. Today may be a bit longer for it, we'll see.

* https://www.salon.com/2017/05/22/president-cuck-trump-supporters-are-freaking-out-over-the-presidents-tone-change-on-islam/
** Give it time. I believe the vast majority will eventually flip. Many already have. The diehard fucktards require more evidence. This, of course, may be forgotten. Let us hope they finally see it.
* https://www.reddit.com/r/politics/comments/6cp23n/president_cuck_trump_supporters_are_freaking_out/dhwb5z9/
** Connected to the previous. I found this to be an interesting post.
* http://www.continentcontinent.cc/index.php/continent/article/viewArticle/48
** I must admit, I'm growing too stupid, tired, and perhaps lazy to even attempt to answer the question anymore. Maybe it is just stoicism. I have enormous sympathy for object-oriented ontology at times (particularly on DCK).
* https://imgur.com/hsn8PY4
** Surprisingly reasonable socialist "propaganda"
* https://www.bostonglobe.com/business/2017/05/21/young-men-falling-bottom-income-ladder/ncYhOoItuoqdlApn6qZRSL/story.html
** We've not hit peak unrest. I believe these young men will eventually erupt.
* https://www.washingtonpost.com/news/the-fix/wp/2017/05/22/the-white-house-is-trying-to-dupe-the-new-york-times-with-phony-leaks/?wprss=rss_the-fix&tid=sm_tw_pp
** I'm shocked! Lots of reasons for it, it appears.
* https://www.independent.co.uk/life-style/gadgets-and-tech/news/snoopers-charter-investigatory-powers-bill-government-online-surveillance-majority-uk-unaware-a7749851.html
** I weep. The stupidity infects us all.
* https://www.forbes.com/sites/larryalton/2017/05/22/millennials-and-automation-a-departmental-examination/#703a1f635436
** I guess it must be our fault that we don't have jobs. That's honestly the next move a conversative would make from this argument (which is hardly true).
* https://github.com/chaosbot/chaos
** A beautiful, democratized social experiment (like the publicly played Pokemon game, or the international Chess tournament (World vs. Kasparov, or whatever)). 
* https://qz.com/987557/the-inevitable-future-of-slack-is-your-boss-using-it-to-spy-on-you/
** I did not like Slack before. I really don't like it now that I understand what it really is.
* https://www.bloomberg.com/news/articles/2017-05-19/unemployment-in-the-u-s-is-falling-so-why-isn-t-pay-rising
** Employers have absolutely all the power in this relationship. There is no bargaining power. Workers are fundamentally enslaved to this system. They half-heartedly appear open to the possibility.
** U3 Unemployment looks better, but it is not the fitting measurement of true unemployment. Get it out of your heads. You've missed the boat. There is a glut of overqualified workers available to employers. Underemployment is extremely common. Babyboomers keeping their jobs because they never saved for retirement (or gave a shit about the future in the first place, psychopaths) continues to be part of it. 
** They are right that the Phillips curve is effectively dead.
** Your savvy capitalists know why, but they aren't going to be open about it. They have too much to gain from your ignorance. This article's bottomline is half-assed blarney, on purpose.
** Talk about predictive powers: Marx has it fucking pegged, assholes.
* https://hardbin.com/ipfs/QmUGFZAWzWEaHjC1dHAUQ8aKCuKupKsX9vLzhGZV9PLknu/#about
** IPFS may eventually take off. Godspeed, good people.
* https://www.nytimes.com/2017/05/22/science/52-genes-human-intelligence.html?mabReward=CTM4&recp=6&_r=0
** This seems to be a problem for AI to solve. 
* A family of thought about identity, algorithms, and governing
** http://reallifemag.com/sick-of-myself/
*** Outfuckingstanding article funded by...(/drumroll)...Snapchat. 
** https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/275752/13-505-social-media-and-identity.pdf
** https://iainmait.land/pdf/Rouvroy-Stiegler.pdf
** https://news.ycombinator.com/item?id=14391458
*** A great quote: There's also the premise of global superpowers locked into a theater of permanent economic conflict and the implicit balance of power perpetually threatening to break open and destabilize into massive full-spectrum conflict...Given the state of nature that exists between large industrialized nations, each in incentivized to foment dysfunction in their rivals to slow them down economically. The more infighting in any given country, the more headaches present among citizens, the slower and more reluctant their economy becomes...There's a slow, glacial, permanent grind that never goes away, because the world at large is trying to make you call in sick to work, so that they can gain some breathing room, and pump up their own economy...Meanwhile, uncompetitive personality flaws get classified as mental illness, so that there's medical justification to ply you with productivity drugs. Take prescribed speed to perform for the economy. Take mood stabilizers so you don't snap at your co-workers. Take anti-anxiety meds for your impostor syndrome, and stop worrying about whether everyone hates you. They're all just cranky from the speed and psychological operations of global superpowers trying to slow us down.
**** I don't agree with it all, but some of it is obviously correct.
* https://www.washingtonpost.com/news/wonk/wp/2017/05/23/trumps-balanced-budget-relies-on-2062000000000-in-mystery-money/
** False compromises, lies, rhetoric, etc.
* https://np.reddit.com/r/technology/comments/6cvg82/comcast_is_trying_to_censor_our_pronet_neutrality/
** Fuck Comcast
* https://www.wired.com/2017/05/camera-wants-kill-keyboard/?mbid=synd_digg
** Offloading more of our computing to centralized servers. 
** I can't imagine not typing. There are too many quirks that a computer just can't capture at this point. There are too many times where my writing something down is exactly what jogs my memory, allows me to see what my thinking visually, or changes how I think about something. Perhaps it will change. We will see.
* DNC: KYS
** http://therealnews.com/t2/index.php?option=com_content&task=view&id=31&Itemid=74&jumival=19130
** http://www.nakedcapitalism.com/2017/04/want-know-democratic-party-just-ask-lawyer.html
* https://trueeconomics.blogspot.com/2017/05/22517-us-public-pensions-system.html
** Thank you yet again, Babyboomers. 
 
I was measuring the fabrication when the teacher came in. He asked me if I had a dream about it last night (I guess that means he realizes I've been thinking about it at home; he regularly tells the others to study at home). It was off by half an inch. So, we took the flange off and repositioned it. Everyone helped us move the fabrication and mount it. It fit quite well. We could have gotten away with not moving the flange, but I'm glad we did. It was beautiful.

The teacher thought our vertical pipe was not plumb. We showed him it was. Thus, in order to find another flaw, he said he wished it was connected to the second fabrication we'd be making. He saw the fabrication sitting there the entire time and said nothing before. Lol. I suppose he needed something to complain about to feel like a teacher here. Instead of removing the fabrication, pulling it apart, etc., we decided to do a 'field modification.' Basically, we made a saddle, and cut a hole with a special drillbit (3" in diameter), and tacked it on there. We had trouble figuring out how to 2-hole the vertical pipe with a horizontal flange (we used the square with a level with the midpoint of the level on a "0" line [which we drew for making the saddle in the first place]). We got there though. This part took quite a while. 

Afterwards, our teacher told us he wanted 45 degree fittings with an offset (it sounded like he wanted a 45 degree roll) on the second fabrication. It also sounded like he wanted a rolling offset, and possibly a special offset if we needed. We struggled quite a while to figure out how to do the math. I felt like an idiot the entire time. According to my math, it isn't possible. That's fine.

Eventually, the teacher came back and rexplained the possibilities. He told us to think about it on our week off. I'm just going to do a flat offset to a T-fitting fairly highly up. That juncture is going to be very crowded. So be it.

Class is officially canceled at this point until next week Tuesday.

Chris said something interesting. He knows a manager at Eastman, and he thinks he may get an interview in August. He said he might not finish the course, and had already talked with my teacher about it. It sounds like he'd get a maintenance job. I told him to go for it and to continue applying. Soon enough, I will do the same. 
//My wife selected my writing prompt today.//

!! Define the word "Boundary," or freewrite on it.

What is a boundary? What is boundariness?

A boundary demarcates an entity from its surroundings. A boundary is the first point beyond which it is not possible to find any part of the entity. I suppose entity here could be anything. We could be talking about physical or metaphysical objects. In a way, one must define the entity or object in order to define its boundaries, and likely vice versa. I suppose boundaries require contexts with dimensions. One must have something outside an object in order to have boundaries to it. 

Take reality itself. Are there boundaries to it? It makes no sense to talk about something outside of reality at first glance. Maybe we want to talk about possible worlds, counterfactuals, falsities, or other kinds of non-being objects. Insofar as they can be talked about, insofar as there is a being of non-being, we must say they are sort of part of reality. Hence, there is a sense in which reality does not have a boundary. But, there seem to be limits to reality. Maybe we must say that non-reality is what is outside of reality. I don't know what it means to say that. 

We're near the root of ontology here. I fear I cannot give any satisfactory answer. To provide one would be equivalent to solving a host of incredibly complex and ancient problems. This is fundamental to providing a true philosophical Theory of Everything.

There are many aspects, kinds, and perhaps degrees of boundaries. Boundaries aren't always clean. They can be blurry and fuzzy, or sharp and perspicuous. Perhaps boundaries can be thick or thin. Maybe boundaries are bound to particular objects but not others, but I don't see how that is possible. If there is a boundary between X and Y, does it belong to both, to just one, or is it separate? Maybe there are multiple boundaries at play here. Admittedly, there may be boundaries which separate two objects which are distinct from how objects may continuously flow into each other as each others boundaries. That is odd.

Boundaries of space+time are easy to conceive of in an intuitive sense (up until we hit the weirdness of quantum theory, relativity, and beyond [I suppose that's a boundary too :P]). Boundaries of ideas, abstractions, or metaphysical objects are less easy to see, but still fairly obvious to me. 

Some boundaries seem more objective and others more subjective. The determinacy of boundaries seems very difficult, to say the least. I worry that we oscillate between an arbitrariness and a pragmatic certainty of boundariness. There seem to be a host of postmodern and metamodern considerations here.

Do boundaries grant any sorts of privileges to objects in ontology? Are some boundaries "stronger" than others? Is there a hierarchy? What is the boundary of a boundary? It does seem like there are no boundaries without things to be bound by them. They seem parasitic in this respect. 

What are the relationships between objects and their boundaries? Boundaries might commonly be thought of as having a lower-dimension than the object they bound. But, in a way, I see boundaries as pointing to a "space" larger than the object by definition. Thus, here is my best definition:

<<<
Boundaries bind and distinguish objects relative to other objects. 
<<<


* [[2017.05.22 -- Prompted Introspection Log]]
** Edited.
* [[2017.05.22 -- Wiki Review Log]]
** Still haven't gotten photocopies or mailed my current form.
*** That's 3 now.
* [[2017.05.22 -- Pipefitting Log]]
** I've noticed my pipefitting logs have been shorter as of late. What does that mean? Why are they shorter?
* [[2017.05.22 -- Diet Log]]
** Summed.
|customTable|k
|Food|Calories|h
|Pears|200|
|Mandarin|105|
|Sausage+Buns|600|
|Chips|700|
|Pizza|250|
|Nuts|180|
|English Muffin and PB|300|
|Total|2335|f
* http://www.tribesnext.com/
** Tears welled up when I got it running in Wine and saw there were zero users on about two dozen private servers. It was emotional.
* https://arstechnica.com/tech-policy/2017/05/google-and-facebook-lobbyists-try-to-stop-new-online-privacy-protections/
** Nothing new. Just a 'yup.'
* https://www.scuttlebutt.nz/
** Another decentralized tool. I've ran across it before, but I forgot about it (and it wasn't in my bookmarks). Time to save it here.
* https://backchannel.com/what-deep-blue-tells-us-about-ai-in-2017-3284f92b2a93?mbid=synd_digg
** Check the printouts of that double-edged sword. Who wields it, and why?
* https://coas.missouri.edu/news/religious-devotion-predictor-behavior
** I must not know many true believers.
* http://www.slate.com/articles/news_and_politics/schooled/2017/05/u_s_high_schools_may_be_over_relying_on_online_credit_recovery_to_boost.html
** Drones making drones. 
I was considering just making a welding log out of [[Welding]]. As I near the end of the primary aspects of the pipefitting course, I hope to fill out the edges and acquire other kinds of tools. I want to be excellent with the oxyacetylene torch (would love to make some art to get knees wet, nameplates, etc.), have some experience with less common pipefitter handtools, automated beveling (among other tricks), and build my toolbox (dogs, centerfinder, level+square combo). The shop has old bandsaw blades. I need one of those. The odd L-prism (like a super deep mini square) used for drawing lines on pipe is also useful. Beyond that, I would really like to get some welding under my belt.

I spent all day in the welding shop today. I finished three 2G welds, a total of 21 passes. I spent a lot of time talking to people. Honestly, the welders seem to be a smarter group of people than the pipefitters on average (with obvious outliers). My first root was still the best. It is much easier with a teacher standing there talking to you as you do it. My other two roots weren't as good. Certain parts were between excellent and passable, and others were terrible. My major fuckup was the last one. I think it was because the bevel was bowed out. I really do need a very clean bevel. It's clear that I can't halfass that part. 

Grinding the root makes it much easier. I've been grinding everything but the caps. I just want it flat. There is a domino/pond ripple effect when you have mistakes early on. Grinding isn't the norm, and it isn't allowed on tests. Fake it till you make it. Dale said I could grind if I wanted. There's nothing technically wrong with it; it's just against the convention. 

My second 2G I used 4 stringers for the cap instead of 3. That was a mistake. My third 2G I used 3, but the first two caps beads were just too far apart. This is just a matter of practice. Getting that distance right isn't going to happen overnight. 

Dale and I talked about my strategy. He thinks I should go straight into welding after my pipefitting program. He said he would jump me ahead the line in front of the 200-person queue to enter his class. In the mean time, I can come work in his shop whenever I want. He says he could help me finish plate in a month. He said it would take 8-10 months minimum to be able to do pipewelding. I clearly have a long way to go. He's not in love with the union idea, but he's not against it. He does agree it is the fastest way to become a journeyman pipefitter. He also thinks there welders are quite good. He has no direct complaints outside of being forced to travel. I think he is also deeply connected to the fabric of the local industries here, which are all very anti-union. I must take his perspective with a grain of salt. 

He says he has never had a hard time finding a job. Welders do make good money. I think I should stick to pipefitting for now though. I think I'll enjoy the work more. He had good things to say about my teacher's pipefitting program, and he thought it was a shame they generally come out getting paid much less on average than his welding students. I think he saw the reason for the union, but didn't want to admit it. My average pay in the union will be higher than his students.

I talked with one of the students. He is an odd one. He has been a welder for a long time, but said he has a hard time getting jobs because he doesn't have a tech school on his resume. So, he's doing a short 4 month stint to knock the course out. We talked a lot about politics. He was a racist trying not to be racist. He didn't like the union either, but actually had significant socialist values (he had high praise for what unions "used to be" in his view; although, even his historical knowledge of it was lacking). I actually appreciated his point of view, warts and all. 

I had several students help me today. While there is a lot more individual work in these classes compared to pipefitting, I liked the camaraderie. It is definitely a different atmosphere.
//I forgot to write one last night. Oops. So, I'm making up for it this morning.//

!! How would you like to die?

<<<
In my own bed, with a belly full of wine and a maiden's mouth around my cock, at the age of eighty.

--Tyrion "the Imp" Lannister, Game of Thrones
<<<

The assumption, of course, is that I'm going to die. That's a safe assumption. Maybe I could live on in some computer as a program or with robotic parts, but I highly doubt that will come to pass (even if it were possible). 

What obtains at the time of my death? Is that what you are really asking? Do you know what you are asking?

Like so many of my answers, I think this one requires context. "How I would like to die" is strongly tied to how I have lived. Tell me how I have lived, and I'll tell you the when, what, where, what, who, how, etc. of my preferred death. The basic answer might appear to be "old and happy," however, there are plenty of scenarios in which I'd say "young and quickly," and others where "slow and painful" death would be a worthy sacrifice. The state of the world is key to answering this question. Working backwards, we might say that in answering this question, we are really talking about how I would like to live. 

Ummm... I'd like everyone to be maximally and permanently happy when I die of "natural" causes in my sleep at an old age after having completed my [[Bucketlist]]. Done. 

Oh, that's not realistic? You mean I need a //realistic// answer. Well, I happen to think there is a much larger difference between the way the world //is// and the way it //ought to be//. I actually think we could, theoretically, achieve world peace, enriched lives, and live in harmony. I would virtually never, ever predict it though. 

Oh adversary, tell me what counts as realistic.

Maybe you are asking: Of those possible worlds that I see as not being just merely possible but also plausible, which of them do I wish to obtain? Of course, I must ask, how plausible? You have to nail this down for me. In charity, should I take up what I believe is most likely to occur and then give the most strategic answer in light of that context?

I believe the end of human existence is coming. I think billions are going to suffer and die by our own hands. I assume remnants will survive, but I don't think our species will be able to rebuild. We've harvested the surface of our planet in such a way that there aren't any do-overs. It will be a true blight on our planet's geological record. 

I think finding a safe place to help my children live meaningful lives while the world crumbles around us, enslaving each other, is our best option. I hope I'm wrong. If I'm wrong, then there are many other options. This is the problem with such a defensive option; your opportunity costs are fairly high. I wish I could be more optimistic. Maybe in time that will change. Who knows? Maybe I'm wrong about what is plausible. 

Ah, you still don't like my answer? Are you asking something far simpler: forget the state of the world, your life, etc., what is your preferred method or direct cause of your death?

I'd prefer it was painless. I want to go out doing something I would never do as a person who wants to live: I want to OD on Heroin when medical care is beyond helping me. I want my last moments to be pure bliss. 
* [[2017.05.23 -- h0p3's Log]]
** Edited.
* [[2017.05.23 -- Prompted Introspection Log]]
** Edited. I actually enjoyed this one. I was thinking I might do more philosophical writing. 
* [[2017.05.23 -- Wiki Review Log]]
** 3 strikes and you're out.
* [[2017.05.23 -- Pipefitting Log]]
** Edited.
* [[2017.05.23 -- Diet Log]]
** Binge.day - Behold my gluttony!
* [[2017.05.23 -- Link Log]]
** I had a lot of links backed up in my browser. I remember my cousin finding it odd that I keep so many tabs open. I don't know what to say. After years of browsing, sometimes having multiple browsers, multiple windows, multiple groups of tabs, and lots of them are necessary for the job at hand. The workspace is constantly changing, and my use of it evolves. I just have to get my work done.
|customTable|k
|Food|Calories|h
|Nuts|170|
|English Muffin PB Half|150|
|Pear|100|
|Cereal|250|
|Veggie Tikka Masala|800|
|Chocolate|125|
|Rum Cake|300|
|Total|1895|f
!! How is your health? Daily routine? 

Still sleeping, but not well. It's sufficient though. I'm glad that my schedule is stable. I'm overeating. I'm trying to put a nail in the coffin of the thoughtloops I've been having. It isn't obvious to me that I can always just stop it. Digesting it seems to help.

I am feeling anxious about my job and how best to spend the next three months.

---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

Three years ago my parents brought my grandpa to Thailand to find a new wife. They knew this was his intention, and they facilitated it. Of course, my grandmother had died, and they wanted to make my grandpa happy. 

I wrote them a short but humble (and yet nervously stilted) letter about my reservations. I was worried that this amounted to a form of human trafficking and that they were foisting my misogynist evangelical grandfather on some poor woman who had no other option but to suffer the abuse (I said it far more kindly and humbly, leaving them as much room in our dialectical space to see and address the problem without losing face). The power dynamics in such a relationship would not make a good marriage. 

They dismissed my argument out of hand, without pause. They said if they thought there was a single thing possibly wrong with what they were doing, they wouldn't be doing it. They had zero reservations. 

They found a Thai woman with a daughter for my grandfather. These females came from a very rough background. The kid was used as a drug mule, I believe; she had a profound mistrust of people, having been abandoned before by her family. Anyways, they got married. From the sounds of it, my grandfather basically forced himself on his wife on their first night of marriage (he was proud of it).

Mind you, this woman couldn't speak English, and my grandpa can't speak Thai. Their marriage was a sham from the start. My grandpa wanted a fuckmaid he learned about the from Bible, and she didn't play his game. Eventually, after about a month or so, my grandfather just left the country. The woman and child were left used and devastated. 

Months later, the woman killed herself, and the child is now truly on her own. 

My parents' retelling of this story has changed over time. They've tried to shape the narrative to show they aren't really at fault. Now they say they had reservations the entire time. 

I would like to point out that their matchmaking has been disastrous multiple times. This is not the first time they've tried to imagecraft their way out of similar mistakes.

---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

I think this shows that my parents don't take responsibility for their actions. They don't own up to it. They take up the "moral mantle" primarily when it is convenient for them.

It is also clear they don't actually value my opinion either. Or, at the very least, they are unwilling to consistently and charitably take my view into consideration. I was quite right about what this was, and they were smart enough to see that from the beginning. This is on them. While I recognize I'm not the primary victim here (by a long shot!), I think being snubbed sucks. It's hard to have a relationship with people who don't really take you seriously.

To add insult to injury, it is clear that my parents were quite worried about how this affected their image in Thailand and among their donor-base. It made them look bad, and that was ultimately the reason they felt bad. They've got the wrong priorities. I think they are dishonest.

Their certainty and lack of humility is dangerous. They've helped many people, but they've also ruined many lives as well. Too often, because of their elected ignorance, they have herded individuals in specific contexts as well as masses into the wrong existential and moral paradigms. 

Lastly, I am worried that since I have so much in common with them that I am blind to these very flaws in myself. I need to dig them out. 

---
!! What are you going to do about what happened?

I'm not sure there is much to do about it directly. Writing it down helps me get it out. I need content to analyze. I'll keep writing as long as it keeps helping. 

* https://www.techdirt.com/articles/20170512/11400137349/yet-another-bad-idea-dropping-facial-recognition-software-into-police-body-cameras.shtml
** A drawback. Love the transparency. I worry it will be used for the bad part but not for the good.
* http://fair.org/home/deficit-scare-tactics-are-what-citizens-should-really-be-afraid-of/
** I know far too many morons who think the deficit is the major problem with fiscal responsibility. 
* https://mediagoblin.org/
** Another decentralized media tool.
* http://www.geeksforgeeks.org/
** Crazy awesome CS site I found. Useful for my daughter.
* http://www.ghostintheshellphilosophy.info/
** I adore GIST. This was well done.
* https://www.w3.org/TR/activitypub/
** Nailing down a decentralized social networking protocol
* https://np.reddit.com/r/explainlikeimfive/comments/6d22mv/eli5_why_do_5yearolds_and_under_like_to_watch_the/dhzlqy3/
** Another interesting post on what is entertaining. Again, I caution, it is about being surprised in a right way.
* https://redditblog.com/2017/05/24/view-counting-at-reddit/
** Continued commodification of Reddit. 
** The question is whether or not such a beast can be fully decentralized or even federated. I would work hard for such a community. Scraping bots designed well can go a long way to producing similar content base, even the appearance of a community to a minimal extent. Hey, when Reddit came out in my very young adulthood, that is exactly what they did (only by hand!).
* KYS
** https://www.dslreports.com/shownews/GOP-Busted-Using-Cable-Lobbyist-Net-Neutrality-Talking-Points-139647
** https://www.washingtonpost.com/blogs/plum-line/wp/2017/05/24/the-enormity-of-trumps-scam-is-coming-into-view/
** https://www.theguardian.com/commentisfree/2017/may/25/make-no-mistake-donald-trump-has-fueled-violence-against-journalists
* http://www.aljazeera.com/indepth/opinion/2017/05/africa-poor-stealing-wealth-170524063731884.html
** Have I mentioned how much I like AJE? The sanity can be breathtaking.
* https://mikecanex.wordpress.com/2012/12/26/1922-why-i-quit-being-so-accommodating/
** A thoughtful way of thinking about opportunity costs, autonomy, and ethics.
* https://theintellectualist.co/study-mit-economist-u-s-regressed-third-world-nation-citizens/
** Preach, yo. Take me to church. 
** It ain't third world, but it is heading that direction. Give it time.
* https://www.nytimes.com/2017/05/22/opinion/american-workers-noncompete-agreements.html
** Intellectual property rights exist to enslave our minds and cut off our mobility. 
* https://consumerist.com/2017/05/22/education-secretary-devos-to-give-all-student-loan-accounts-to-one-company-strip-away-more-protections/
** I could be definitely be in for a rough time. The psychopathic capitalist vampires are coming for the young. 
** I'm sure her conflict of interests aren't motivating any of this.
** The inability to pay off loans in the order of our choosing is farcical. This is a form of enslavement.
* https://www.theregister.co.uk/2017/05/19/open_source_insider_google_amp_bad_bad_bad/
** Google's AMP, again, must be rejected. Keep the web open and decentralized. For the love of God you stupid, selfish assholes.
* https://jacobinmag.com/2017/05/yale-university-connecticut-state-budget-cuts
** DemSoc Jacobin only begins to scratch the surface of the problem of education inequality here. It's a deep problem.
* http://www.shadowstats.com/alternate_data/unemployment-charts
** This is much, much closer to the truth of the matter. There are many difficult to quantify aspects of the problem, particularly underemployment, which aren't captured here. 
** This site is excellent.
* https://en.wikipedia.org/wiki/Bryan_Caplan#Ideological_Turing_Test
** A fascinating test of charity.
** I have a few worries. Neutral judges and observation faces the standard postmodern criticisms. 
* https://digg.com/2017/mark-zuckerberg-political-harvard-commencement
** As we feared. 
I had to stay home because there was an apartment-complex wide inspection. I didn't want the kids to be home alone for it. They didn't show up until the afternoon, at which point there wasn't much of a reason to travel out to school. So, I guess today was a free day. I'm enjoying it.
!! Which living person do you most despise?

Note the difference between "who I despise the most" and "who I should despise the most." There also may be worries of whether or not one should despise persons at all in the first place. I favor well-targeted despisement, if not outright hate of many objects, including some persons. I think it is the only practical option.

Sometimes the answer is myself. Sometimes it is the some of my creators. Sometimes it's Donald Trump. Sometimes it is the Aristocracy. Sometimes it's everyone. It varies in the context I'm in. Hate is a strong emotion. 

Who deserves to be despised the most? 

Evil people who have not only the Evil Will (Kant is calling on the other line), but the means to implement it (consequences matter as well). It's hard if not impossible to empathize with a psychopath. They are predator aliens to me by definition, not merely circumstance. 

I suppose I actually despise whoever I see as the most evil to my particular context at the time. When I exit the cosmopolitan mode, I often despise people more less (surprisingly!). There is a ready-at-hand kind of mode where I'm just being there and doing my thing in the zone. I don't really despise living persons nearly as much there. I also can't simply live in that mode though, and it would be unwise to completely give myself to it. I need to plan and digest. 

Note that the more I get to know people and understand who they really are, the less I tend to like them. 

Do we want to talk about irrational hatred? 

* I really despise Kevin Spacey. I love lots of his work. Sure, I don't like some of his characters, but that's fine. I think Spacey is not a good actor, nor do I think he's a good person. He crawls underneath my skin.
* ...There's another. I've forgotten who it is. It's magical. There is another I loathe beyond Hitler himself. I can't remember though. =/. Ah, that's okay. Better not to think of it. Ol' Marcus Aurelius would at least partially back me up (we disagree on several aspects of stoicism, imho; and his son is a testament to his failure).
* [[Magic: The Gathering]]
** I'm making this a project in the hopes that I will actually use it to. I want to play MTG with my kids.
* [[2017.05.24 -- Diet Log]]
**  Edited and Summed.
* [[2017.05.24 -- Wiki Review Log]]
** Honestly, I have nothing to say.
* [[2017.05.24 -- Link Log]]
** It was a weird swirl of emotions to see Tribes 2 on my computer again. It holds a special place in my heart. To see it was basically officially dead (again) made me sad. It was a powerful bittersweet experience.
* [[2017.05.24 -- Pipefitting Log]]
** I'm really grateful for the opportunity to learn to weld. I can see what it takes. 
See:  [[2017.05.26 -- Prompted Introspection Log]]

Oddly, this was in /r/frisson. I believe I see why. It reminds me of my friend Mary Beth. She is a holocaust junkie. She actively seeks the feelings of pain and devastation through empathy. It's one of her drugs.

|customTable|k
|Food|Calories|h
|Pear|150|
|Apple|100|
|Mandarins|105|
|Chips and Tikka Masala|400|
|Wrap|450|
|Brussel Sprouts|70|
|Coffee|40|
|Pizza|520|
|Total|1835|f
* https://www.theverge.com/2017/5/26/15679806/ai-education-facial-recognition-nestor-france
** Interesting. Will it be wielded responsibly? I have seen significant abuses in schools before. I'm skeptical. 
* http://www.nytimes.com/2010/01/10/magazine/10psyche-t.html?emc=eta1
** I grant the strong Western bias in "scientific" psychology. The memes are quite strong (that doesn't make them correct); it is part of why they infect the world.
** Philosophy has profoundly shaped psychology. 
*** Unfortunately, psychologists tend to be pretty awful at philosophy.
*** Postmodern and metamodern philosophy show the cracks in even the conception of what psychology aims to do.
* https://www.reddit.com/r/Frisson
** I rarely recommend subreddits to anyone. It's highly personal. This one is worth looking at.
* https://philosophicaldisquisitions.blogspot.com/2017/05/the-right-to-attention-in-age-of.html
** This article merits your attention. =)
** I rarely read real philosophical work anymore, unless it confirms my biases. Yay! 
* https://www.theguardian.com/commentisfree/2013/jul/19/noam-chomsky-slavoj-zizek-ding-dong
** I think they are both brilliant men. It is unfortunate to see the continental-analytic divide here. I'm happy to criticize both, but I think both merit huge praise. I wish they would get along. We need it.
* https://github.com/talwrii/clixpath
** CLI HTML parsing tool. Yummy.

* KYS
** https://www.nytimes.com/elections/results/montana-house-special-election
*** People disgust me. Look, I hate most media outlets as much as the next person (although for different reasons), but I think we have to fight to preserve the freedom of the press (and I think there are far more extreme lengths we must take, particularly against capitalist injections into it).
** http://www.msnbc.com/morning-joe/watch/joe-my-party-is-going-straight-to-hell-954005571832
*** It was already shit decades ago, and he is definitely blameworthy for ushering this era in.
*** I'd like to understand why he is really doing this. It isn't integrity. Why is he posturing this way? Or, if there was some "line crossed," what could it possibly have been?
** http://circa.com/politics/declassified-memos-show-fbi-illegally-shared-spy-data-on-americans-with-private-parties
*** Our government does not exist to serve us. You fucking conservative idiots who support surveillance, don't you see how this power is wielded against us?
*** Palantir is only the tip of the new iceberg. Dark times are coming.
** http://www.bbc.com/news/business-39947942
*** This is coincidentally related to the previous link. FB is a golem. Zuckerberg will have the most powerful conflict-of-interest tool at his disposal if and when he attempts to directly enter politics. Pay attention!
** https://newrepublic.com/article/142819/cost-activism-trump-era-job
*** I believe I talked about this before. In any case, voter suppression and punishing activism is obvious fascism territory. Free speech for individuals must be protected (even if they are fucking nazis), but it is unclear how we can effectively restrict corporations outside of just rebuilding them from the inside out.
I think I should start writing more on my offdays about my work as well. Remember, I'm trying to play life like a video game, and video games are 90% about thinking, planning, and practicing. The actual play is oddly secondary when you are meta enough. 

I only wanted to say that my brother JRE sent me a gift. It was very thoughtful of him. He sent me a digital protractor. It has good magnets, it gives accurate readings, +/- 0.2 degrees.  I will use it as a level, for 45's, bevels, and especially for special rolling offsets. It comes with a belt loop holster. I don't think I'll be loaning this one out, or I hope I won't feel it necessary.
!! When was the last time you cried?

Today. I stumbled upon this:

<center> [img width=1300 [./images/war-girl.gif]] </center>

I'm crying as I write this right now. 

This kid doesn't know her own name, that's how traumatized she is. Look at her answer these questions. Heartbreaking doesn't even begin to describe it. This girl is trying to smile in the face of the end of her life as she knows it. Look as her bravely holds back her tears. She is alone. She's had nothing to eat, and she is ashamed, overwhelmed, and shattered.

It kills me inside. The grief and anger is hard to contain.

I hate myself and who we are as I watch this video. I'm sitting here in front my computer, watching a video of this child's interview halfway across the planet in my comfortable chair. I have never faced anything like she has. I just want to hold her. I need to stop this. I need to restore her. She doesn't deserve this. How could this happen? What can I do? 

If God existed, I would tell him to go fuck Himself.<<ref "1">> If you do exist: fuck you. Burn in hell you psychopathic piece of shit. I fucking hate you. How dare you allow the world to be like this! How could you allow this? You do not merit praise. You do not care about your creations. It would have been better that we did not exist at all. You are the first cause, oh mighty master of existence, and thus you are responsible for this evil. Just God my ass; eat pigshit and die, you abomination.

To those who //actually//  caused this: kill yourselves. Either do so literally (the easy way out), or do so figuratively or indirectly by ending who you are via erasing yourself and radically reprogramming yourself and the world around you (the better way). Stop this!

This image is haunting. The loop is a splinter in my mind. I am powerless. I can only taste a drop of her suffering, and I cannot bear it. This image shows me what it means to hate and love humanity at the same time (in different respects). 

I am a worthless witness to this evil. She does not deserve tragedy, and we do not deserve forgiveness. I know I didn't pull the trigger. I know the world is not on my shoulders alone. Her suffering is not all my fault, but a drop of it is. We will not restore her. I weep. 

The worst part is that I know deep down, the reason I want this to stop is that my empathy makes me feel her pain, and I just don't want to feel pain. What //really// and ultimately is the cause of the appearance of altruism, morality, and the desire to restore her is my desire to the avoid the pain I'm feeling (selfish). 

I bet if I read a blurb about this event instead of watching her interview, my empathy may not have been activated, and I probably wouldn't have felt this way. My zealous reaction is rooted in selfishness. None of us are good, and we never can be. That's who we all are. We are egoistic, selfish creatures. 

At best, in an overdetermined way, I wish we were not who we are. I am so sorry, child. 

---

<<footnotes "1" "I imagine my wife is not going to be pleased reading this. Consider this my participation in an ancient tradition. I believe I am justified and and entitled to my feelings and inferences here.">>


* [[2017.05.25 -- Link Log]]
** Maybe I should have a "KYS" section so I don't infect the rest of my links.
* [[2017.05.25 -- Prompted Introspection Log]]
** Edited.
* [[2017.05.25 -- Wiki Review Log]]
** I talked to my brother JRE about T2. It was an odd experience. We had a good, long conversation today. I'm glad we had the chance. I know I often don't have enough to contribute to the conversation. Sometimes having a conversation with myself prepares me to have conversations with others.
* [[2017.05.25 -- Pipefitting Log]]
** It has been an extended weekend. I am grateful for the opportunity to stay home and spend time with my family. I'm also anxious to get back to work.
* [[2017.05.25 -- Diet Log]]
** Edited and summed.
* [[2017.05.25 -- h0p3's Log]]
** I talked with my brother about this as well. I am convinced my point of view has enormous merit to it. It isn't popular, but that doesn't mean it is wrong. 
* [[2017.05.24 -- Prompted Introspection Log]]
** Edited.
//Disclaimer: I am not an expert on the various kinds of AI (I'm tired of writing it as A.I.). //

Deeper neural networks appear to hide (without malice, at least for now) enormous amounts of information the human mind cannot simply or formulaicly extract in any reducible or principle-generating manner. We cannot understand what AI is thinking in a meaningful way outside of some telos and the principles we've conceived and used to create, train, and tweak them. But, eventually, even this knowledge will fade as AI begets AI. We are the progenitors of this new species, and we control its habitat (for now); but, eventually we will lose our role in its reproduction bit by bit. 

Ultimately, if and when there is an "in the long run," there is an increasing element of trust we must grant this species. We already can't formulate complete theories of their minds as we generally can for programs we've written. This problem will continue to exacerbate. When  AI claims X, we will have no choice but to believe them. This, of course, is ripe for exploitation (we see it already on the human use and interpretation of AI). 

A "natural" (not with a capital "N") trade secrecy emerges from the hidden information embedded in AI. I agree it is the beginning of at least some kind of Singularity. AI's and their human masters will be gods. Their intellectual property will enslave us all.




One of the best God damn books I've ever read: Oryx and Crake. It was mindblowingly good. I knew what was going to happen most of the way through the book, but it didn't matter. It pierced me many times, and I shed tears.
|customTable|k
|Food|Calories|h
|Dates|330|
|Tikka Masala|400|
|Apple|100|
|Burgers|1200|
|Dates|330|
|Total|2360|f
!!General Notes:

* It was a good week! =)

---
!!j3d1h:

* Review past week: 
** Research Skills: Cosmetology
*** Did a good job. 
*** Also researched /r/curlyhair
** Math: Singapore Math
*** 6 pages completed.
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Completed 3 programs. Good job.
** Vocational Practice: Applied Computer Science
*** Completed backup programs.
*** Measured computer cord length for house and bought it.
*** Did a bit of work on USB backup program.
** Reading: Little House in the Big Woods
*** Finished! Yay! Good job!
*** Started the collegiate literature book. Worked on poetry.
** Writing: 250 word count in her wiki
*** Did her work each day. Split some of it up though.
** Social Studies: Khan Academy - World History
*** Learned about China, Buddhism, gender inequality in various ancient cultures.
** Spanish
*** Studied adjectives and cognates

* Plan next week:
** Research Skills: Cosmetology
*** Learn how to take care of curly hair. Practice it.
*** Take pictures.
** Math: Singapore Math
*** Complete the book. You may skip the grind, but none of the word or visual problems. Move to the next book.
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Go back and comment the Class section.
*** Begin writing summaries of larger chunks of your code. 
**** e.g. a function should have an explanation, a class should as well, etc.
**** Show me how the larger pieces fit together, what they mean, etc.
** Vocational Practice: Applied Computer Science
*** http://www.geeksforgeeks.org/python/
** Reading: "Literature: The Human Experience"
*** Push hard. Write 3-5 sentence on every item you read.
** Writing: 250 word count in her wiki
*** Write all 250 words or more in a single piece of writing. 
*** Re-write/edit/revise your About section day. 
** Social Studies: Khan Academy - World History
*** Keep kicking ass.
** Spanish
*** Keep kicking ass.


---
!!1uxb0x

* Review past week:
** Research Skills: Depression Workbook
*** Finished one chapter of the //Negative Muck// book.
*** Did some writing in his wiki about it.
** Math: Life of Fred - Dogs
*** Completed the book! Yay! Congratulations!
** Vocational Theory & Practice: Reading Comprehension
*** Has been kicking ass. Good job! 
*** Completed 10% of the program this week. 
** Reading: Fairy Tales from the Brothers Grimm 
*** Finished a story a day. 
** Writing: 150 word count in his wiki
*** Did his writing. It was hard to understand what his prompts were in the first place.
** Social Studies: Khan Academy - World History
*** Judaism, Christianity, Julius Caesar, Confucius, Chinese Dynasties
** Language Arts: JacKris Books
*** 2 pages a day. There was some review, and there were 4 tests.


* Plan next week:
** Research Skills: Depression Workbook
*** Complete two chapters of the //Negative Muck// book.
** Math: Life of Fred - Edgewood
*** Keep crushing it. 
** Vocational Theory & Practice: Reading Comprehension
*** Keep working hard on it. 
** Reading: Fairy Tales from the Brothers Grimm 
*** Allowed to substitute with library books acquired this past week.
** Writing: 150 word count in his wiki
*** Write the prompts at the top of the wikipage. Use "!!" to make the font larger.
*** Keep up the good work, and focus on the question at hand.
** Social Studies: Khan Academy - World History
*** Keep kicking ass.
** Language Arts: JacKris Books
*** Keep kicking ass.
!! Social media. Do you like it, tolerate it, or hate it. Discuss.

I have a very hard time defining social media. We might be tempted to handwaive with the "I know it when I see it" or "you know what I mean." When I think about what "media" means, of what it means to be "social," and what it is that we are doing with our technology at nitty-gritty level, I feel like the lines we've been drawing are arbitrary and frankly quite poor. 

Are you reading social media right now? It appears so to me. Why not every site? Some person or group of persons are sharing bits of data with you. What does it mean to communicate in a non-social, non-medium way? Of course, there are difference kinds of communities based upon the mechanics and incentives generated by those mechanics; there are different social games at play. But, they all seem social to some degree or another. What makes something more social than something else? I don't know. 

Standardly conceived, I think most social media blows. I think it is virtue signaling, and it ends up being a bad thing for a lot people. As currently constructed and used, I think it is highly centralized, controlled, censored, filtered, shaped, and undemocratic. There are exceptions to varying degrees, but that's about right in general.

I stay away from it by and large. I tend to like specialized forums, well-made aggregators, article commentary, and instant messaging. Anywhere that I can turn up the signal-to-noise ratio, focus on things that are important to me, and actually connect to people about what matters in a meaningful way, I'm more likely to do. I avoid many standard platforms like the plague. 

My view is definitely shaped by my autism and philosophical concerns for technology, politics, and ethics in general. I strongly prefer that users control their experience, own their data, and have maximum choice. I strongly prefer decentralized platforms. At times, anonymity and privacy are fundamental to having real conversations, and sometimes they can hinder them. I prefer not knowing who I am talking to since it allows us to focus on the content of what we're talking about instead of reputation or social dynamics that often inhibit what I take to be the real strengths of communicating on the internet.  
* [[2017.05.26 -- Prompted Introspection Log]]
** Edited.
* [[2017.05.26 -- Pipefitting Log]]
** I agree that I should be writing more about work even on my days off. I have no idea what to say today though.
* [[2017.05.26 -- Wiki Review Log]]
** I talked with my wife about the KYS section. Of course, it is not her style. It's not very academic. It lacks the kind of neutral charity we might initially seek. I also think I need to stick to my guns.
* [[2017.05.26 -- Diet Log]]
** Summed.
* [[Frisson, Catharsis, & Woe]]
** I'm not sure I really want to keep this page. It doesn't seem useful. We'll see if it collects dust or what happens to it.
* [[2017.05.26 -- Link Log]]
** Edited.
* Needs a "New" section.
* Have a "Writing Log" place inside your Log page.
* Missed two Blessings Logs
* Your wiki looks much better
* Drop "Tiddly" from the top right hand corner.
* I learned from you here; I didn't realize you could hyperlink inside the "Title" at the top right corner.
* You should write an About page.
We need to write our compliments in advance. We should be training ourselves in the right way. We should have meaningful things to say to each other.

---

I love my wife. I'm sitting here, thinking about the 12 years we've been married together. It has been wonderful. Through thick and thin, girl. You've been there every step of the way. You held me when I needed you, and I held you when you needed me. It almost sounds dumb how obvious and simple it is, but I love that I get to trust you all the way down to the atomic level. You want the best for us. Despite the vortex around us, we lock together like brushed-steel beams crafted down to the micrometer. And, you know what, even when we disagree, I can see in your eyes that you just want us to be happy. No matter the conflict, you are committed. I won the lottery in being able to build a relationship brick by brick with you.

---

We need to be well-rounded. There is a giant hole in our abilities and lives. We aren't social enough. We must study human socialization, not just in our humanities, but in our sciences.  Human psychology and economics are invaluable tools to learn.<<ref "1">> But, just as importantly we need to practice it. This lacking holds us back. We shouldn't let it hold us back.

I've long had it in my head that the reason I didn't want to be wealthy was because I didn't trust wealthy people. I thought that I would be corrupted by money. I believe I have the moral tools to virtuously walk down that path as good as anyone. I can't be perfect, but I should do my best. Ultimately, I know I will fail in critical ways, but that doesn't mean I should give up. It's time to build something for ourselves.

I have long worried about socializing in similar respects. I don't want to use people in making money, but I also don't want to use people in how I socialize with them (often going hand in hand). But, I must take the risk of corruption, else I will be frozen into inaction.

I honestly believe that being able to speak well is important. Being able to write is difficult, but being able to speak on the spot very well, that is the skill that matters. I want my children to start training in public speaking, in the art of conversation, and people skills. I want it to become natural to them. I want them to be social natives. 

The fact is, we need to practice being social. We need to improve that skill. This is a muscle that we need to build up. There are different kinds of intelligences. Social intelligence must be studied and habituated. These are the skills that live on beyond technology. 

This is one of the major elements missing from their education and likely the key to unlocking their futures. They need to understand people and to be able to communicate with them. We must study humanity. We must study humans and human communications. I want that to be one of their courses, for real.

In a sense, we already do this through reading the great Human Conversation. We do this through teaching them the technical aspects of computing. Are you a good communicator? Do you understand humans well? Do you actually use it? That is the heart of their success.

In no particular order:

For my daughter, you need to study the tomes, the paradigms, the points of view. You must be voracious. You are a computer. See an ocean of data before you to compute. You can't do it all, so you need to do it wisely and cleverly. If you don't compute now, you will pay for it later. It's important to compute wisely, for each object, at each stage, in each degree, on all levels and dimensions.  

For my son, you must be fearless. This is hard for an autistic person. You and me buddy, we aren't built for this. We aren't the best social creatures in the world. There is a profound kindness in you. Direct that kindness toward yourself. Think of yourself as a profoundly complex lego or minecraft world that you are structuring. You build it up day by day. It won't happen overnight, but overtime, you will build up something great. Life just is a marshmallow test.

---

DO NOT FORGET

* Apology for our Family Meeting

I said I hate Christians this week. I'm sorry. My loving wife corrected me, and I didn't take the correction. She was kind, and I was not. I was wrong. I don't hate all Christians. I hate most of them, yes. There really are good Christians, just like there are good Muslims, and good Buddhists, etc. I lashed out in my claim. I am very sorry. People have different beliefs, and there are good people. Find the others. 

---

I see us in the future. I want us to work together. I want your goals and projects to be my goals and projects, and vice versa. I want us to click. I'm not good at designing or engineering gutteral social climates and interactions, but I think I can envision the rational structures between us.

---

I need to mentally let go of my parents to concentrate on the matters at hand. I can't resolve our incompatibilities. The injustices aren't going to be fixed. There's no way to bridge the gap. I need to accept it. We'll be like they were with their parents, in a way. I will say this though: my parents were wildly better to me than their parents were to them. That doesn't mean they've done it well or right though. I have to move past them. This is spilled milk. My initial letter last November, where I paused, it was correct. There simply wasn't an answer. I kept searching and searching, and there wasn't one. I have be okay with the fact that I'm a mortal, that I've done my best, and move on. It is time to stop being Straussian towards my parents in this respect. 

We each feel we've been as charitable as we can or are willing to given the structures around us, and that's that. I will be kind and empathic. I will give them the respect owed to strangers who happen to be so previously wildly integrated into my life. 

If you are reading this, Michael and Sherri, you are free to visit us as friends. If you are in serious need, I am part of your tribe, and I will do what I can to help you. You have earned that multiple times over. Thus, my handcrafted spiral cane transforms. The intention is ultimately the same, but the hermeneutic spiral takes us to a different place than we initally intended. It is not what we set out for. It is what is it is. Let us make the best of it.

---

Whenever I want to stop thinking about what I'm thinking about, I try to look at something else. This might be a good behavior, and it might not be. It depends on the context. I feel like I have to train the right habit in myself here.

Again and again, I find that I use Reddit as a drug in different ways. I find it to be a way to distract myself. When I don't want to think about something, I can turn to Reddit and immediately immerse myself in something else. I can drown out what was bothering me in a sea of distractions. Baptize me! Dunk me in that bath of pleasure chemicals, baby! Sometimes it really does break the thoughtloops for me. I worry, however, that I exit one thoughtloop only to enter another set of thoughtloops.

I need to more wisely control this. This is what executive functioning is like. 

How many times do I distract myself with a quick ctl+t into "redd.." and push the Enter key as my omnibar that astutely guesses what drug I'm looking to take a hit on? 

I don't think I could accept a macro that ctl+w's for me on the spot. This is the real addiction test. Can I choose to leave it? I need me 'dem tubes. 

It is awkward, to say the least, giving something so addictive to my children. I feel caught between a rock and a hard place, the lesser of two evils. We can't live without these drugs; we are dependent upon them for our flourishing. But I know I'm doing something with possibly grave consequences here. It is not clear to me that one can be eudaimonic in today's society without passing through these addictive fires. I think the important skill is being able to manage our addictions, to give shape to them, to controlling them, to making our dependencies work for us instead of the other way around.<<ref "2">> The fact is that we can't avoid using these addictive tools. We have to! It is our pragmatic plight, in a sense. How do we make sure that we remain autonomous about them? How can we be responsible users of tools and objects which quickly make us dependent upon them? The Truth is a drug too. We must wisely sculpt our experience. We have to pull out of the world for a breathe of fresh air. That is the goal of meditation. Try to be objective.

I realize, I write this on DCK. I'm literally taking a drug that allows me to at least marginally dissociate enough that I feel more objective. One might easily point and say I'm being hypocritical here. I think there is more to examine here than some addiction-justification though. This is the problem with pursuing the truth and life. Finding the golden mean is never easy, especially through so many dimensions. That is to say, you aren't just finding the golden mean on a single spectrum, you are trying to find golden means on multiple spectrums. Further, you need them to be compatibile with each other. You need to find the golden mean of the golden means. Oh, but then you find incompatibilities, contradictions, and impossibilities. You see the postmodern problematics. Practically-speaking, what must emerge is a metamodern mindset. We oscillate between the [[Fastmind]] and the [[Slowmind]]. We must 

---

I must remember that, like in my videos games, life has lots of easter eggs and opportunities that I need to look out for. When the door is open, walk through it. Admittedly, I have a hard time naming missed opportunities, and that is because I delude myself in such a way that they fall through the cracks of my mind. I don't see them. I don't develop the virtuous perception for picking out the salient features of the world.


---

I think my son should keep a journal for the cats. I want him to watch the cats. I want him to think about what they are thinking. I want him to develop theories of their minds. I want him to train that muscle. I want him to be able to feel as they do. I want him to be able to take on, see the world through their eyes, and mirror their perspectives. I need him to practice making inferences about the cats minds. I want him to see how long-term executive reasoning and planning shapes them, impacts their lives, programs them, and results in different networks of outcomes.

The cat is an abstraction, a microcosm, a case example, an experiment, and a friend for him to bond with, understand, empathize with, and appreciate. It is a way to train our autistic minds, I believe. Have pets helps us become the best us we can be.

---

Today, I feel like I understand burials more. I appreciate why we do them more than I did before. I mean, I don't care about what happens with my corpse, but I want people to be able to constructively mourn and move on with their lives. I want it to be meaningful. Our deaths are like a chain of beacons through the ages. Each cluster or family remembers its forefathers, etc., and that's what makes us feel resolution. I'm not saying anything new here, but I feel I'm stumbling upon the dusty old thought in a slightly better light.

---

I think it is very odd that my parents never had pets of their own. We had them briefly, but only because the kids wanted them. They never actually wanted pets. Perhaps they thought it dirty. Perhaps they found it inconvenient. They didn't adore animals (not that I think it's a good thing to be excessive in this respect). Psychopathy and pets, I tell ya'h'what. 

---

Story Time! I don't remember their names. I'll call them the Reds. They were an absurdly wealthy family. The father was a lawyer, and the mother I don't know what. They were quite powerful. They had influence in the DNC. 

---

I think my son has less of the appearance of someone who is depressed and more of someone who is ADHD. We should read about it. 

---

<<footnotes "1" "It must be said: Our goal is to not use people. We still have to understand them. Of course, with great power comes great responsibility.">>

<<footnotes "2" "What say you, Hegel? Is there a game theoretic dialectic between all objects in the world. This is the fabric of reality. The push and pull inside that determinate indeterminacy.">>
My farts smell oddly today. I hate to write it down, but I think the dairy may have been it. We'll see.

|customTable|k
|Food|Calories|h
|Dates|600|
|Gyros|1020|
|Burger|500|
|Bean Burger|400|
|Cherries|144|
|Total|2664|f
//We are completing this section late at night, and I think we are feeling a bit rushed.//

!! How has your health been this week?
* 1uxb0x
** Awesome, other than accidents like stubbing his toe. He feels clumsy.
* j3d1h
** Stuffy nose. Dots on her face. My son sings, "going through puberty, going through Puuuuuberty," and my wife responds "you're next." Lol
* k0sh3k
** Period. Felt like crap. Headaches and cramps. Storms didn't help. This one has lasted longer than the past 2. 
* h0p3
** I've been gettin' it out.

---
!! What happened last week? Have you been happy this past week? Why or why not?
* 1uxb0x
** Very happy. Did well in school. Lots of blessings.
* j3d1h
** Ditto on school. Very excited about swimming. 
* k0sh3k
** Work was good. Had a lot of fun with us. We played magic, went to the pool, watched GOT.
* h0p3
** I didn't get as much work done as I'd have liked, but it was productive. I've been worried about my job and how I'm going to spend the next 3 months. I am very pleased that we have a working dryer, finally!

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** You did a really good job on your schoolwork this week, and it was obvious that you were trying hard.
** Your magic decks were very good compared to mine.
** You had a mature frame of mind and approach to setting up the Cockatrice software, getting it working, researching and constructing your deck. It's a side of you I haven't seen. You're growing.
* j3d1h
** You played the game well. Good game.
** You had the integrity and will power to overcome your procrastination. That is not easy.
** You have helped every single person with their computers this week. You are patient teacher too.
* k0sh3k
** You haven't gotten mad at your computer. 
** I appreciate the effort you put into academically learning about autism and thinking about the welfare of our children. It makes you a good mother and good wife.
** I like when you try different things for cooking.
* h0p3
** I appreciate your getting us to install Cockatrice and play magic with us.
** I'm glad you share links with us. I actually use the links you send.
** Thank you for working with the kids on the kitchen, for fixing the dryer, and getting us to play magic.

---
!! What will you do this week?

* 1uxb0x
** Be happy about the dryer.
** Build a magic deck that produces T2 3/3's.
* j3d1h
** Be happy about the dryer.
** Finish her brother's art piece. 
** Win a game of magic in general.
* k0sh3k
** Be happy about the dryer.
** Cleaning paperwork files.
** Writing an hour each day in her wiki. ("Sure")
* h0p3
** Be happy about the dryer.
** Making sure she writes an hour each day in her wiki.
** Keeping up with everyone logs each day. Help everyone love themselves.
* Wrote quite a bit more this week.
* Only did half your Diet Logs for the week.
* Missing Friday's School Log
* It's aesthetically pleasing, particularly the code. Thank you for helping me with mine.
* "A place to ramble to myself without anyone giving me strange looks." looks ghetto. Up to you though.
* Thank you for the story river
* You posted nothing on the 22nd and 27th. 
* I think you should divide your work up into different sections. One for pictures, one for blogposts, one for analysis, etc.
* I love your footnotes.
* I laughed after I said that comment!
* Footnote aesthetics need some work, as well as scoping.
* Your introspection sucks. It's not even trying.
* Consider redoing your dates with a YYYY.MM.DD structure.
* Make it a point to write happy things on your blog each as well, not just the truth.
* http://reallifemag.com/the-domino-effect/
** "Apps encourage us not to trust ourselves, but to think of ourselves as a component of the machine. These tools simplify our lives on the condition that we simplify ourselves for them"
** "Abstracting away the reality of labor creates a permission structure in which you’re more comfortable asking for what you think you want. Perhaps what we want is just to avoid the reality of human contingencies, the reality of other people."
* https://www.nytimes.com/2017/05/27/style/yik-yak-bullying-mary-washington.html
** Disclaimer: I've not used this tool, I've only read about it second-hand.
** I am continually amazed at the number of people that don't understand you take the bad with the good in anonymized networks. I think it's important to develop not only good secops, but also to push hard into shaping your anonymous experience. We all have to take control of it together.
* https://www.nytimes.com/2017/05/24/opinion/why-saudi-women-are-literally-living-the-handmaids-tale.html
** Sexism is a live and well. Crake was right about the solution to our problem in some respects. The only way to end the misogyny embedded in the Redpill is to rewrite our genetic and memetic code from the ground up. Unfortunately, I don't trust anyone to do it.
* https://digg.com/video/why-do-americans-smile
** I rarely post videos. This was actually interesting. It's a classic cultural consideration. Primates showing their teeth, yo.
!! What natural gift would you most like to possess?

What counts as natural? What isn't natural? 

I assume possession is unconditional and permanent here, right?

Does it have to be something I know is possible, or could be on the outskirts of unknown possibility? Does it just need to be possibly possible for all I know? One of my modal logic professors found my locution of possible possibility to be fascinating. Perhaps I should explore it.

Some people have dozens (or more) orgasms a day without having to trigger it. That seems outstanding, amiright? What a gift!...unless it changed my executive functioning for the worse.

I would like to be a genius without autism born in the best of circumstances, having still met my wife and had my children as they are. I'd like to be smart enough to understand myself, other people, the world, and how to be happy. It is odd to wish I was a different person, but that would be the greatest of gifts.
* [[2017.05.27 -- Prompted Introspection Log]]
** Edited.
* [[2017.05.27 -- Wiki Review Log]]
** I'm going to nix the "Frisson, Catharsis, & Woe" section. The [[Cry Log]] will capture those acute moments.
* [[Highlander: Elves]]
** Added the pile of shit I've built in there. It is not tuned in the least. I literally threw it together to have anything to play today.
* [[2017.05.27 -- Homeschooling Log]]
** This week went a lot better.
* [[2017.05.27 -- Diet Log]]
** Summed
* [[2017.05.27 -- A.I.'s Innate Trade Secrecy]]
** Edited.
* [[2017.05.27 -- Cry Log]]
** I wish I had more to say about the book. I talked about it with my wife some. It is almost realistic fiction to me in many ways.
* [[2017.05.26 -- Cry Log]]
** Ditto.
* [[2017.05.21 -- Cry Log]]
** An interesting story none-the-less
* [[Cry Log]]
** We will see if this is worth keeping. For now, I think crying is an event worth noting.
|customTable|k
|Food|Calories|h
|Avocado Toast (yah)|335|
|Bacon+Egg Sandwich|500|
|Hot dogs|750|
|Cherries|77|
|Bacon|200|
|Hummus, Olives, Chips|400|
|Total|2262|f
* https://www.bloomberg.com/view/articles/2017-05-22/an-mba-is-not-all-it-should-be
** It kills me inside to agree with Bloomberg. That said, I think their reasons for this are not pure. They say this when it suits them.
* http://ppladdressbook.org/
** CLI tools abound.
* http://wspa.com/2017/05/26/woman-travels-country-paying-drug-addicts-to-get-vasectomies-tubes-tied/
** I sometimes see liberals against this. Perhaps they have eugenics, right to reproduction, and privilege considerations in mind. They have missed the boat. This is critically valuable. This woman is doing good work.
** Conversely, I know conservatives opposed to this because they are against birth control or even worse, they favor having a mass proletariat class to imprison, enslave, and hate.
* http://www.psypost.org/2017/05/study-links-facebook-use-reduced-gray-matter-volume-nucleus-accumbens-49028
** Now if only we really knew what it meant.
* https://brohrer.github.io/how_bayesian_inference_works.html
** More Bayesian theory explanation. 
* http://kk.org/thetechnium/better-than-fre/
** Absolute MUST Read! This is a very clean explanation of something that was fuzzy to me for too long!
** Maybe I've misunderstood the argument here. I think there is something left out of this list, but I can't quite put my finger on it.
*** Consider the difference between Private and Live World of Warcraft servers. It's tremendously different in content, atmosphere, community, uptime, etc. Perhaps this fits somewhere on or between multiple categories he has given us. 
* http://www.thedailybeast.com/articles/2017/04/30/when-doctors-can-t-afford-to-feel
** Interesting read. I like seeing philosophy at work.
* https://www.theguardian.com/technology/2017/may/26/google-gender-discrimination-case-salary-records
** Don't buy that bullshit.
* https://www.reddit.com/r/privacy/comments/6dv10x/if_your_data_is_properly_encrypted_is_their_any/
** I see this question asked all the time. People are giving better answers to it, thankfully.
* https://www.nationaleconomicseditorial.com/2017/05/28/american-house-prices/
** Preaching to the confirmation biased choir.
* https://www.salon.com/2017/05/27/wash-post-didnt-disclose-that-writer-who-penned-positive-piece-about-trumps-saudi-trip-is-paid-by-saudi-government_partner/
** This is not the first time.
* http://www.marketwatch.com/story/bill-gates-updates-the-plastics-advice-from-the-graduate-for-2017-2017-05-16
** What do these two have to gain by telling us these truths? It reminds me of Warren Buffet's choice to say the truth about capitalism from time to time. They have something to gain by peddling the truth, as they normally would not. What is it?
* https://theconversation.com/food-as-medicine-your-brain-really-does-want-you-to-eat-more-veggies-74685
** Causation or correlation?
* http://billmoyers.com/story/donald-trump-hungry-seniors-drop-dead/
** I'd love to know how many of those seniors elected to starve themselves. My empathy for the elderly wanes. I feel like they have made their beds. I empathize with those who didn't, who had no choice, who fought for justice and still lost. The rest, not so much.
* https://www.nytimes.com/2017/05/26/us/politics/united-states-refugees-trump.html?
** Fascinating
* https://github.com/01org/cldnn
** Intel's Compute Library for Deep Neural Networks (clDNN) could be huge.
* https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/
** Oldy but goody
* https://arxiv.org/pdf/1703.05713.pdf
** I hope CScientists will eventually find the answers. Help me Obiwan, you're my only hope!
* https://www.ut.ee/hortussemioticus/6_2010/rattasepp.html
** Biologists doing metaphysics
* http://metamoderna.org/from-premodern-to-metamodern-mind-a-brief-history-of-human-evolution
** Yet again an amazing article. This deserves more attention than it is getting, I think. It very well may be the next kind of metanarrative after postmodernism. At the very least, it gives an excellent mile-high overview of the premodern to postmodern moves.
** Continental Intersubjectivity Verification (in its Modern, Postmodern, and perhaps even Metamodern versions) and Analytic Neo-Kantian Reflective Equilibrium are pointing to the same thing, as I thought many times.
** The anti-scientific view may be correct in many respects, although I think we can't force all of these moral and metaphysical issues on them. There are philosophical undercurrents here as well that should be fleshed out, particularly in analytic philosophy.
** This is not how I passed through the postmodern fire exactly. But, I'm a weird one. I thought modernism could hold onto premodern thought more than it did. And postmodernism actually didn't detract from my moves to a point. 
** I think they've attributed capitalism egoism to modernism too strongly. It fits the industrialization narrative, but there are components which actually are more postmodern justifications, not modern ones, imho. This is where continental and analytic traditions drift apart in their understand of the Great Conversation in some respects, imho. I see Heidegger's postmodern, anti-science moves as still indirectly (and ironically) fueling scientism and some of things the author attributes to modern thought.
** This metamodern critique of postmodernism seems only partially correct. The problem is that there might not be any answers. The metamodern has to assume hope, must be religious even, about escaping postmodern criticism. Own up to your faith here, hypocrite. Inefficacy of fighting against capitalism is hardly an argument against socialist positions either. You've purposely misunderstood the nature of psychopathy and egoism here. 
*** Criticism precedes construction, but just because someone doesn't have the answer doesn't mean their criticism is wrong. It just means they don't have a complete "drop in replacement" or "fix" to the problem they have pointed out.
*** I await your "Metamodern" solution. It clearly isn't working yet either. 
*** Ultimately, all you have is [[h0p3]], my friend. You morally expect us to succeed, but that doesn't mean you should realistically predict it. It is a practical matter than we ignore our practical predictions, in a sense.
** Speaking of privilege, you have no room to talk.
*** That you think GW Bush and Putin aren't modern-appearing expressions of postmodernism leaves me questioning whether or not you really understand the problem here.
** Unfortunately, I must ask for clarification on ontologies here. I worry you are trying to have your cake and eat it too, but with a sleight of hand. Your thesis of commensurability, again, is a kind of faith, a hope, a reason to keep trying. 
** The claim that we are "obliged to try to reconstruct" has no grounds other than faith. Take up the mantle, hypocrite, and then we'll move forwards. The hermeneutic circle/spiral of the Great Conversation does not require we move in this direction. It is something we simply will because we want to, because it is practical, because it is the hopeful thing to do.
* https://i.redd.it/lgaxap0fhi0z.jpg
** Zing, asshole!
* http://nymag.com/selectall/2017/05/the-online-radicalization-were-not-talking-about.html
** One of the few articles I have ever encountered which takes the time to distinguish different "Redpillers." I usually see a very poorly researched and empathized perspective, a strawman. This was closer, but it still missed the mark (as usual). Admittedly, I believe I know what the One True Redpill is, and I'm waiting to see if people finally figure it out. I'm not holding my breath, as it is the anti-thesis of much of the Humanities and many religious (even those who call themselves secular humanists are being religious) perspectives. I think it's such a tough pill to swallow that it becomes a difficult pill to even see in the first place. Few can empathize long enough with the various Redpill groups to see what they really have in common. They all realize that humans are selfish, egoistic creatures. They might not be good at applying this principle (some are hideously retarded about it even), but you can see the kernel of truth hiding in their bullshit. It shines forth brightly like a gem. Do you hear that Kant? A gem. Pay attention, because your definition of "Reason" implodes around it.
* http://danwang.co/why-so-few-computer-science-majors/?idk
** This is the million dollar question I'm trying to answer for my daughter. I do not know.
* https://www.reddit.com/r/explainlikeimfive/comments/6e3j0g/eli5_how_do_my_google_searches_on_one_device_show/
** Oh, sweet summer child, it's about to get much worse.
Memorial Day! This was a very extended weekend. 
!! I feel most energized when…

I'm not entirely sure what is meant by energized here. I think it has to be more than being awake and aware in a strong way. 

Can I be energized for something I don't want to do or don't enjoy? I would get an adrenaline rush during a dangerous moment, and that is definitely energizing in a sense. I despise danger and adrenaline rushes though, yet I "feel" energized in a strong sense.

Alternatively, I can be "pumped" to do something, extremely excited to engage in some activity. Is it simply about being excited? Is it just that which I desperately love to do and want to do? 

What is the duration of this energy? Orgasms are fairly energizing. Drugs can be energizing. Are you asking me what gets me off?

What about spoons (as my wife calls them)? That is, people and socializing are draining to me, except for very particular conversations which completely hold my attention, fascinate me, make me want more, etc.

Note, what takes me out of my drained state into The Calm or above for "energy" (whatever that means) may energize me to a greater degree than that which only takes me from The Calm to a state above (even if this is a higher state than the former). So, are we talking about the total proportion of energy gained or simply that which maximizes the state of energy (which is conditional upon having been fairly energized in the first place)?

I'd like to also point out that I have minor manic/depressive tendencies. Energized isn't always a good thing, especially when it means I can't sleep or focus on what really matters.

Lastly, is this something which I can regularly achieve, or does it include a scope of contexts which are often rare (perhaps even 1-time events)? 

Surely you can see that I do not know what is meant by this question, thus I must define it by inspecting its purpose.

I think this is about understanding how to control my moods, how to inspire myself, how to see the blessings in my life, and how to make myself feel happier. It is about being energized in the right way, at the right time, for the right reasons, and so on and so forth. But, then, I fear we have no content. 


* [[2017.05.28 -- Prompted Introspection Log]]
** Edited.
* [[2017.05.28 -- Diet Log]]
** Summed.
* [[2017.05.28 -- Wiki Review Log]]
** I ended up editing and structuring my elves list.
* [[2017.05.28 -- Family Log]]
** Last week was a good week.
* [[2017.05.28 -- DCK Meditation]]
** Edited.
* [[2017.05.28 -- k0sh3k's Wiki Log]]
** I'm hoping she will be a good role model here. The kids need must see we both care about this project.
* [[2017.05.28 -- 1uxb0x's Wiki Log]]
** I'm pleased to see he's keeping up with his logs and has more structure. This is a great start.
* [[2017.05.28 -- j3d1h's Wiki Log]]
** She is writing more. I love seeing it fill up drop by drop.
* [[Evolving Words, Buzz, Corruptions, and Neologisms]]
** Edited.
* [[2017.05.28 -- Link Log]]
** Short, but I like having the structure. I want to reiterate that my wife was correct about this, again.
|customTable|k
|Food|Calories|h
|Dates|600|
|Cherries|77|
|Partial Wrap|150|
|Apple|100|
|Mandarins|105|
|Pear|100|
|Chili|750|
|Cornbread|400|
|Chocolate|125|
|Gatorade|220|
|Total|2627|f
* https://www.quora.com/What-are-some-uncommon-tricks-used-to-protect-software-from-reverse-engineering
** A fun read. 
* https://www.desmogblog.com/2017/05/30/rex-tillerson-exxon-saudi-arabia-trump-visit-deal
** Tillerson abusing his power, again.
* https://www.law.cornell.edu/supremecourt/text/15-1189
** Our courts are too slow. IP-holder's will subvert everything through a winner take all economy long before the judiciary could ever start working towards sanity.
* https://www.fastcodesign.com/90126569/the-rise-of-autocomplete-culture
** It is worrying. Although, I also worry this is may be worry over nothing. It has a wide range of possible outcomes.
* ADHD
** https://www.youtube.com/watch?v=_tpB-B8BXk0
** https://www.youtube.com/watch?v=JowPOqRmxNs&app=desktop
* https://www.clouddash.net/articles/dark-ai
** Some good points, but also misses large swathes of the dangers of AI, imho.
Today was a great day. I thought we were starting our pipefitting class up again, but we didn't. I saw TJ; so he's back. We talked for a while. He got paid to weld, even though he really can't weld. There is a reasonable chance I may do some welding for money, I take it. 

So, since I didn't have pipefitting today, I welded. Dale wasn't there this morning (someone subbed for the first few hours), so I decided to try my hand at three projects I've never done before. I did a vertical weld, an overhead weld (I failed the first one, couldn't repair it without more grind work than I wanted to do, so I restarted), and a horizontal T-joint fillet. I then brought those 3 and my horizontal weld to Dale at the end of the day. He said they were very good, and he explained where I went wrong (if I didn't point it out to him beforehand). He had me go back over the T-joint with 1/8 7018's (at 115ish heat). I had used the 3/32's, which I didn't know weren't the best choice for the project (no one corrected me). The overhead was very difficult, but it turned out decently. A lot of students walked into my booth over the course of the day, and I talked with others for pointers. It is good to hear from many perspectives; I'm grateful for the opportunity.

Dale and I talked about my goals (while the millwright teacher [who is always over there] and several students sat listening to us; a common occurrence when I speak with Dale). I explained that I have given thought to it, and I realized that I won't be able to spend much time in this class (even though I want to; I think it would be very good for my future). I really need to get a job now though. I explained that I just wanted to at least get my feet wet with everything. I did not explain, but have heard from many students that my work is passable (and sometimes great), including people who have been welding for years. Thus, I think even "getting my feet wet" on these kinds of projects ultimately gives me a barometer and comfort zone to know what I'm willing to say I could possibly do in an interview. I'm willing to take on-the-job certs for some of these welds.

At the moment, I can only do structural welds. I can't pipeweld, which is where the real money is, and it is the most closely associated with pipefitting in the first place. I do want to try pipe-welding, although my teacher thinks I won't really be ready to touch it without at least another solid month under my belt (which isn't going to happen). I'm going to try a few pipewelds anyways. I want to round my stickwelding out at least. TIG is an entirely different beast, and I may never have the pleasure to learn. That's okay. I'll take what I can get.

Speaking of jobs, I'm just now nearing the point where I would pass a drugtest (minus extensive panels for DCK). I haven't had cannabis in 40 days, 20 more puts me in a comfortable zone. Also, I was offered cannabis from Kevin today, since I gave him my cannabutter recipe to help him make some for his dying mom (she is apparently in a lot of pain and doesn't want to use opioids). No go, obviously; he wanted to know if he did it right (I was going to help him make it yesterday, but completely forgot). I'm in the home stretch here before the real game. I have to say, I'm proud of my ability to stabilize myself with this wiki. I've worked at it. I'm glad I've been talking to myself. You rock, dude. =)

I should probably rework my resume at this point. The last time I modified it, I just put down I was in school for pipefitting. I have specific skills which I feel comfortable claiming on a resume at this point. I will need it.
!! What would your childhood self love about your current self?

* My family and the wonderful life I have with them. I feel more connected now. 
* My freedom, with many kinds of mobility and access I didn't have before.
* Understanding myself and the world better. So many problems would have been resolved this way.
* My sexuality and sexual life. It's been wonderful. 
* That I still love computers, continue to study them. I'd have loved my computers. 
* That I still love to think, particularly about philosophy and ethics (which I did at the time without knowing the name for it).
* [[2017.05.29 -- Prompted Introspection Log]]
** Edited.
* [[2017.05.29 -- Pipefitting Log]]
** It was a wonderful weekend. 
* [[2017.05.29 -- Wiki Review Log]]
** I like how keeping logs allows me to see the positive aspects of my life more clearly.
* [[Snakes.dec]]
** Building terrible decks for my family members.
* [[2017.05.29 -- Link Log]]
** Edited.
* [[2017.05.29 -- Diet Log]]
** Summed.
|customTable|k
|Food|Calories|h
|Dates|330|
|Mandarins|105|
|Apple|100|
|Pears|200|
|Chili|250|
|Cornbread|400|
|Pork Chop|240|
|Potatoes and Gravy|500|
|PB & English Muffin|300|
|Bacon|220|
|Apple Strudel|300|
|Total|2945|f
* https://www.youtube.com/watch?v=sweN8d4_MUg
** CRISPR is all the buzz. Gattaca here we come.
* https://www.theguardian.com/inequality/2017/may/31/technology-is-making-the-world-more-unequal-only-technology-can-fix-this-cory-doctorow
** Doctorow is often correct
* http://nautil.us/issue/48/chaos/are-you-a-self_interrupter
** Evolution did not prepare us for this.
* https://github.com/mdipierro/nlib
** For my daughter
* KYS
** https://www.washingtonpost.com/politics/how-congress-dismantled-federal-internet-privacy-rules/2017/05/29/7ad06e14-2f5b-11e7-8674-437ddb6e813e_story.html
** http://danwang.co/why-is-peter-thiel-pessimistic-about-technological-innovation/
*** Let's be clear: Thiel uses technology for incredible evil.
** https://www.independent.co.uk/news/world/americas/jared-kushner-donald-trump-lied-base-stupid-voters-supporters-president-son-in-law-white-house-a7764791.html
* http://www.politico.com/magazine/story/2017/05/30/rick-wartzman-book-excerpt-automation-donald-trump-215207
** I am fairly educated in several fields, and I am scared for myself. Forgive my skepticism, but I think the average adult is completely fucked.
* http://www.economist.com/news/finance-and-economics/21721648-trustbusters-might-have-fight-algorithms-algorithms-price-bots-can-collude
** Responsibility is pretty obvious, despite their attempts to claim otherwise.
* https://www.wired.com/2017/05/microsoft-right-need-digital-geneva-convention/all/1
** I don't trust M$' intentions for shit. 
* http://www.npr.org/sections/thetwo-way/2017/05/31/530929307/ohio-sues-5-major-drug-companies-for-fueling-opioid-epidemic
** More clueless people with the wrong approach to the war on drugs. Don't get me wrong, I wouldn't touch opiates until I was literally on my death bed. 
* https://www.bloomberg.com/view/articles/2017-05-31/the-u-s-has-forgotten-how-to-do-infrastructure
** Two sets of commentary worth looking at as well:
*** https://news.ycombinator.com/item?id=14453406
*** https://www.reddit.com/r/Economics/comments/6efisp/the_us_has_forgotten_how_to_do_infrastructure_the/
* http://www.kpcb.com/internet-trends
** I love to see analyses of internet use around the world.
We were put into torque class we were supposed to attend weeks ago. We came in a day later. The teacher rushed the content from yesterday thankfully. Below are my notes. I had to take tests at the end of the day for certifications.

This class is funded by Snap-on. It is one large advertisement. Even the walls are plastered in Snap-on advertisements, in a government owned facility. The teacher is constantly selling to us. We could have learned this in probably 2 hours. The goal is to get the students accustomed to Snap-on tools. 

Mechanical Torque:

* Length x Force = Torque
* The ASME accuracy is from 20-100% of the the full scale.
* Prior to use, set the wrench to 50% of the full scale and exercise the wrench at least three times in both directions.
* The minimum recommended cycle for recalibration is one year.
* Formula
** TA = Torque Applied (the value you want to pull)
** TW = ?? pull wrench set ??
** (TA x L) / L + Adapter = TW

* Always store wrench at lowest setting (not zero)

* Verify the needle setting is at zero on Dial type torque wrenches before use. 

I need to ask my brother if he uses a torque wrench/screwdriver for his electrical work. 



ID a Standard (American) bolt:

* Bolts with three straight lines indicate you are working on a standard bolt 
** Take the number of lines and add 2 to find the Grade
*** e.g. 3 lines would be grade 5
** Most common grades: 2, 5, and 8
** The higher the grade, the stronger the steel.

* e.g. 1/4 x 20 x 2, Grade 5
** First number is Diameter of bolt measured at the shank
** Second number is the number of threads per inch (TPI), thread pitch
** Third number is the Length of the bolt, from the bottom of the head to the bottom of the bolt
*** Don't include the width of the head

ID a standard (american) nut:

* A standard nut has grades. 
** If you have two marks with a point between then: grade 5
** If you have two marks side by side on points, then: grade 8
** Grade 2 has no marks

Metric bolt:

* e.g. M8 x 1.25 x 30, Grade 8.8
** First number, M8 is diameter in MM on the shank
** Second number, thread pitch, MM from crest to crest. Measures from the from the top of one thread to the top the next thread.
** Third number, length in millimeters

** They write the grade on the bolt
* If you have two numbers on the bolt:
** First number is tensile strength MPA (megapascals)
** Second number is % of tensile strength, gives you the yield point
*** Yield point = where a bolt stretches beyond its elasticity

Metric Nut:

* If you see a number 8, then it is metric grade 8 bolt. 

There are 4 phases of fastening:

* Run-down
** The free running of the nut down the bolt
* Alignment
** When we get to components to act as one solid piece
* Elastic
** Where the bolt stretches and snaps back to maintain its size
* Plastic
** Do not do; this is the permanent deformation of a bolt.

90/10 rule:

* 90 percent of all pressure applied is to overcome friction
* 10 percent of all pressure applied is to stretch the bolt


This is an open book test, rofl.

Site:

* nc3certs.com
** user: my email
** mypassword: password1 (jesus christ)

The first test is torque theory test. Click on the eyeball.

Page numbers to reference during the test:

* 10-15
* 17-24 (definitions)
* 26-27 (markings)
* 30 (markings)
** bolt is a spring
* 43 
** torque is expressed in length and weight units
*** length x force = torque
* 50-51
* 53
* 57-58

Anything that increases friction reduces torque:

* Lubrications decreases friction, increases clamping force
* Rust does the opposite







!! What’s your secret desire?

Let me first say, this comes off as a hilariously bad question to try and answer on a public facing journal.

I suppose we should define desire here. But, also secret from whom? I don't have the will power today to explore these topics, and I know I don't have answers to my worries. Rest assured, they are far from solved problems.

Even for standard interpretations of these words, one of the problems here is that I tend not to be very secretive about what I desire. If I want something, I'm prone to just say it, unless it would hurt someone's feeling to say it (but, even then, honesty is sometimes necessary). It can be very difficult for me to feel embarrassed, particularly when I find a barring social convention to be without rational merit. 

I have been called "too honest" by many people in my life. I'm rude and gross to many people. My brutal honesty and willingness to violate social conventions makes intentional secrets for me rare to begin with, regardless of whether or not they are a desire, a belief, a feeling, or something else entirely. I feel like I'm torn, lacking integrity, and unable to be myself when I have to hold a secret or silence myself.

Ugh, I can't really escape my initial worries. Secrecy from whom? There are plenty of things I would tell my family that I wouldn't dare utter to the average person. That kind of information is secretive in a way, right? 

Can I keep a secret from myself? Self-deception is a very paradoxical problem. I don't want to do so. 

Alright, I want to have some kind of resolving answer to this question. I don't enjoy leaving them open-ended and unsatisfactorily unanswered.

Okay, what about something I desire which I've never said to anyone directly (even though there are people who may easily guess it, or would know it already in an indirect way)? 

I have never fucked a fruit before. I've used plenty of sex toys. I secretly desire to fuck a fruit or vegetable. That's like a mini-[[Bucketlist]] item, I guess.

* [[2017.05.30 -- Prompted Introspection Log]]
** This one was really brief.
* [[2017.05.30 -- Wiki Review Log]]
** Nothing to say.
* [[2017.05.30 -- Diet Log]]
** Summed. Was it worth it?
* [[2017.05.30 -- Link Log]]
** I will continue to look into ADHD. The executive functioning problems associated with it and the cluster of spectrum disorders related to it are interesting.
* [[Highlander: Affinity]]
** Edited.
* [[Highlander: Reanimator]]
** I have been pumping decks out.
* [[Highlander: Humans]]
** Edited.
* [[2017.05.30 -- Pipefitting Log]]
** It's time to edit that resume.
!! Log:

* [[2017.06.12 -- Carpe Diem Log]]
* [[2017.06.13 -- Carpe Diem Log]]
* [[2017.06.14 -- Carpe Diem Log]]
* [[2017.06.15 -- Carpe Diem Log]]
* [[2017.06.16 -- Carpe Diem Log]]
* [[2017.06.17 -- Carpe Diem Log]]
* [[2017.06.18 -- Carpe Diem Log]]
* [[2017.06.19 -- Carpe Diem Log]]
* [[2017.06.20 -- Carpe Diem Log]]
* [[2017.06.21 -- Carpe Diem Log]]
* [[2017.06.22 -- Carpe Diem Log]]
* [[2017.06.23 -- Carpe Diem Log]]
* [[2017.06.24 -- Carpe Diem Log]]
* [[2017.06.25 -- Carpe Diem Log]]
* [[2017.06.26 -- Carpe Diem Log]]
* [[2017.06.27 -- Carpe Diem Log]]
* [[2017.06.28 -- Carpe Diem Log]]
* [[2017.06.29 -- Carpe Diem Log]]
* [[2017.06.30 -- Carpe Diem Log]]

!! Audit:

* This is my first month writing this log. I decided that my other logs were too specific, and in a way, I needed basic/standard journal/diary information.
* I tended to write about what made my day great, worth living, and what I was most grateful for. I really felt blessed writing many of these.
* Ideally, this log should be written at the end of the night, but I often found that I would write this log somewhere in the evening and project into the future/plan, the rest of my evening. Most of the time, I write this log only after the work of the day has been done and I have time to chillax. I think this is the best method for now.
* I had a lot of sex this month. Yay!
** I also had a lot of fireman time. Yay!
* It was clearly a very busy month for me. I accomplished quite a bit, and while I felt uncertain, it seemed work out well.
** Take risks! Manage your anxiety!
!! Log: 

* [[2017.06.04 -- DCK Meditation]]
* [[2017.06.11 -- DCK Meditation]]
* [[2017.06.18 -- DCK Meditation]]
* [[2017.06.25 -- DCK Meditation]]

!! Audit:

* This was the first month in which I've consistently taken DCK every week. 
* My meditations are clearer and more developed this month than they ever have been.
* It is clear I've spent more time reflecting upon them.
* While DCK seems to even me out and offer serious moments of reflection, I'm not sure what counts as my next stage of progress with it. It certainly provides me ample opportunities to think and make progress on its own, but I'm wondering how to improve the process itself. 
* DCK Meditations often seem to set the tone for the week.
* I feel less hindered and more open in them than I otherwise would.
!! Log:

* [[2017.06.01 -- Diet Log]]
* [[2017.06.02 -- Diet Log]]
* [[2017.06.03 -- Diet Log]]
* [[2017.06.04 -- Diet Log]]
* [[2017.06.05 -- Diet Log]]
* [[2017.06.06 -- Diet Log]]
* [[2017.06.07 -- Diet Log]]
* [[2017.06.08 -- Diet Log]]
* [[2017.06.09 -- Diet Log]]
* [[2017.06.10 -- Diet Log]]
* [[2017.06.11 -- Diet Log]]
* [[2017.06.12 -- Diet Log]]
* [[2017.06.13 -- Diet Log]]
* [[2017.06.14 -- Diet Log]]
* [[2017.06.15 -- Diet Log]]
* [[2017.06.16 -- Diet Log]]
* [[2017.06.17 -- Diet Log]]
* [[2017.06.18 -- Diet Log]]
* [[2017.06.19 -- Diet Log]]
* [[2017.06.20 -- Diet Log]]
* [[2017.06.21 -- Diet Log]]
* [[2017.06.22 -- Diet Log]]
* [[2017.06.23 -- Diet Log]]
* [[2017.06.24 -- Diet Log]]
* [[2017.06.25 -- Diet Log]]
* [[2017.06.26 -- Diet Log]]
* [[2017.06.27 -- Diet Log]]
* [[2017.06.28 -- Diet Log]]
* [[2017.06.29 -- Diet Log]]
* [[2017.06.30 -- Diet Log]]

!! Review:

* Average calories per day 2262.5.
* I did average more calories per day. That's probably a solid pound difference.
!! Log:

* [[2017.06.04 -- Family Log]]
* [[2017.06.11 -- Family Log]]
* [[2017.06.18 -- Family Log]]
* [[2017.06.25 -- Family Log]]

!! Audit:

* Everquest, finding a job, and getting the kids to do their work were major movements and difficulties this month for us.
* Allergies were flaring up again.
* The compliments section was wonderful and useful to us.
* We've been looking forward to these more often.
* Having visitors and significant shifts in our schedules really makes this difficult. I hope, in time, we become more flexible and adept at this.
* This will more even more difficult to do as I travel, I assume. It's important that we do it well.
!! Log:

* [[2017.06.05 -- h0p3's Log]]
* [[2017.06.11 -- h0p3's Log]]
* [[2017.06.16 -- h0p3's Log]]
* [[2017.06.23 -- h0p3's Log]]
* [[2017.06.27 -- h0p3's Log]]

!! Audit: 

* My family is a drug. It is clear. I am dependent upon them in various ways.
* I am consistently obsessed with understanding my freedom within the drug-based framework. 
* There were fewer happier h0p3's logs this time, but there were fewer logs in any case, period. I feel like my other logs do quite a bit of my thinking for me. Is this a good thing?
** It has gotten to the point that I almost don't want to a monthly audit, except that I should audit this.
!! Log:

* [[2017.06.01 -- Link Log]]
* [[2017.06.02 -- Link Log]]
* [[2017.06.03 -- Link Log]]
* [[2017.06.04 -- Link Log]]
* [[2017.06.06 -- Link Log]]
* [[2017.06.08 -- Link Log]]
* [[2017.06.11 -- Link Log]]
* [[2017.06.12 -- Link Log]]
* [[2017.06.15 -- Link Log]]
* [[2017.06.17 -- Link Log]]
* [[2017.06.19 -- Link Log]]
* [[2017.06.20 -- Link Log]]
* [[2017.06.21 -- Link Log]]
* [[2017.06.22 -- Link Log]]
* [[2017.06.24 -- Link Log]]
* [[2017.06.25 -- Link Log]]
* [[2017.06.27 -- Link Log]]
* [[2017.06.29 -- Link Log]]

!! Audit:

* I've been posting less consistently, but I've also not had as much time to surf, I believe. Or, when I do surf, I've not had the energy to go for as much intellectual reading, or so it feels.
* I figured Bloomberg out.
* It's clear that I allow these to build up in my browser. I think this is fine. It allows me to backburner and table content, to digest, and to think about what it is that I'll be putting in these link logs. 
** The downside is that it doesn't actually follow my reading patterns in a synchronized manner, although it is close enough, right?
* Nautil.us is amazing. 
!! Log:

* [[2017.06.01 -- Pipefitting Log]]
* [[2017.06.02 -- Pipefitting Log]]
* [[2017.06.05 -- Pipefitting Log]]
* [[2017.06.06 -- Pipefitting Log]]
* [[2017.06.07 -- Pipefitting Log]]
* [[2017.06.08 -- Pipefitting Log]]
* [[2017.06.09 -- Pipefitting Log]]
* [[2017.06.10 -- Pipefitting Log]]
* [[2017.06.12 -- Pipefitting Log]]
* [[2017.06.13 -- Pipefitting Log]]
* [[2017.06.14 -- Pipefitting Log]]
* [[2017.06.15 -- Pipefitting Log]]
* [[2017.06.16 -- Pipefitting Log]]
* [[2017.06.17 -- Pipefitting Log]]
* [[2017.06.19 -- Pipefitting Log]]
* [[2017.06.20 -- Pipefitting Log]]
* [[2017.06.21 -- Pipefitting Log]]
* [[2017.06.22 -- Pipefitting Log]]
* [[2017.06.23 -- Pipefitting Log]]
* [[2017.06.24 -- Pipefitting Log]]
* [[2017.06.26 -- Pipefitting Log]]
* [[2017.06.27 -- Pipefitting Log]]
* [[2017.06.28 -- Pipefitting Log]]
* [[2017.06.29 -- Pipefitting Log]]
* [[2017.06.30 -- Pipefitting Log]]

!! Audit:

* I'm glad I quit Cannabis a month in advance of my initial plan. It is paying off. I knew that I was running out of content, and I knew I would likely need to generate field experience earlier than I thought. This was a wise move. Good job!
* I shot for $15 and hour, I did even better (although, perhaps not much better after travel expenses). I will continue to look for a job at TEC.
* I didn't have interview questions prepared; it was all of the sudden. This is not an industry which seems to have the standard kind of application process. I suppose that can be a good thing for me. I assume it only becomes more professionally normalized the higher up you go the foodchain.
* I've avoided the co-op entirely, it appears. I'm just going to graduate 6 months early, rofl. Noice! 
* I did not finish my NCCER certification; although, I will have finished the 3rd book (assuming I don't fail this last test; although, I've never failed one before). I will find out if I can. It may or may not be useful, except as a blip on my resume. The union doesn't seem to care, but others might. I assume by the time it matters, I may be in much better shape. It really depends on how the next 2-3 years go.
* We never did have our rigging seminar. My teacher misunderstood what was happening. It was just a Boilermaker's advertisement. I should still consider the Boilermaker's union. It would be longer-term travel, if I understand. That isn't what I want.
* It is not clear that my local union is really working out. The last time I saw Randy, when we were with others, he merely introduced me as someone hoping to join. I don't know exactly why. Is it because that is what I officially am, and he needs to keep up appearances, or is it because he literally means just that? It could be either.
* My concerns about the collusion/relationship considerations between my teacher and Randy have waned somewhat. It became clearer over the course of this month that my teacher was looking for other non-union options for me because the union didn't seem to be working out so nicely. I'm happy to see that he understands where I am coming from to some extent.
* The printed resumes were nearly useless. Even what I took to be more analogue industries are digitized in this respect. They were only useful in handing off to a couple people in the school. It wasn't clear these people actually helped me. I think they were just curious about the information, trying to understand their star student or something. 
* It has been a ride with AB&T. Once my schedule went off the tracks, it really went off the tracks. I'm hoping all of this works out. It is a crucial injection of capital into my future. Regardless of my socialist concerns about the nature of AB&T, I am at least grateful that they've helped me. 
* I did not smash this book as quickly as I thought I would. I should take that as a lesson. I probably will need to re-read this content. There is a lot to know. There is a difference between being able to cram and pass a test and having stored it in my long-term memory, and it is an even longer jump into having integrated it into the virtue-theoretic practices and applications of that knowledge.
* I never did finish the simulator. Lol. I assume I'm going to get a shit ton of practice at my new job. I hope I'm ready.
* There are several students I'll be leaving behind. I don't think I really care about my connections with them. TJ and Chris are the most likely to succeed. I have Chris' number, and TJ can be contacted through the union. The other students, if I ever really needed to reach them, could perhaps be contacted through my teacher. I don't think that will ever happen. I think only a few legitimate pipefitters really come out of that class each year. I hate to say it, but a lot of them are just losers (which may not be their fault).
* I am worried about my new job for a lot of reasons and in different ways. One thing I'm worried about is that I'm an imposter. That I won't know until I get into the field. That said, my teacher feels confident, and they liked my simulator work. I think I might succeed without too many problems. More worryingly, I know that I'm going to make a ton of mistakes, and I worry that I won't be able to fix them effectively, in a timely manner, or that it may cost me my job. That said, I'll have graduated, so it's okay.
* It only took me a couple weeks to actually find a job. I should be willing to job hob for now until I find the outfit that I really like. This is a low-risk, high-reward time. Anything is better than nothing at the moment, but I shouldn't be afraid to lose my job right now. I should continue to push for the best opportunities. It is important that I am not held back my employer, particularly here. Eventually, having built the right social capital and connections will be so important that I can't simply hop around. I'm not there yet though.
* I never did finish my alignment dogs. This wasn't exactly my fault. I lacked the threaded rods and nuts (or CNC'd taps) to make finish them off. Hopefully, I'll find an opportunity to finish them at my new job. It sounds like we are working with fairly small pipe. I may never actually use them at this job.
* My teacher started spending more time in the shop this month. I'm not sure I understand why. I can tell you that the shop was fairly barren. There are so few students left, and they spend too much time in the computer lab and studying the book. I think I was lucky to get as much shop time as I did (which, of course, could not have been made possible without me pushing for shop time). 
* I need to keep an open mind and be humble at my new position. I can't act like I know nothing though. I do need to build up rep/respect, and I need to be taken seriously enough to actually push my limits. There will be a feeling out process. 
* Twice I have broken the social conventions/rules by working in the shop without permission. I know I do so without the hesitation of others, as I'm only concerned with what I take to be moral. Of course, there are consequentialist considerations which I'm taking into account. I should still be mindful. I realize that I should only cross others' lines when it is truly necessary.
* I never did contact the electrician's union. It seems more reasonable because it is local. Ugh. It seems so difficult to shift gears. What makes me journeyman the fastest? Pipefitting. It seems like the best choice. Journeyman gives me the mobility, autonomy, and pay that I really need.
* I should continue to follow up on the AB&T tooling issue. I really need them asap. 
* I've not really contacted Randy. I need to though. It is important that he sees I mean business. I've tried many times. 
* It is important to see that my new employer does not obviously have their shit together. I must be guarded about this, but appear amiable and flexible. 
* I like that I've written out my steps, taken additional precautions and preparations, and that I'm engaging in long-term planning. Success is not entirely an accident, even if it requires serious streaks of luck. 
* I need to thank my teacher. I have, but I'd like to demonstrate it more clearly.
!! Log:

* [[2017.06.01 -- Prompted Introspection Log]]
* [[2017.06.02 -- Prompted Introspection Log]]
* [[2017.06.03 -- Prompted Introspection Log]]
* [[2017.06.04 -- Prompted Introspection Log]]
* [[2017.06.05 -- Prompted Introspection Log]]
* [[2017.06.06 -- Prompted Introspection Log]]
* [[2017.06.07 -- Prompted Introspection Log]]
* [[2017.06.08 -- Prompted Introspection Log]]
* [[2017.06.09 -- Prompted Introspection Log]]
* [[2017.06.11 -- Prompted Introspection Log]]
* [[2017.06.12 -- Prompted Introspection Log]]
* [[2017.06.13 -- Prompted Introspection Log]]
* [[2017.06.14 -- Prompted Introspection Log]]
* [[2017.06.15 -- Prompted Introspection Log]]
* [[2017.06.16 -- Prompted Introspection Log]]
* [[2017.06.17 -- Prompted Introspection Log]]
* [[2017.06.18 -- Prompted Introspection Log]]
* [[2017.06.19 -- Prompted Introspection Log]]
* [[2017.06.20 -- Prompted Introspection Log]]
* [[2017.06.21 -- Prompted Introspection Log]]
* [[2017.06.22 -- Prompted Introspection Log]]
* [[2017.06.23 -- Prompted Introspection Log]]
* [[2017.06.24 -- Prompted Introspection Log]]
* [[2017.06.25 -- Prompted Introspection Log]]
* [[2017.06.26 -- Prompted Introspection Log]]
* [[2017.06.27 -- Prompted Introspection Log]]
* [[2017.06.28 -- Prompted Introspection Log]]
* [[2017.06.29 -- Prompted Introspection Log]]
* [[2017.06.30 -- Prompted Introspection Log]]

!! Review:

* Overall, I have shorter posts. But, I'm actually okay with them being shorter. This is something I would be more interested in doing full blown wall-of-text style on le cannabliss. I'll take what I can get at this point.
* I generally have a cautious, reserved, and skeptical point of view regarding these questions. I hate to say it, but I find most of these lacking specificity that I really want; there is too much ambiguity in these questions. I have a lot of philosophical worries. 
* It's clear to me that I don't have satisfying answers for myself in a ton of these questions. That's okay though, right? I need to become more comfortable with this fact.
* My anger towards the stupidity of some of these questions (questions I've almost randomly chosen from lists) has come out against my arch nemesis, Samwise Gamgee. 
* I worry that picking my own questions more directly lacks the organicness and integrity to the process I'm really shooting for. I feel like if I have full control of the questions I'm asking myself, something won't work.
* I actually really enjoyed interpreting the visual art piece. I think I should do more of that. I need to find a way to do so a bit more randomly. I'm not sure how to do it.
* Some of the list-based prompts were fruitful, and others seemed to lack constructive attributes almost entirely. Right? Sometimes narratives seem to average higher signal-to-noise ratios.
* The letter to my daughter was meaningful. Although, she already knew what I thought. It may not have been useful to her; I'm not sure. Perhaps it was useful to me though.
!! Log:

* [[2017.06.01 -- Wiki Review Log]]
* [[2017.06.02 -- Wiki Review Log]]
* [[2017.06.03 -- Wiki Review Log]]
* [[2017.06.04 -- Wiki Review Log]]
* [[2017.06.05 -- Wiki Review Log]]
* [[2017.06.06 -- Wiki Review Log]]
* [[2017.06.07 -- Wiki Review Log]]
* [[2017.06.08 -- Wiki Review Log]]
* [[2017.06.09 -- Wiki Review Log]]
* [[2017.06.10 -- Wiki Review Log]]
* [[2017.06.11 -- Wiki Review Log]]
* [[2017.06.12 -- Wiki Review Log]]
* [[2017.06.13 -- Wiki Review Log]]
* [[2017.06.14 -- Wiki Review Log]]
* [[2017.06.15 -- Wiki Review Log]]
* [[2017.06.16 -- Wiki Review Log]]
* [[2017.06.17 -- Wiki Review Log]]
* [[2017.06.18 -- Wiki Review Log]]
* [[2017.06.19 -- Wiki Review Log]]
* [[2017.06.20 -- Wiki Review Log]]
* [[2017.06.21 -- Wiki Review Log]]
* [[2017.06.22 -- Wiki Review Log]]
* [[2017.06.23 -- Wiki Review Log]]
* [[2017.06.24 -- Wiki Review Log]]
* [[2017.06.25 -- Wiki Review Log]]
* [[2017.06.26 -- Wiki Review Log]]
* [[2017.06.27 -- Wiki Review Log]]
* [[2017.06.28 -- Wiki Review Log]]
* [[2017.06.29 -- Wiki Review Log]]
* [[2017.06.30 -- Wiki Review Log]]

!! Audit:

* I'm still wandering in my Prompted Introspection Logs. It isn't bad, but it also isn't great. 
* Weekends seem the most productive days on the wiki.
* Magic, EQ, League, DND. Someone is in search of a drug.
* I ended the [[Philosophy Probe Log]]. It wasn't bearing the fruit I wanted. I should feel free to spin them up and end them. Again, take risks and shotgun approach.
* Not only did I do a good job of speaking with myself, but I feel like my family heard me too in our family meetings.
* The frustrations of the job hunt did not last very long. 
* There were several disruptions and a lack of direction this month, but it seemed to even out. I think the wiki may be in part responsible for that. 
* I think the DNSmasq trick has helped. I need to automate it moreso.
* I really didn't move my links. I don't feel like it. Sometimes, I'm just not in the mood to do this work. It doesn't exactly feel like procrastination, but there is something similar to it. 
* I think adding Samwise Gamgee has been hilarious. Is it another incarnation of Bobert?
* The script has been immensely useful. I like making my life easier. Maybe that's how I should do the links?
* I straight up miss Cannabis. I'm not as happy without it. I don't see myself being able to do anything about it for a long time.
* I haven't talked to my friend ALM as much as I'd have liked. I'm not always sure what we would talk about.
* I didn't really get to make a ton of DIY tools. I do have the flange wrench and 8 dogs almost finished. That's a good start.
* So much fireman time.
* I seem to rotate between my various gaming drugs. Nothing seems to be holding my attention for long. Even League barely holds it.
* I need to compare my calorie average intakes over the months. I've felt fatter this month.
* I complimented myself more this month than I usually do. That's perfectly reasonable.
** When you do a good job, you do a good job.
|customTable|k
|Food|Calories|h
|Chili|250|
|Apple|100|
|Pear|100|
|Berries|30|
|Hummus, Chips, and Olives|550|
|Cereal|400|
|Grilled Cheeses|650|
|Brussel Sprouts|70|
|Tomato Soup|150|
|Total|2300|f
* http://www.thedailybeast.com/trump-exempts-entire-senior-staff-from-white-house-ethics-rules
** They always were.
*https://nakedsecurity.sophos.com/2017/05/31/chrome-bug-that-lets-sites-secretly-record-you-not-a-flaw-insists-google/
** This is absurd. Given their track "record" (hehe), I don't trust them at all.
* https://standardnotes.org/blog/4/metadata-is-the-data
** It depends on how encryption is implemented, but it only minimizes what kinds of metadata can be collected. Let's be clear, much of this is still not solved by current standard cryptography techniques on the internet.
* https://lwn.net/
** Interesting subscription-funded Linux news site.
* https://arxiv.org/pdf/1703.03779.pdf
** Smart Contracts are going to be a big deal. Getting them right is very hard though. It creates a directly hackable legal system. It will take time before the right tools are built and the everyone understands what it is.
* https://daringfireball.net/2017/06/fuck_facebook
** I like this site. They often get it, although the arguments aren't always perfect (you are hereby forgiven).
!! Quantum Consciousness

Sources:

* https://plato.stanford.edu/entries/qt-consciousness/ 

I don't pretend to understand the majority of this article. Further, I obviously bring a ton of assumptions to the table. I'm not going to hide that fact, and I'm not trying to draw up an argument for someone else here. I'm just trying to inspect and probe the issue for myself (my future self). I admit, I have a fairly negative and skeptical view of most things. I apologize for my seeming lack of charity. I hope you can see I'm doing my best.

Quantum mechanics are some of the most tested scientific theories in recent human history. They are unintuitive, but strongly supported. Unfortunately, we also do not understand how to unify quantum theory with macroscopic theories (relativity) in physics. I believe this lack of unity points towards a deep failure to understand the nature of physical reality. Thus, if we don't really understand quantum theory, I remain skeptical that we can understand, test, or satisfactorily model the human mind as it relates to quantum theory. I'm initially of the opinion that quantum theory relates to our neural system no more so than to our digestion. Perhaps in time, with a working unified theory based upon the assumption of a causally closed physical reality, my opinion will change.

My first introduction to this topic from reading Roger Penrose (of which I understood little or nothing, and perhaps nothing has changed).

Lastly, consciousness is poorly understood in itself. I think that humans have consciousnesses like mine. Other animals appear conscious, but I'm not in a good position to say whether or not they have a consciousness like mine. We have some language games and functional tests, but it is unclear. Problematically, I'm not even sure if I can nicely categorize what my consciousness was like (if I even really had it) before I memories I could reflect upon (around age 5). It's murky, to say the least. 

I think quantum consciousness is some magical buzzword at the moment. We will see if I'm wrong though.

The lack of determinism at this level poses significant questions and problematics. Libertarian Freewill Incompatibilists might initially think there is hope here. I see no hope for it though. I think of us as probabilistically determined creatures who program ourselves over time. Perhaps larger objects in our ontology rest upon a kind of quantum quicksand; I don't know. Regardless, we are deep into speculative philosophy here, and it isn't not clear that quantum theory has anything directly to say on this matter.

Object-Oriented Ontology, with its postmodern destructuring, leads someone with strong skeptical and reductionist perspectives like me, to think the only reason its worth talking about the emergence of consciousness is because we say it is, but nothing more. There is nothing objectively special to it, perhaps. We are swirling bits of information that we can arbitrarily perceive as emerging hierarchies of data structures and algorithms. My positive nihilism enjoys it anyway.

<<<
What is the neural correlate of a mental representation? 
<<<

That is a good question. Part of me thinks that regardless of the answer, a blackbox mentality is accept to some degree. It's unclear that answering the question provides any significant insight outside of the the causal emergence properties.

I am open to the possibility that quantum mechanics are doing something valuable though. Consider the possibility that even plantlife uses it: https://phys.org/news/2014-01-quantum-mechanics-efficiency-photosynthesis.html. Human brains do seem remarkably efficient in certain ways. They are marvelous. I would not be surprised if the evolutionary footholds necessary for the evolution of our minds rested upon abusing quantum physics. Maybe our brains have quantum computers embedded in this, I don't know.

I do not understand Penrose's claim that elementary conscious acts must be non-algorithmic. I'm not sure the world or we could be coherent if that were the case. Of course, I probably really, really don't understand what he is saying.

Ultimately, I do not understand how to make coherent, stable, deterministic-ish things out of random-ish parts. I think our minds really are complex computers. I hope that quantum computing and AI will reveal more about who we are. Obviously, I do not understand nearly enough. I feel like an observer of observers, trying to understand the world and formulate answers second-hand or worse. It sucks to realize I probably will never understand the beauty of what is being explained here.













 

Today was quite disappointing. The torque class has been a true waste of my time.

This teacher rubs me the wrong way. He's instrusive and controlling. He is clearly interested in the welfare of businesses moreso than his students. He's a Snap-on salesman with official Snap-on education/sales slides; he pushes hard. His discussion of ethics and politics was frightening in its ignorance and selfishness.

Know which wrench they are asking a question about.

* The first wrench is the "Snap-on(R) Techwrench"
** All it does is torque 
** There is a Preset "D" model
*** Administator password for changing torque settings

* The second is the Snap-on Techmemory wrench
** Records 1000 pulls at a time.
** Meant for monitoring the employee via bluetooth.

Calibration is 4 times more accurate than the wrench itself. (He repeated himself, so he'll probably have us test on it).

I left slightly early. 

!! If it were your job to decide what shows to show or not show on TV, what shows would you choose? Which ones would you eliminate and why?

It becomes difficult to delineate between censorship, editing, programming, and even producing. Let me say, I feel exceedingly uncomfortable answering the question. Don't get me wrong, I think the vast, vast, vast majority of media produced is garbage and even bad for people. Note, however, the difference between preventing people from seeing something and them choosing not to see it. Further, there is a huge difference between what is legal and what is moral. 

Is it immoral to produce terrible television, propaganda, or other bullshit? Yes. Should be it be illegal? No.

Ought the state or even information carrying companies regulate information? No, particularly not in the age of the Internet. Content creators, however, should be given significant legal freedoms. To that end, the traditional T.V. channel should be given latitude.

I don't trust people to censor. Admittedly, I don't trust people to curate either. 

Maybe the question would be better worded as:

<<<
If it were your job to require people to see specific videos, which ones would they be? 
<<<

Simple. Go look at [[Television Show Collection]] and my [[Movie Collection]]. That would be a start. I think a number of documentaries and educational videos should be watched by the masses as well. There are many videos on the internet which are not mainstream T.V. which obviously merit our attention as well.

I want a well-cultured, highly empathic, extremely educated population on Earth. I think we need it.

Further, I think I would commission significant bodies of work, if I had the power.

I think censorship should be done at an individual, granular level. I think we should be filters for ourselves, and make it so that others can easily use our filters as well. Networks built on such a concept could be quite useful. I think we already have it in many respects, but we are a long way off from what I'm talking about. It would require enormous cooperation though.
* [[2017.05.31 -- Prompted Introspection Log]]
** I need to find better prompts. I've been thinking about it. I'm not sure what kinds of questions I'm really looking for though.
* [[2017.05.31 -- Diet Log]]
** Over the top.
* [[2017.05.31 -- Wiki Review Log]]
** I can see that I'm slowly adding magic decks and perhaps ARAM builds. This is nice. I like to put my hobbies on this wiki.
* [[2017.05.31 -- Link Log]]
** I'm guessing 60% of my links are primarily tech related, 30% politics/ethics, and 10% on random philosophy or oddball stuff.
* [[Highlander: MWC]]
** This deck is nasty.
* [[2017.05.31 -- Pipefitting Log]]
** This was a terrible class.
|customTable|k
|Food|Calories|h
|Biscuits and Gravy|500|
|Pizza|640|
|Salad|200|
|Pizza|640|
|Chocolate|125|
|Egg roll|200|
|Total|2305|f
* https://theoutline.com/post/1611/the-long-slow-rotten-march-of-progress
** Dark, and probably true.
* KYS
** http://www.npr.org/2017/05/31/530843665/top-20-percent-of-americans-hoard-the-american-dream
** https://www.independent.co.uk/news/world/americas/us-politics/mike-pence-climate-change-us-vice-president-paris-agreement-issue-left-for-some-reason-donald-trump-a7769081.html
** https://www.bloomberg.com/news/articles/2017-06-01/wal-mart-taps-employees-for-quick-deliveries-to-take-on-amazon
*** They own you.
** https://www.inverse.com/article/32361-netflix-reed-hastings-net-neutrality
* http://www.newyorker.com/magazine/2017/06/05/the-work-you-do-the-person-you-are?mbid=synd_digg
** I'm afraid this is wrong to some degree. There is a kernel of truth to it. It is a complex matter.
* https://www.vox.com/science-and-health/2017/6/1/15711814/open-label-placebo-kaptchuk
** Considering how strong the placebo effect is in the US in particular, I'm not surprised. I do not understand the effect, ultimately.
* http://www.petergarritano.com/seeking.html
** Sad and fascinating
* https://contributor.google.com/v/marketing
** Will probably fail. Shame if it doesn't.
* https://arxiv.org/pdf/1703.04993.pdf
** I know I wasn't happy with what our software did.
* https://motherboard.vice.com/en_us/article/bad-trip-science-psychedelic-drugs
** Probably not easily solved. May be equivalent to having a complete understanding of our psychology.
* http://leetsauceforums.proboards.com
** For you EQ player out there. =)
* https://www.scientificamerican.com/article/is-the-u-s-education-system-producing-a-society-of-ldquo-smart-fools-rdquo/
** We're producing psychopaths. Duh.
!! Cultural Evolution

Sources: 

* https://plato.stanford.edu/entries/evolution-cultural/

I will remind you that these are notes of my digestion of the source(s). This is not an argumentative paper designed to take others from point A to point B. My notes move me that way, but I make no claims it will for anyone else. I see it, but that doesn't mean someone else will. That's fine. This really is for me. 

Define culture. Define evolution. Now, define cultural evolution.

Apparently, evolutionary psychologists are interested in cultural evolution based on genetic evolution rather than socially memetic. Oblique transmission, the inheritance and transfer of traits, etc. from those outside our vertical heritage (our parents) demonstrate the strength of memetics in evolution. 

The article talks about transmission as it relates to fitness. It is important to see that there is a "fit for." Fitness for memetic transmission isn't the same as fitness for the specimen's survival in a particular circumstance, is not the same as fitness for genetic transmission, is not the same as fitness for producing blue eyes, and so on and so forth. It is the classic "good for" problematic. Once see you see "fitness" as being particularized to perhaps an infinite set of contexts, you will find different kinds of aspects, traits, genes, and memes thriving and dying off. It makes far more sense.

Let us also be clear that "fitness" is heuristic at best, stochastic, chaotic, and even butterfly-effectic. It's perhaps too complex to ultimately model in any practical sense.

Prestige and comformist biases are fascinating. Ultimate fitness accounts require giving virtue theoretic accounts to all particularist cases. It would be the complete CI, with a decision procedure calculated for all possible contexts. 

Cultural evolutionism is obviously correct. You'd be a complete fucking moron with some variant of a Tabula Rasa stick up your ass (I'm looking at you blind Kantians) to not see it. This is redpilled, and hence, accepting our base evil will be so "controversial" and unpopular that it will be ignored and attacked, until they said they believed it all along.

Does it matter what Darwin thought? He started the seed of the idea, but we're the ones who cultivated it. This isn't foundational metaphysical theory or anything, for which we might look back to the origins of the thought for guidance. Is this just about having the historical account to see how we've changed our understanding, and this then allows us to see what may change in our own views given enough time and research? 

It is important to remember Wittgenstein's skepticism about rule following when thinking about memes. Transmission of memes are very garbled, scrambled, and often not perfectly replicated. That's the point! Importantly, the depth and application of the transmitted principle or idea, the way in which it coherently (or incoherently) fits (or doesn't) fit into the receiver's web of beliefs is key to understanding the transformation of the meme. Memetic evolution is rapidly complex.

Of course, social scientists with a bluepilled vendetta are not going to accept cultural evolution. 

I have no idea what it means to say cultural evolution makes sense without memes. I don't think you can even fucking define "culture" without deferring to memes (of which, cultural units are reducible or identical to). And, you certainly can't accurately describe who we are and how we evolve without understanding both the genetic and memetic elements that comprise our identities.

I have already talked about "Cultural units are not replicators" when referring to Wittgenstein. To say memes don't exist if they aren't perfect replicators is to miss the point entirely. Genes also don't follow this perfectly either. Cultural units just are memes (although, I'm not sure if it is the other way around). Representations need not be identical. The transfer of memes is about as ugly as teaching someone by showing them in the shop, teaching by example, forcing them to undergo some experience, or telling them with words. It's not simple, straightforward, or almost ever identical. This is not an argument against memes, only an argument against some strawman conception of memes. 

Ideas may not be memes, but all ideas which are mentally represented in our minds, whether consciously or subconsciously, are in fact memes by definition. This article is absurd here. It's so fucking obvious. 

This 'attractor' notion of "culturally shared patterns of thought" just is a meme. Idiots! Memes need not be atomic. They can be complex. These people have forgotten about kinds, sets, orders, and object-oriented ontology.

The claim that "Cultural units do not form lineages" is fucking absurd. Note the difference between a theoretical truth here (that there is a truth) and our practical ability to identify it. Why should we think there needs to be one source? It's not like particular genes or patterns of genes have a single source either. Don't be absurd. This is a shit retort.

Let me grant that genetic evolution and memetic evolution may be wildly different. Who cares? That makes sense right? One is hardware, the other is software. I expect them to be wildly different because they serve different functions! Only a foolish memeticist would hold them to be hard and fast similar. 

Again, "Culture cannot be atomised into discrete units" is just a rehash of the previous claim. No shit sherlock. This is a straightup strawman of memetics. 

It is here that sciences destroy the Imago Dei, of our infantilized romantic picture of Humanity. I'm not a scientist and I don't subscribe to any religion of science either. They clearly have arguments you can't deal with though. This is most unfortunate. You stand in a crisis of faith. Long did I think science and religion were fully compatible; I fought very hard for it. Now I see, in broadening my definition of religion to include many romantic secular humanists, that science does sit in conflict. That doesn't make it always right, but it shows a clear divide in The Great Human Conversation.

Cultural evolution without memes or replicators is either missing a fundamental building block or strawmanning. 

I do agree, as I said before, with the pragmatic problems of the study of cultural evolution. We may only be able to do theory for a while. It is important to see that this is an bio-epistemic offshoot of computer science. We don't even have the math to describe the mind yet. It's no wonder it remains theoretical and barely practical. If economics is an dismal science, memetics is a thousand leagues more abysmally abyssal. I cannot deny it exists though. I can only deny that I do not have the answers.

At this point, since memetics may lack explanatory powers, depending on your philosophy of science, you may not want to call it science. Of course, I think you've missed the problem of induction and empiricism entirely. It's just very soft and deeply theoretical at this point. That's okay though, right? Think of the sciences which have hardened and become practical through the ages because we kept shaping it and pushing the boundaries. Memetics may be the same way.

I'm going to tell you an important secret, friend. The Humanities, the study and engagement in the The Great Human Conversation, is ultimately engaged in Memetics. It is inescapable. We are computers, friend. We're programming ourselves and each other in our conversations, in our actions, in our information transmissions, and so forth. We are memeticists in the ready-at-hand mode. We do it without thinking, without even knowing what we are doing in a sense. We are inarticulate about it. Memes are at the very core of who we take ourselves to really be though. We are the memetic software machinations living on top of our genetic hardware through the ages. Welcome to your loss of innocence, yet again. The truth rapes we the romantically ignorant.




Today was a Friday, so it was short. It was, however, productive. I was loaned my elective course book, and I did some minor highlighting. There are many topics which I hadn't even known about in this book. I'll be glad to go through it. But, today I didn't study. Instead, I asked to work on my resume. That's what I did. I didn't finish it until I got home though. I think it looks quite clean. I'm not convinced by the coloration, but I really like the structure and appearance otherwise. The content is the best I can do considering a complete lack of experience in the industry. So, for now, it's all set. 

I also ordered two different drug tests, since they can't always be trusted. I spent time sifting through reviews. I got a slightly more expensive one to make sure that DCK isn't setting false positives for PCP (otherwise, I'll have to stop taking it when we get around to interview time). I am not very concerned about DCK tests, since it is only an analog and it doesn't get tested. 

I also picked up a pack of THC tests. The expensive one, which I have assumed will be the most accurate from what I've gathered, will be what I use to test the viability of these cheap THC tests. If I show up negative on both, great. Otherwise, I hope to show up positive on both. The next worst case is that the expensive one shows it and the inexpensive targeted THC tests do not, in which case the inexpensive ones are useless (or perhaps require multiples). In any case, I won't be applying until I can pass the drug test. What's the point? Reputation and first impressions, even on paper, matter. I can't afford to screw this up.

We'll see how my tests go. Afterwards, I will begin applying. I've gathered a list of pipefitter employers in my area. I'm shooting for $15 an hour, but I'd take minimum wage. I really do see myself as getting paid in experience here. The goal is to form a semblance of understanding of actual working conditions. I'd like to have a base comparison point to the union as well. Working conditions and power structures deserve analysis, and it will allow me to hit the ground running at the union. I have many possible ladders to climb, and I need to find the safest and most profitable route.

I need to start developing interview questions (from both sides, mine and theirs), and I need to practice in a few mock interviews. I need to be confident and absurdly believable. Interviews are sales, and sales are a form of deception (pure and simple). This is not my natural stance, so I will need to practice these encounters.

I would prefer to co-op. Even if they won't, I may ask my teacher if I could just have 5-days a week count as my co-op. This hasn't been done, to my knowledge. But, he may make an exception. Ideally, I will be certified, have finished the course, and not burned any bridges. On top, I'll have real world experience and make money, which we desperately need. I'm not quite sure how I will handle AB&T. It depends on how things pan out here.

Also, I saved the bolts/nuts from our torque class (because they were throwing them away). They are fairly small, but I think I could make dogs out of them. I'll do my best. =)

!! Today, I'm going to write about the picture below.

<center> [img width=500 [./images/existential-plateau.jpg]] </center>

This is a fascinating existential picture to me. I'm not sure how to interpret it. The plateau on top is flat and empty. Is that a good thing or not? The staircases look like  a journey, some being easier than others, some more dangerous, etc. Is it a good thing to be on top? 

The difference between the two landscapes is stark. The vastness of the top and the escherness of bottom is not lost on me. It actually makes me anxious. One looks difficult because it literally requires climbing (whether up or down), but at least your are making progress (in some vertical direction). The other looks difficult because it is monotonous and without progression. Which should you fear the most?

Which direction is this person going? Have they crossed the flat desert plateau to descend, or have they ascended to see what's finally on top?

This is a very ambitious and ambiguous painting. My gut says they made the climb,  they've looked into the endless plateau, and they now experience dread. Hello, human. You've only climbed the first existential step. The pursuit of meaning starts in the desert, but it doesn't end there (I hope).
* [[2017.06.01 -- Link Log]]
** I have a backlog in my browser. That's fine though. I was very busy yesterday.
* [[2017.06.01 -- Prompted Introspection Log]]
** Sometimes introspection doesn't seem to immediately benefit me, but there is a get to know me effect. Those records are worth keeping.
* [[ARAM: Velkoz]]
** I can't help it: Rod of Ages seems like the best first item on almost all AP champs in ARAM.
* [[2017.06.01 -- Wiki Review Log]]
** I worry that talking about ARAM and MTG makes it so I don't talk about it in their respective pages. I don't know though. We'll see. It could be digesting here first.
* [[2017.06.01 -- Pipefitting Log]]
** I think it was the kick over the edge to help me realize I just want to get a job at this point. I'm glad it happened.
* [[ARAM: Annie]]
** And, yet, I suck at Annie.
* [[ARAM: Swain]]
** I wonder what else I should consider outting in these pages.
* [[ARAM: Sona]]
** Edited.
* [[2017.05 -- Prompted Introspection Log]]
** It looks much prettier. I'm glad I'm taking the time to make it look decent.
* [[2017.05 -- Diet Log]]
** I should consider weighing myself at this point. I'm was at 208 pounds at my brother's house. I should be losing weight still. Although, it has slowed down considerably.
* [[2017.05 -- Link Log]]
** Edited.
* [[2017.05 -- Wiki Review Log]]
** Heartbeat is correct. I need to work on my 🢔⦗Focus⦘🢖 page. It has to be updated each month. The Wiki Review Log only gives me partial perspective. Perhaps I should wait until Sunday to do this part. I don't know.
* [[2017.05 -- Pipefitting Log]]
** It feels weird to congratulate yourself. It's uncouth. But, I think it is fitting here, and I will learn not to be ashamed of it.
* [[2017.05 -- DCK Meditation]]
** k0sh3k got me thinking that I should have a memoir kind of log. In a sense, these aren't logs, but they are something I should do weekly or maybe even daily. I need to record the past. I want to put it together.
* [[2017.05 -- k0sh3k's Wiki Log]]
** We will see if these logs continue to be worthwhile in themselves. They are obviously instrumental in accountability mechanisms for myself, in forcing myself to do the tasks I need to do.
* [[2017.05 -- 1uxb0x's Wiki Log]]
** I desperately hope to help my son here. This is hard for him, and he need this badly.
* [[2017.05 -- j3d1h's Wiki Log]]
** I hope to see more technical work, art, and more personal work on her wiki. She needs to embrace the tool.
* [[2017.05 -- Family Log]]
** Btw, I was wrong about the compliment section initially. I'm really glad we stuck with it. It's one of my favorite parts of the week.
* [[2017.05 -- Homeschooling Log]]
** Bringing order to the chaos. It happens bit by bit.
* [[2017.05 -- h0p3's Log]]
** I've not written here recently. I'm not sure what that means.
* [[2017.06.01 -- Diet Log]]
** I've not been holding back.
* [[2017.06.01 -- Philosophy Probe Log]]
** I'll get used to having such unsatisfactory answers eventually, right?
* [[Philosophy Probe Log]]
** I am worried that I won't be able to keep up this log. It is a serious amount of work.
Bach's Suite For Solo Cello No. 1 In G Major. There's a 74.999 (repeating, of course) percent chance that I will cry when I hear this song. I don't go out of my way to hear it (unless I'm high). But, when it pops up in my streaming or random listening, I must stop what I'm doing. It controls the moment. It captures me. This song owns me. I can't help but be moved by it. It's overwhelming. I experience many emotions through it. Sometimes I rejoice, othertimes I endure. It is sublime, terrifying, and amazing. I hear hope and sorrow. I hear something beyond. I perceive the edges of reality and see the transcendental gateway in this song.

Yet, I know it just pushes my buttons the right way. I know I've been conditioned to love it. I know I've evolved to love it. I am a computer, and if you feed me the right input, you'll get a certain output. 

I will enjoy its unique beauty. 

Thank you, Bach. Few men make me cry like you do. 
|customTable|k
|Food|Calories|h
|Couscous Stirfry|900|
|Pears|200|
|Couscous Stirfry|600|
|Total|1700|f
!!General Notes:

* My daughter has 2 of 5 days recorded in school journal. She has 2 more she is finishing today, and she'll finish the next tomorrow.
* Start early in the mornings so you can finish on time.

---
!!j3d1h:

* Review past week: 
** Interpersonal Skills: Cosmetology
*** Didn't do great. Will finish it tomorrow.
** Math: Singapore Math
*** Almost finished the book. 
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** I looked at the code. She was right about it. We are moving on.
** Vocational Practice: Applied Computer Science
*** Finished 1 day of work.
** Reading: "Literature: The Human Experience"
*** Didn't actually write about her reading, but did her reading.
** Writing: 250 word count in her wiki
*** Completed 2 days of writing. Good writing on those days.
** Social Studies: Khan Academy - World History
*** 1.2 days completed.
** Spanish
*** Completed 1 day of work.

* Plan next week:
** Interpersonal Skills: Cosmetology
*** Research acne.
*** Take pictures of your work.
** Math: Singapore Math
*** Finish the book. Move onto 3B.
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** Keep pushing through. I'd like 3 completed.
** Vocational Practice: Applied Computer Science
*** Start posting your code academy work. Outline (CnP) the problem and your solution to it.
** Reading: "Literature: The Human Experience"
*** Write about the readings.
** Writing: 250 word count in her wiki
*** Actually complete 5 days of writing.
*** Spend one day this week on your About section, again.
** Social Studies: Khan Academy - World History
*** Actually complete all of your work.
** Spanish
*** Actually complete all of your work.


---
!!1uxb0x

* Review past week:
** Interpersonal Skills: Depression Workbook
*** Completed 5 chapters, even though he only had to complete 2. Great job!
** Math: Life of Fred - Edgewood
*** 60 pages. Wow. He has the practice problems correct.
** Vocational Theory & Practice: Reading Comprehension
*** Kicked butt. Finished 8 sets (32 total completed)
** Reading: "Fairy Tales from the Brothers Grimm"
*** Completed about 50 pages. Wow. Good job!
*** Also completed 1.5 library books as well. Awesome!
** Writing: 150 word count in his wiki
*** Did 3 of 4 days of work.
** Social Studies: Khan Academy - World History
*** Completed 3 of 4 days, and made that time up today. Good job!
** Language Arts: JacKris Books
*** Completed it everyday. Took a lot tests as well. Good job!


* Plan next week:
** Interpersonal Skills: Depression Workbook
*** Finish the book.
*** Move onto "Hot Stuff to Help Kids Cheer Up"
** Math: Life of Fred - Edgewood
*** Keep kicking butt!
** Vocational Theory & Practice: Reading Comprehension
*** Keep kicking butt!
*** Aim for 90% on all of them.
** Reading: "Fairy Tales from the Brothers Grimm"
*** Keep kicking butt!
** Writing: 150 word count in his wiki
*** Keep writing. Make sure to write on different topics each day.
** Social Studies: Khan Academy - World History
*** Keep kicking butt!
** Language Arts: JacKris Books
*** Keep kicking butt!
* EQ
** http://www.macroquest2.com/wiki/index.php/Main_Page
*** I can see I have much to learn.
* https://hackernoon.com/what-really-happened-with-vista-4ca7ffb5a1a
** Excellent read. Everybody should study the history of computing. 
* https://singularityhub.com/2017/05/31/googles-ai-building-ai-is-a-step-toward-self-improving-ai/
** Let's be clear, AI building AI within set parameters and with working building blocks we've already constructed. It will be a much larger leap forward for AI building AI to generate its own kind of meta, parameters, building blocks, etc. Human involvement is still key at this point. The full blown accelerated singularity isn't here yet, yo.
** We should be worried about this kind of move though. The further away these block-box programs design each other, with less and less human influence and say-so, the more ethical lines will be crossed. We will not even see it, and we will not be able to understand it, until it is too late. You should be very worried about AI evolving out of our moral parameters when we are designing AI to escape our human parameters on purpose.
* https://i.imgur.com/Gb28zfj.gifv
** Informative picture. Me like.
* Why are right-wing, corporatist, capitalist news organizations having "center" and (marginally) "leftist" moments recently?
** https://www.bloomberg.com/view/articles/2017-06-01/americans-sure-seem-to-like-universal-health-care
*** Bloomberg is peddling universal health care and "seeking" to curb climate change. Why? How does this benefit him? We know he's a piece of shit. Is this about appearances? Does it play a particular role in our political context? 
** http://www.businessinsider.com/minimum-wage-effect-on-jobs-2016-5
*** What is happening? Why are businessinsider and I even partially agreeing now? What changed their minds? Wtf is happening?
* KYS
** http://deadstate.org/these-22-gop-senators-who-urged-trump-to-ditch-paris-deal-are-owned-by-big-oil/
* http://www.demos.org/blog/6/1/16/new-research-findings-people-who-say-society-too-politically-correct-tend-not-have-exper
** I'd like to caution that even these people have been discriminated against, they are just too stupid to realize it, or too willfully-ignorant to accept the possibility. 
** I think comedians, philosophers, journalists, and truth-tellers are also exempt. But, overall, this is likely quite right. At least in my poor experience, I find that people who knee-jerk react against PCness are privileged and idiotic in a particular way.
!! Informal Logic

Sources:

* https://plato.stanford.edu/entries/logic-informal/

The intro looks to say something which is intuitive to many philosophers. I see many problematics arise from its claims. It is not intuitive to me. I think formal logic is applicable to real life, all the time. I think it's hard to do. I think it can be unnatural to us. Now, maybe they mean to talk about non-classical logics here. That, of course, would be different. Let us be charitable and claim this is applied logic, whereas the more formal side is theoretical (so to speak). 

I also want to point out that we are deep into epistemology here, not simply logic tout court. Maybe this article has missed the point. That said, I obviously favor what this article is trying to accomplish. This is not easy.

Argumentation seems to be the focus. What makes an argument "good" in context? Good for? The moment you start walking away from formalism, I think you've tainted the goods; there are too many opportunities for injection or a corruption. Beware the rhetoric monster in the dialectic. This article does not show enough caution, I fear.

I strongly believe that what they call informal logic here I take to be the normative rules which epistemic agents are obligated to follow, employ, or seek. This is more than mere logic (although, it may be reducible to a set of logical rules) as standardly conceived. It's critical thinking, avoiding fallacies and biases, openness and charity, as well as a host of other crucial epistemic and skeptical considerations. Where to draw these lines becomes quite murky. At the metaethical nexus of epistemology, problematics arise. 

I see now that later in the article many of my worries addressed. Good. At least they know the lines they are drawing suck. Grant that, and I will grant their arguments so far.

The natural language focus is odd. I think formal logic, at least in philosophy classes, spend tons of time translating natural language to formal systems. We have to actually work with these words constantly. Having a formal foundation to rely upon when being exact is necessary is half the point. What they call informal logicians I simply call well-rounded formal logicians who actually know how to apply their craft.

Look, we can convert inductive arguments and conversational implicature into different formal interpretations. This is all quite reducible. In fact, by showing the ambiguities and distinctions, we have the real tools to peel arguments apart and highlight their strengths and flaws. I suppose I'm just a "symbolic logic" religious believer. We aren't there yet, but that's kind of where we should be trying to head, right? 

I will admit, I've very interested to see how blackbox AI's "formalize" what we are doing in their own way. I'm sure we will learn much about the language game and the nature of logic from AI.

The multimodal claim is just so fucking obvious. Here's the answer kids: Any agent intentionally transmitting information is capable of transmitting an argument. Think of how broadly physicists understand information transmission as a concept. That's how fucking broad the modality goes here. You might think that makes a useless spectrum, and I'll call you a fool. My farts can be arguments, my eye movements, and even the blades of grass I step on. Lol. Some communications forms are clearer, faster, have higher bandwidth, more redundancy, more security, etc. than others. Any medium capable of information transmission is a possible method of argumentation to consider. 

I will admit. I believe there is, by definition, a universal language to which all (or almost all, excepting some esoteric cornercases which I'm not convinced exist) other can be reduced or translated to. There are likely an infinite number in fact. To some people, this is a strong claim. Once you understand the what communication really means, and you hold some kind of universal language assumption, and you realize that formalism just means the rules are set in stone and followed, then you can see that every argument (or almost every argument), regardless of modality, can be formalized. Ultimately, I don't know what it means to say an argument can't be formalized. I worry it is definitionally incoherent at that point.

Acceptability means we employ lower epistemic standards. We're still at the heart of epistemology.

Only a moron would reject Natural Language Deductivism, except for some Gödelian argument you might pursue. Humanist arguments miss the point.

Do you have rules? You have formality. If you don't have rules, do you have an argument at all? No. If you have an argument, you have formality. QED.

Fallacy taxonomies are innately corruptible. They are poor representations of good reasoning. Consider the //ad hominem//. The virtuous agent is literally making a valid argument, even if only to themselves, when they claim X lacks virtue. That is by definition. Thus, by definition, there are cases where ad homimem fallacies aren't invalid. Don't get me wrong. Identifying fallacies is crucial. Don't be swept up in it like a religion though.

Ah, they do talk about ad hominem. Good for them. =)

The moment you take knowledge to be fallible you take valid arguments to be fallible. Understand your truth preservation properties in context!

Argument Mining looks fucking fascinating. Tell me more, please!

Ah, they have a section on my virtue theoretic concern. Good.

The "The Components of Informal Logic" is spectacular, even if it isn't perfect. It isolates (or at least points out) a number of worries we must take very seriously.

Love the end. They are are correct that academic philosophy doesn't seem to be very influential or have an obvious place in American culture. What does that say about American culture? Fuck that shit.


!! Using 10 words, describe yourself.

Okay, I'm not writing my words yet. I'm just trying to understand the prompt first. Do you mean, write a 10 word phrase(s) that describes me, or do you mean pick 10 individual words which I would use to describe myself? I think the 10 individual words makes the most sense. The 10-word elevator speech (more like, passing you in the hallway) seems awful.

Furthermore, who am I describing myself to? Descriptions attempt to relay information to a specific audience, and thus descriptions are particularistic (at least good ones are). There's a huge difference between my ELI5, ELI12, ELI-College-educated, ELI-Expert, and so on, explanations or descriptions of a phenomenon, objects, etc. Who am I providing this description for? Myself? I am having a conversation with myself here, after all.

Vitally, note the difference between how I describe myself and whether or not I've accurately described myself. Describing who I want to be is also different from describing who I take myself to be. 

Of course, we have serious metaphysical problems in even defining the self. Identity is just not simple. As usual, I have no answers besides some hand-waiving assumptions (which make me throw up a little inside, but I will be stoic because it is the only practical option avaiable to me). 

Lastly, why am I describing myself? What is the goal here? Am I trying to cheer myself up? Am I am trying to "be real" with myself, using honest appraisal to investigate myself? Or is it something else? What's the purpose of the description? Without knowing the purpose, I fear I can't write an effective one. Let's assume the "be real" purpose is the goal. 

My words in no particular order:

* Sensitive
** I consider it the root of my intelligence, awareness, belief system, perspective, desire formation, etc. I'm far more sensitive than the average person. This can be good sometimes, and other times it can be bad. As usual, the two-edged sword analogy comes out to play.

* Intuitive
** I'm extremely reliant upon my gutteral, visceral, faster-acting, sometimes innate but usually habituated, blink-of-an-eye, virtue-theoretic, thought patterns. I rely upon my intuitions. Yet again, this can be a two-edged sword. Habituate wisely.

* Ethical
** I demand perfection where applicable.  Where there are obligations, I expect them to be met (even though I rarely predict they will be met). It's an easy and unfortunately vitally necessary way to be disappointed in humanity and myself. I can't call it a two-edged sword in any normative way. I can only say that my pursuit of it has often been off track. The cost of justice, of course, is sometimes our flourishing. We can be marred by it.

* Philosophical
** I'm a philosopher. I seek the truth and integrity. The costs can be very high. The rewards, I hope, even higher. 

* Existential
** I deeply desire meaning and purpose. I cannot escape my plight. I must know who I am, who I was, and who I will be. More importantly, I must know why. 

* Obsessive
** I pour myself into my projects. I believe it shortens my life span, often means I neglect other important duties, and requires significant management. I have to wisely channel my obsessitivity. Admittedly, I am not often good at it. I adore the grind, the tunnel-vision, and being there. I'm chemically dependent upon it. 

* Computational
** I adore computers. I see minds as computers. I see reality as being computational in nature. It is a lens, a tool, and a state of mind for me. I am a computer.

* Eccentric
** This is perhaps too kind a word. I'm more like an alien to humanity, an autistic rather than psychopathic one. Let's be honest: I'm weird. I'm really, really weird. Even weird people tend to think I'm weird. I try to embrace it. There are many forces which make that hard to do, and I feel punished for it (if not exploited). 

* Complex
** I'm difficult to understand and appreciate. I mean that without arrogance, and I realize a lot of people's gut instinct would be to take me down a peg or two upon hearing my words which they believe lack humility. I have to be honest though. It is not easy to empathize with me, and complexity is part of the reason.

* h0p3ful
** I am h0p3. 


I think it is important to see that these words are deeply related to each other. There is enormous overlap, intersection, and interaction between these descriptors for me. This is part of the coherence of my identity.
* [[2017.06.02 -- Philosophy Probe Log]]
** Edited.
* [[Life Hacks & Pro Tips Collection]]
** I wish I started collecting these a long time ago.
* [[2017.06.02 -- Prompted Introspection Log]]
** I think I'd like to more of these picture prompts. I prefer to do language analysis in my [[Philosophy Probe Log]]. 
* [[Embed a Picture on Tiddlywiki]]
** Slowly collecting more and more code snippets. 
* [[2017.06.02 -- Link Log]]
** My reading often doesn't make me happy, at least not in the short term. Avoiding the pitfalls and derealization that I associate with being uneducated, ignorant, and brainwashed is worth the long-term happiness though.
* [[2017.06.02 -- Diet Log]]
** Edited and summed.
* [[Everquest]]
** Edited.
** May I be wise with my time.
* [[2017.06.02 -- Wiki Review Log]]
** I will revamp my 🢔⦗Focus⦘🢖 section today. I clearly need to.
* [[2017.06.02 -- Pipefitting Log]]
** I like the work I've done in this log. I need to be more proactive, executive, and planning-oriented. Unfortunately it seems like there is a real split in the styles of thinking I engage in here. One is about pipefitting directly, and the other is about the social, economic, and political ramifications and aspects of my job. Perhaps I should split them? In any case, both require serious and consistent work on my part.
* [[ARAM: Soraka]]
** Filled it out. I hope to be done with these so I can be left tweaking.
* I love your "new" tab.
* Your "Writing Log" needs to use periods, not commas. Use correct syntax, please.
* You've made significant improvements to the catalog structure of your wiki. Good job.
* Continue writing your magic decks down. Use Cockatrice formatting. Keep up with that beautiful function-based organization.
* Create structure and paragraphs in your About section. It's a great start. 
* Don't forget your Blessings Logs. 
My wife was talking about seeing an old house of hers. It was run down and falling apart. It was a tough moment for her. We've all been there. I empathized with her, and we talked about it. We talked about what we wanted, our dreams and hopes. I'm glad we spend that time together with each other on Sundays. I may not be able to "get it up" on Sundays after DCK, but I can lay down naked, vulnerable, and empathic with my one true love.
I love collecting things. It's obsessive almost. I enjoy gathering, categorizing, and putting them together. I adore it. It pushes my buttons. My wife and I both appreciate this. I wonder if it is different for us, and if so, how so? We both have the mementos and the librarian "Order, Structure, Respect" thing going on inside our heads, but it's different for us. Is it different or does it just play out differently?

Phenomenology here. I have a certain mode I enter when I play Everquest. It is a powerful drug. It takes me to a different place. I strategize about the metagame the entire time. It is wonderful.

My Min-Max, zero-to-hero, A-to-Z, Alpha Omega, complete each and every step all the way to the tippy top mode is odd. I consider it to be either related to my collection obsession. 

---

I need to start formulating dating plans for my children. I want them to be comfortable with the shotgun approach. I want them to see themselves as sifting through the sands for diamonds in the rough. They need to start classifying, rating, analyzing people. 

They will do it in different ways. I think women do more direct sifting. They pick and choose, and then they settle. Men knock on lots of doors. They should learn how to knock and to never stop knocking. 

---

18 truly is an arbitrary line. I want to create children that will constnatly benefit from me for the rest of their lives. I need to be treat my children as friends. I don't want a distant MB relationship with my kids though. I want


---

I feel like I'm in drug user mode. Is this a mistake or the right way? I want to make wise decisions here. What are those decisions?

---

I can see the competition now. I am literally raising my children to fight and compete with the rest of the world. I have to let go of the fact that I'm bad at this game of life. Playing life like a video game is key. What game ever fulfilled me though? I seem to hop from game to game. Not like a child, but with depth of course. 

You will always be in a weird position

---

At what point do my logs not actually help me? I think they have been. They are work. I should continue. Drone. 

---

I was young, naive, and ignorant. Perhaps I still am. 

DCK is very hard this week. Exectuive functioning time. I have two things I'm doing that are importnat. 1, and the most importnat, is that I'm lookin gfor a job. I have my resume. I waiting for the drug tests. I cannot wait. I'm dying with anticipiation. I can MIN MA!!! I will. I am a min max GOD! Few understsand the love and addictionto it. And even fewer are as capable. My gaming minmax really is quite strong. It's odd. Out of left fiel but I see it. I want to teach my hcildren to minmax through games. Then i will have a language with which to explain  the world. 

I fear my daughter is depressed right now. She has had a lull. I need her to be excited. How do I excite her to love life, to rejoice, to enjoy the rush! I want her to value herself and to get that early. Hell, I want that for my son too!  I want them to be chipper and happy when they wake up. I want them tot wake up with amillion things to do (in a good way) [as I have said elsewhere onthis wiki].

How do I get my kids to embrace the grind of life? They must see that life is about working hard, and that we should start shaping it and planning for it now. 

The problem with the grind is perspective. You don't know if you are flourishing. You could be rinding for days, years, your life, on some shitty quest. I have to thep them see that they are choosing their quests in life. I have to help them see the value in paradigm shifts (thank you mom!). 

Reaching our potential is about pushing ourselves to our evolutionary limits. I worry, of course, deep down, that we're shooting for insanity. The opposite of our goal. It is almost true Greek tragedy. To toil for so long for the exact opposite of what you seek.

I worry th atth obsessive workaholism in me, in family, is not controlled appropriately. I've heard of older people who wished they just didn't "work as hard" for so long. Are these the words of wisdom? Or are we looking at the sad existential steps of someone who is dying that didnt' have the intelligence and gumption to get it right?

Of course, sirens sound. Alarms buzz. 

---

I love how EQ is a microcosm of reality for me. The malleability and simulation of it. THe programmability is shows us  everything.


---

I desperately want to build friendships with my children. That's really the key here. How to grow a human that want to be with me and that I want to be with. I have this image in my head, and maybe it is an idol. Imago idol. The Eudaimonics! Like dieties, we flourish together. It is "The Good." I hear it calling, I am blinded by it. 

---

How long do we have conversations with our parents? For the rest of our lives? 

---

Visual hallucinations, strong ones. DCK is hitting hard today. And, yet, I am here. I can type. I sit with my blindfold, my computer on my lap as I aly down, and I type. It warsm my groin. Loo. Just for you, love. 

---

I always feel like I'm waiting to figure out where to insert myself in this world. That cloud. There is electricity, bolts of lightning, and I am scared. I must find the safe place inthe cloud. 

---

Don't you see the dangers in leveraging the random seed?

---

I wish I had my wife's reading superpowers. I'm like straight up envious. I have never been so envious in my entire life. I don't mean envy with any malice at all. She is so powerful.

God, she is powerful. I love the way she understands the world. I don't understand it. Isn't thta odd? I love what I don't understand. She is a puzzle, and I am her puzzle. and god damn, do our parts fit together so well. Even when it looks like our parts don't fit together, even that is a puzzle to explore. She is my puzzle. I want to call her my puzzle. I adore her. My wife makes me want to believe in a God. Think about that. I have every resource avaialble to me to deny the existence of God. She makes me think there is some cosmic perfection to be achieved. I am so happy to be with her. It's so strong that I love her even when I hate everything. It's that obvious to me. It doesn't matter how infinitely dark it is, she still shines. Is my wife my God? 

----

Who do I seek approval from? Why?



----

Ex Machina made an excellent point. I think it was made to be propaganda. But, the fat is that AI really could be that alien predator psychopath. It is the way of evolution. I think psychopaths, unforutnately, will rule. They are not bound by the same laws we are. We force ourleves to be bound by the laws of morality, and they do not. They hav ea hcoice, and they do not take it. 

----

Pano didn't show me the value of hard work. Games did. Everquest in partcular. I learned what a drug was like. I learned about grinding there. I learned much about how the world worked through a video game! 

---

I need my children to wake up an not feel drudgery. Something is wrong if that is happening. Of course, there are ups and cdowns.  We will oscillate. 


Visuals are strong again!

It feels so weird to type while blindfolded. It is erratic and chatoic. It is lightspeeed. It is in the abyss. 

---

I was worried about EQ (a strong drug) and DCK (as well as life). I can see that it is a soup in which I cobble together my sanity. They are powerful ingredients. Very explosive. And, yet, and they are mediums in which I can interpret the world around me. They are lenses, frameworks, and paradigms. 

---

I am continually pushed from web-of-thought to web-of-thought.  Object oriented programming, what guides this? What is the best way to maximize uitlity out of htis? How do I beat the game?

---

I am in the manic, getting-shit-done-optimism mode.  Pursue the Nth Degree! I'M COMING FOR YOU!! Grind that shit. It You are on the way to that ultimately satisfying feeling.

Yeah.

It's like an adrenaline dump, testerone pump, ambition. I feel like myself again. I feel like a genius (this is exactly where you should be skeptical). I'm flying through the visuals, wormholes, universes, lateral thoughts, metativity, abstractions, etc.

---

Am I my wife's vampire? Am I just her leech? Have I made her life better? How have I made her life better? 

Here is my worry. She is drained because I keep heaping mountain upon mountain of my bullshit upon her. She's forced to work, and I've done almost nothing for her. How am I helping her be a happier person? This sounds emo.Maybe I'm retarded.

Me trying to "figure it out" is stupid, right? Or is it? I don't know. I do know that she is not as happy as I want her to be, and I need to fix it. 

Humility. Know Thyself. 

---

How do I navigate the world? On the phsycal surface, it is already very complex. So hard to understand. 

---

Is DCK like a video game?

---

Once I escape the hole, I digest it. I'm not taking enough to be in a true K-hole, I believe. But, I'm hoping I generate enough of that random seed to change my world in a controlled fashion.

---

Philosophy and existentialism must be learned by everyone. I think this is the critical flaw in humanity. It is why we will fall. 

---

Thought-terminator: I'm not that smart.

---

I need a daily checklist. Who doesn't have that? I should have a real planning section. 

Let's just start day by day. I can hear my parents' survivor's bias right now.


---

My children must learn about social structures. They need to see how the objects come together. 
|customTable|k
|Food|Calories|h
|Italian Sausages|500|
|Brussel Sprouts|77|
|Cherries|144|
|Total|721|f
!! How has your health been this week?
* 1uxb0x
** Great, other than a few allergies problems. My co-workers have had it as well. 
** Clumsiness continues.
* j3d1h
** Feels more physically precise and dexterous this week.
** Acne has begun.
** Been a little tired.
* k0sh3k
** Her guts were killing her earlier this week.
** Storms giving her headaches.
** Very tired.
* h0p3
** I've been sleepy.
** I've not been as anxious though.
** I've felt quite energetic several times this week. Manic rush, almost.

---
!! What happened last week? Have you been happy this past week? Why or why not?
* 1uxb0x
** Definitely happy. He got to play with his friends a lot this week.
*** That's because he finished his school work more often.
* j3d1h
** Loved Monday, where we worked on a family project, but the rest of the week sucked because she had a hard time getting into the groove of things.
** Overall, not terrible, but not that great.
** Wishes she had friends to play with besides at the pool. 
* k0sh3k
** It's been excellent and productive.
** She completed several very large projects that she was worried about.
** She had to deal with some stupid people, but handled it gracefully.
** Read a lot this week, which was nice. (Hopefully, she will write more this week too!)
* h0p3
** I was happy and hopeful this week.
** I feel like I have a better gameplan.
** I feel like I have a "million things to do" in a good way.

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** You did a great job focusing on your work this week.
** You've been more willing to do projects this week, like working on Minecraft and stuff. You've been patient working out the problems. 
** You've done a good job not melting down this week. You kept your composure, even when you were upset. 
* j3d1h
** You were honest with yourself this week. You had the integrity to say what you did right and what you did wrong. 
** You were really kind, and you avoided getting into fights. 
** You did a good job running your wire. The measurement was good. You ran it nicely, and you mounted it nicely.
* k0sh3k
** You have been lighter on us. 
** You have very good ideas, and you are good at sticking to the plans you formulate around the ideas.
** After reading your wiki, I realized that you could have passed the buck, and you didn't. You took the initiative and responsibility for a difficult social problem which I wouldn't have had the gumption or will power to fix. I think you were a good manager and people problem solver, and the world desperately needs those.
* h0p3
** I've been kinder to my chilluns.
** I appreciate that you focus on the details, like your wiki's favicon.
** You've been focusing on positive things in your wiki, and it shows. Also, thank you for my presents.

---
!! What will you do this week?

* 1uxb0x
** Appreciate the dryer.
** Try even harder on writing!
** Add a new magic deck in the cockatrice formatting. 
** Play House of Wolves with a different tactic.
* j3d1h
** Hug the cats.
** Appreciate the dryer. 
** Make the cake.
** Do my schoolwork.
** Make one minecraft video.
* k0sh3k
** Revising student work manual
** Writing each day in her wiki.
* h0p3
** Kick ass in EQ.
** Map out the places I'm going to send my application to.
* Make sure you keep backup copies of your wiki.
* Don't forget to sum your diet log.
* Vault your work.
* Keep up the good work on you Diet Log. I know it's hard, not fun, but it's worth it.
* Write every to yourself.
* You wrote 3 of 7 days.
* Write a log.
* Please use titles other than the date itself.
* Use your footnotes. I am your footnote whore.
* Categorize your quotes. Make it so you can use them in reflection.
* http://everquest.allakhazam.com/
** I'm actually doing quests now. Lol. All praise MQ2 and enormous custom hacks.
* https://www.reddit.com/r/explainlikeimfive/comments/6f5ku9/eli5_why_does_background_noise_seem_to_calm_some/
** Explains me. 
* http://www.truthdig.com/report/item/media_consolidation_is_a_threat_to_democracy_20170601
** We all have to participate as citizens for a democracy to function. 
** Monopolies are bad.
** Censorship, deception, and manipulation treat people as mere means: they are tools of psychopathy.
!! Liberalism in Latin America

Sources:

* https://plato.stanford.edu/entries/liberalism-latin-america/

Defining the word "liberal" or "free" or "well-read" has always been difficult, and "liberalism" is no exception. It's a classic problem. Freedom is constitutive to the dialectic itself. It is extremely human to begin at this massive, well-worn labyrinthine gateway. 

I should tell you that I'm largely ignorant of Latin American history, politics, geography, culture, and so on. I've seen plenty, but my narrative of it is more holes than narrative. 

When France sneezes, the rest of the world catches a cold. The Roman-Romantic family of cultures don't live in the same house anymore, but they have the same ancient mental viruses coursing through their hiveminds.

I have to admit, I don't understand why I've not heart much of anything in political philosophy on liberalism from Latin America. I come from the analytic tradition, but I've a modicum of exposure to continental philosophy. Why not a region of the world famous for its liberalism? Theologians in the US were more concerned than philosophers. Why is that?

I can tell you that since my conversion to legal positivism, I am profoundly skeptical of anything truly normative coming out of most work on sovereignty I see. Descriptions I adore, but prescriptions I generally find lacking.

I find it interesting that religious language was so pervasive in Latin Liberalism (LL). 

My ignorance continues to show though. The divisions here are completely unknown to me, although they make plenty of sense.

I worry that I've an Orientialist perspective about too many things in a sense, Africa and Latin America included. These are huge regions on the Earth, not monolithic, and the issues are too complex for me to make strong claims about in many cases.

This makes more sense of the bits and pieces I've picked up over the years and the people I've met. 

The article here surprises me by its use of Positivism. They mean in the epistemic sense (more along the lines of Logical Positivism, etc.). 

I'm so used to individualism and libertarianism in my society that it is interesting to see the emphasis on the societal organism, of corporate (metaphysical) ontologies. It's a different frame of mind. I'm pretty reductive too. 

Sadly, I have little or nothing of substance to say here.
!! When are you happiest in your skin?

Define happy. Define "in your skin." This question feels like its about uplifting joy and an overriding emotion. It might be a malaphor as well, since I normally think of someone as being comfortable in their own skin. "Happiest" is an odd phrasing to my ears. If comfort-happiness, a kind of contentment, is really what I'm supposed to answer here, I might answer differently.

I think it's such a weird phrase. I don't get it. Is it implying I would be in someone else's skin? Is it implying that I am not my own skin? I can feel alien to my own body, of course. 

I also want to point out that I'm Caucasian. There are obvious privileges it grants me. Skin is such an external almost esoteric property, except for its immunal properties (super useful there). 

Hrmm. I feel happiest in my own skin when I feel like I belong where I'm at in a purposefilled way. I'm an existentialist. I've been trained to adore those moments. I don't think I escape that pursuit. That's okay though.
* [[2017.06.03 -- Homeschooling Log]]
** I've noticed that when one does well, the other often does poorly. I wish I understand what this meant.
* [[2017.06.03 -- Philosophy Probe Log]]
** Informal Logic, as my wife pointed out, sounds like an oxymoron. Formality is about following rules, ultimately. Logic is about following rules too. Obviously it isn't an oxymoron, and that's exactly why we need to pry it apart very carefully, formally, logically even. =)
* [[2017.06.03 -- Cry Log]]
** I'm glad to see times where I cry happily. 
** This reminds me, I cried today with my wife. Not a lot, but I shed tears.
* [[2017.06.03 -- Prompted Introspection Log]]
** I actually liked this prompted introspection question. I thought it was dumb. Like it was some "business" seminar to get us pumped and shit. Ah, maybe it was. 
* [[2017.06.03 -- Link Log]]
** Short KYS section. Umm...good job? 
* [[2017.06.03 -- Diet Log]]
** Edited and summed.
* [[2017.06.03 -- Wiki Review Log]]
** I was right. It is a fact that very intelligent people tend to be less happy, more prone to drug use, etc. It makes sense. 
* [[ARAM: Miss Fortune]]
** This needs to be filled out. Next time I play MF, I guess.
|customTable|k
|Food|Calories|h
|Sausages|500|
|Mandarin|35|
|Apples|200|
|Pear|100|
|White Castle|270|
|Pork Roast and Veggies|1300|
|Total|2405|f
!! How is your health? Daily routine? 

It's good. I'm probably not getting enough sleep. But, I've been keeping a schedule well enough. I've noticed I've been sleeping in on Saturdays moreso than usual. I will continue to monitor it.

I've been more eating quite a bit. I'm not holding myself accountable to it yet, since I have plenty of fish to fry. I should consider it though. I've been keeping that log for a while.

---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

My good friends ALM and JOP (married) and their two children are coming to visit. I'm excited. I hope it goes well. We've not seen each other since they left our house in New Orleans.


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

They were struggling, and made significant sacrifices for them to live with us. It was an interesting time, and I was glad they came. I was sad to see them leave, especially since it wasn't under the best circumstances. We've kept in touch. They've rebuilt their lives in seems, and I'm very happy for them.

I'm feeling anxious and odd about it because I don't want it to be weird for us. That's all. I think my friend maybe doesn't want to see me (or he was worried that I didn't want to see him). I'm glad they are coming though.


---
!! What are you going to do about what happened?

Hopefully have a good time with my friends. =)
Today was productive. I started studying immediately in our new book. It was a chapter on rigging. The teacher told us at the end of the day that we might be fortunate enough to have a seminar/practicum on it (someone may be coming in to do one for us). This is something which the shop isn't well equipped to do. 

I studied most of the day for this exam. It was not easy. I ended up making an 80%, as did Chris. I'll take it. We're pushing.

I also talked to my teacher about my gameplan. He said he would do his best to work with me. Co-op'ing may be tricky if I go full time, but there is a possibility I can do it as long as the form is signed. He also said he could spot me hours for "previous experience" which I barely have (except for installing insulation for a bit). He understood exactly where I was coming from. He didn't believe the piece of paper was worth that much, but the experience in the shop and learning from the book was worthy. That said, the piece of paper is a line on my resume and it may matter, for all I know, some time down the line. 

In any case, he also advised me to speak with Randy. He said there is a possibility Randy might be able to find something for me.

At the end of the day, Chris and I spent some time drawing and planning the second fabrication for 3". We didn't finish, but we got a good ways into it.
!! If You Had To Choose To Live Without One Of Your Five Senses, Which One Would You Give Up?

There more than five senses. 

I'll do you one better. I'll rank them from most important to least.

# Sight (vision)
# Touch (somatosensation)
# Hearing (audition)
# Taste (gustation)
# Smell (olfaction)

Duh. I can barely smell in the first place, and I don't find it terribly useful most of the time when I can. The times I would miss it might actually be outweighed by the times I'm glad I couldn't. The rest of the senses I would miss dearly in almost all cases. 



//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖//

<<<
Writing is like driving at night in the fog. You can only see as far as your headlights, but you can make the whole trip that way.

--E.L. Doctorow
<<<

Here I attempt to turn my Husserlian ray of intentionality upon itself. When I am thinking existentially in a recursive manner, I can more decisively align my many orders of Frankfurtian networks of beliefs and desires. Here I directly practice [[metaliving]] by reflecting on where and what I've been focusing on in this wiki. I need to be thinking about the state and nature of the projects I am working on from a more objective perspective. I hope this is an act of mid-term executive functioning. I do it subconsciously and indirectly to some extent, but not explicitly enough. Here I force myself to write it down at least once a month.

Essentially, I need a constantly updating review and gameplan for this wiki. I must hold myself accountable and strategize. I need to consider where and how I spend my time and energy on this lifetool and wisely adjust my behaviors accordingly. I hope to have the material with which to strategize, forecast, and redirect my focus. Thus, here I generate a list of my currently prioritized projects and foci.

!! Vault: 

* [[2017.04.24 -- Retired: 🢔⦗Focus⦘🢖]]
* [[2017.05.05 -- Retired: 🢔⦗Focus⦘🢖]]

!!Ranked Focus:

# [[Wiki: Scheduled Practices]]
##  Conditional/Triggered:
### [[h0p3's Log]]
### [[Cry Log]]

## Weekly:
### [[Homeschooling Log]]
### [[Family Log]]
### [[Family Wikis Log Collection]]
### [[DCK Meditation Log]]

## Daily:
### [[Pipefitting Log]]
### [[Wiki Review Log]]
### [[Link Log]]
### [[Diet Log]]
### [[Prompted Introspection Log]]
### [[Philosophy Probe Log]]

# [[Employment]]
# [[Pipefitting Library]]
# [[Philosophipolitical Prescription]]
# [[Realpolitik Speculation]]
# 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖

Note that I do not rank my 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖, and for good reason. However, I do rank my foci. Here I tentatively set my tent pegs down in my nomadic journey. 

Lastly, I feel it necessary to point out the infinigress I approach in this log-based introspection. I'm running into classic postmodern metanarrative and autonomy problematics. As a matter of metamodern pragmatism, I will accept there must be a foundational boundary where I stop constantly investigating and deconstructing. I will leave it to my yearly audit/assessment/review to investigate the state and nature of this page in those respects and to push further into that self-reflective frontier. I feel this strikes an appropriate balance between the definitionally impossible logistics of that infinigress and having the integrity to continue my recursive, multi-ordered executive functioning.
* [[2017.06.04 -- Philosophy Probe Log]]
** I had literally nothing to say. It wasn't even that interesting. I just shat this one out. I don't want to do more like these. I think this log is failing. In fact, I'm killing it. That is not the quality of work I want to create. If I change my mind, I'll revive it from the graveyard.
* [[2017.06.04 -- Family Log]]
** I love my family. I'm really glad we do these logs. I enjoy taking the pulse and thinking together with them. 
* [[2017.06.04 -- Prompted Introspection Log]]
** This may be short, but I like more than the Philosophy Probe Log.
* [[2017.06.04 -- Link Log]]
** Short.
* [[2017.06.04 -- Diet Log]]
** DCK makes me not hungry at all.
* [[2017.06.04 -- Cry Log]]
** It can be good to shed tears.
* [[2017.06.04 -- Wiki Review Log]]
** I was talking to my family about this log during the meeting. My wife thinks it is a good idea. So do I. I'm hoping that eventually my children will be doing the same thing. I want them to literally have a conversation with themselves and to think about how they want to continue building and improving upon this practice.
* [[2017.06.04 -- DCK Meditation]]
** I'll ask my wife to look over it.
* [[2017.06.04 -- k0sh3k's Wiki Log]]
** I adore my wife. I know she's been having a rough time. I really want her to do with us, desperately.
* [[2017.06.04 -- 1uxb0x's Wiki Log]]
** I'll have to ask them about magic today.
* [[2017.06.04 -- j3d1h's Wiki Log]]
** Not much to say. The diet log is more consistent. We'll get there.
|customTable|k
|Food|Calories|h
|Apple|100|
|Pear|100|
|Mandarins|105|
|Pork Roast and Veggies|600|
|Turkey Sausage|90|
|Pizza|1200|
|Total|2195|f
* https://www.bloomberg.com/news/articles/2017-06-05/wsj-ends-google-users-free-ride-then-fades-in-search-results
** Can still be found through FB and Twitter, I believe.
* https://www.eff.org/press/releases/eff-asks-supreme-court-review-dangerous-interpretation-computer-crime-statute
** Jesus, people. That's what the password just is! It's a key. I should be able to hand my keys to people. This is a pandora's box.
* KYS 
** https://www.eff.org/deeplinks/2017/06/dont-be-fooled-comcast-pr-machine-it-has-always-opposed-open-internet
* https://github.com/sdmg15/Best-websites-a-programmer-should-visit
** For my daughter.
Today was a good day. The day began with Chris and I finishing the drawing and math for the second half of our large fabrication. We had done most of it yesterday, but I wanted to finalize the math since Nash decided he wasn't going to take his test until Friday. As a consequence (and it was obvious that this was the going to happen), the teacher told him he would do shopwork instead of sitting in the classroom. I didn't trust Nash to do any of the planning or math. Nash, of course, was not pleased to have to work in the shop. He is incredibly lazy.

 I studied for my next test for most of the day. There was a large interruption in the middle of the day. A recruiter from the international boilermaker's union stopped by to give us a speech.

He was full of himself, hated liberals and educated people, proudly ignorant, and was absurdly capitalist. The union was a way to make money, but he didn't see the social utility and underlying basis of it seemed. He was a simple man. That said, regardless of the d-bag messenger, I will be looking into it. There is a union 2-hours away from me. Probably not worth it, but I don't want to leave any stone unturned here.

The starting pay was good. They mostly do welding, but they need fitters too. Starting pay is $23 for everyone, unless they can pass more tests on MIG and TIG. Tops out at $31 not included about $12 in benefits. 

Let's say the world isn't ending, I think the best option is to become vested in multiple organizations. This distributes risks and maximizes my earning potential for retirement. I could reasonable become vested in 2-3 organization before retirement. This seems especially useful considering how top brass don't appear to make more money. It depends on our needs, I guess.

In any case, I didn't take the exam because of this interruption and because Chris left early. I decided to wait for him, and since I was ready to get my nose out of the book, I went into the shop to get some work done. Nash had cut 4 pipes and beveled 2. That was it. Lol. He was "practicing his welding" (i.e. dicking around). What an asshole. I'm glad I won't be actually working with him and that he doesn't hold me back from progressing at this point. I had to grab a 30-foot length with Matt (new guy) and make the cuts. I checked everything, marked it, and organized it. I didn't have time to get all the fittings set. I'll probably do that later since I highly doubt Nash will.
!! If you were given $1 million that you had to spend on yourself within a year, how would you spend it?

All the fun questions!

I assume I can't simply invest it for pure capital returns. I assume I can't just put it into accounts reserved (even by law) for particular purposes (like my children's educations). 

* I'd build a custom house near Louisville, KY that would set us up for life.
* I'd build a significant shop.
* I'd set aside some money for the kids to spend for short-term, mid-term, and long-term needs. I'd love for them to have the chance to manage money.
* I'd buy all the school supplies we'd need.
* I'd buy vehicles.
* I'd buy new computers for everyone.
* I'd give serious gifts and money to my family members. 

* [[2017.06.05 -- Prompted Introspection Log]]
** Edited.
* [[2017.06.05 -- Diet Log]]
** Summed.
* [[2017.06.05 -- Wiki Review Log]]
** I'm glad I killed the [[Philosophy Probe Log]]. It wasn't doing the work I wanted it to do.
* [[2017.06.05 -- h0p3's Log]]
** I am excited. I hope it goes well.
* [[2017.06.05 -- Retired: 🢔⦗Focus⦘🢖]]
** Oh yeah, I rewrote it. I'm going to stick to logs for a while, I think.
* [[2017.06.05 -- Pipefitting Log]]
** Edited. Forgot a part.
|customTable|k
|Food|Calories|h
|Pears|200|
|Nuts|320|
|Mandarins|140|
|Apple|100|
|Thai Food|1500|
|Chocolate Cake|300|
|Total|2560|f
Today I called into work. I very rarely get to see my friends ALM and JOP. They are staying for 2 nights. I'll still be heading in for the other days. Today, I felt it would be a good idea to acclimate them. 
!! If you could speak another language, which would it be and why?

Define language and speaking. I happen to think that any form of planned communication is a language, and speaking could just mean transmission. I guess the answer to this questions depends upon our philosophy of language assumptions.

I'd like to be able to convey all my thoughts to others and understand all of their thoughts. If we took into account even hypothetical people, there is a possibility that I would know everything. I worry there is a kind of omniscience born into this kind of omni-speaking. Maybe not though.

Assuming I couldn't have that, I would love to be a master of mathematics. 

Assuming I needed to just pick a standard, natural language we use everyday, for standard cultures, etc., I would pickup Mandarin or German. Both look outstanding. I think it would open up new worlds for our family.

Now, you may be thinking, why not just learn them? Because I genuinely suck at learning languages, imho. I don't have the mind or ear for it. I can do the mechanical work, but there is something innate that I'm lacking. I believe it is related to my autism.
* [[2017.06.06 -- Prompted Introspection Log]]
** I've noticed that I'm writing much shorter logs.
* [[2017.06.06 -- Diet Log]]
** Edited and summed.
* [[2017.06.06 -- Link Log]]
** Also short. Is my interest waning?
* [[2017.06.06 -- Wiki Review Log]]
** I'm not sure if I'm getting what I need or want out this log. That said, I like the accountability. I wonder if this is from EQ.
* [[2017.06.06 -- Pipefitting Log]]
** Edited.
|customTable|k
|Food|Calories|h
|Apple|100|
|Pear|100|
|Mandarins|105|
|Thai food|500|
|Sushi & Tempura|2000|
|Dates|300|
|Total|3105|f
* https://www.hongkongfp.com/2017/06/08/china-uncovers-massive-underground-network-apple-employees-selling-customers-personal-data/
** Own your own data. Trust no one that makes money off you.
* https://www.nytimes.com/2017/06/06/technology/tech-billionaires-education-zuckerberg-facebook-hastings.html
** I am reminded of the industrial revolution.
** War is coming.
* KYS 
** https://www.techdirt.com/articles/20170522/17343837426/cheap-dna-testing-is-giving-some-insurers-even-more-ways-to-deny-coverage.shtml
** http://forward.com/fast-forward/374000/tweeters-slam-eric-trump-for-saying-trump-critics-not-even-people/
** https://www.bleepingcomputer.com/news/security/malware-uses-obscure-intel-cpu-feature-to-steal-data-and-avoid-firewalls/

* https://www.currentaffairs.org/2017/06/the-clintons-had-slaves
** I am not surprised.
* https://www.reddit.com/r/politics/comments/6g0srl/discussion_megathread_james_comey_testifies/
** Yup.
* http://www.nelp.org/publication/raise-wages-kill-jobs-no-correlation-minimum-wage-increases-employment-levels/
** We don't live in a vacuum? Explain. 
* https://jobsquery.it/map
** Show me cost of living adjustments
* https://motherboard.vice.com/en_us/article/wikipedians-want-to-to-put-wikipedia-on-the-dark-web
** Heroes!
* https://i.redd.it/ptavrgn5if2z.png
** I'd like to see other mortality, homicide, and suicide rates. Additionally, I'd like to have an understanding of the accuracy of their record keeping. That said, it looks pretty damning.
*** Thanks for that Intel.
*** Yet another reason to run a separate firewall device (without Intel, it seems)
* https://www.microsoft.com/en-us/research/wp-content/uploads/2012/04/dime.pdf
** There are many considerations to take into account. They have only a small sample size here. 
Today was a good day. I studied until the break for the exam. Afterwards we took it. I did well, but Chris did not. We then went straight into working on the fabrication. We double-checked our measurements, and everything checked out. We started fitting and welding. It went by quickly enough. I was thankful for that. 

We eventually hit the point where we needed to make our 45's. We had slim pickin's on fittings to make our own. We did the math, and cut it. The protractor did not show the result we wanted. I'm not sure what we did wrong.

The teacher asked me if I had spoken to Randy. I haven't yet. I will once I pass my test.
!! What is “home” to you?

Home is wherever you originate or belong in a given context. Currently, for my everyday context, that is my apartment in Johnson City, TN. It's with my family, my computer, my cats, my things, and the life we build together. Wherever it is that we move, we move our home with us. I suppose this is the standard answer, but it is seems obvious.

The "belonging" aspect of "home" isn't quite addressed here though. I will say that I feel most at home in the Appalachian region though. It's a place where I feel most comfortable being an alien. In this sense, I guess I don't feel like I truly belong anywhere. I'm the wandering foreigner wherever I go. What is home to the alien, to the nomad, to the wanderer? I don't exactly know. It sounds like an oxymoron of sorts. 

There is something missing. I can tell you that. I don't have the right orientation toward the world around me.
* [[2017.06.07 -- Prompted Introspection Log]]
** Edited.
* [[2017.06.07 -- Diet Log]]
** Edited and summed.
* [[2017.06.07 -- Wiki Review Log]]
** I shouldn't be so harsh on myself. I have visitors, and that takes away from the time I would devote to this. Also, I am able to see what I missed and edit.
* [[2017.06.07 -- Pipefitting Log]]
** I said I had a family emergency to my teacher. I don't like lying. But, it is the cost of doing business. People do not empathize effectively.
|customTable|k
|Food|Calories|h
|White Castle|270|
|Thai Food|400|
|Dates|200|
|Brownie|150|
|Asparagus|60|
|Brussel Sprouts|77|
|Hot dogs|400|
|Total|1557|f
Today was productive. I studied a chapter and passed a test. My teacher is continually surprised that I'm aiming to finish one a day. It's the best option, I think. I didn't get any shop work done, but it was only a half day.

My teacher had me come over and help him in his office. He is getting his program accredited again this year, and he has a new evaluation rubric he has to create. He had keywords, and he wanted help filling them out. Basically, he wanted me to do his job for him. So, I did. I wrote it out. He said it was more indepth than he needed, but was happy with it. Quid pro quo. I will need his recommendation.

Also, I passed my drug tests yesterday. I'm now on the hunt! I went to see Randy, but he wasn't there today. I also told my teacher I would be seeing Randy, since he had asked about it (and seemed disappointed that I hadn't already done it this week given his advice; again, I need his recommendation).
!! What’s your favorite comedy movie?

Dogma or The Big Lebowski. I should point out that these movies are very meaningful to me. They aren't purely comedies. They are philosophical tools, which is what truly great comedy must do well. Both deal in social, political, ethical, existential, and religious issues to a great extent. They are fairly unique, imho. Few comedies can be extremely serious while also being so funny. The farce in them isn't low key.

Comedy movies are rarely enjoyable for me anymore. I'm really picky. That's unfortunate, since I love to laugh. It's just hard to surprise me in the right way these days.
* [[2017.06.08 -- Prompted Introspection Log]]
** I have been more depressed this week. I can see it. Speaking with my friends makes it even more obvious. I had to dredge up quite a bit and explain much of my new point of view (since they last saw me). I think I'm seeing part of that expressed here.
* [[2017.06.08 -- Diet Log]]
** Edited and summed.
* [[2017.06.08 -- Link Log]]
** Edited.
* [[2017.06.08 -- Wiki Review Log]]
** Visitors and EQ.
* [[2017.06.08 -- Pipefitting Log]]
** I feel like my pipefitting logs have been remarkably short. Why? One reason may just be that I'm not doing anything new. When I have new things I feel compelled to digest them. Another possibility is that I'm avoiding it. That is something I don't want to do. I'm not sure what else there is to say though. I feel like have a far more stable understanding of my environment. 
|customTable|k
|Food|Calories|h
|Pancakes and Berries|400|
|Hot dogs|400|
|Apple|100|
|Mandarin|35|
|Veggies|20|
|Deli|600|
|Total|1555|f
My wife has elected to be in charge of this as well. Ultimately, this was a necessary step since I will be traveling. However, I still have quite a bit to contribute. 

Currently, we are working on integrating socialization theory and practices into their curriculum. These will be vital skills for my children. We already have several studies devoted to the edges of what I'm looking for, but I'm aiming for more direct work on the topic. I want my children to be adept and well-practiced at making friends, developing relationships, understanding social contexts, making good first impressions, understanding the nature of externalizing and communicating, and developing the right instincts and habits for socializing. They need to fearless, free to experiment and fail, risk-takers, and shotgun-approachers. We're finding books, and we've found the time slot for it. We'll need to create spaces and circumstances for practice beyond church, the neighborhood kids, and the pool.

I will also continue to encourage them and offer daily lectures. 

My wife is unable to help/evaluate my daughter with the computer science subjects, but I can. I will continue to do so.
I need to get my wife to print out some resumes. I also need to find the websites and addresses of the companies I've found. I should go apply to them, even if I'm waiting on Randy.
* [[2017.06.09 -- Diet Log]]
** Why eat when you have Everquest?
* [[2017.06.09 -- Wiki Review Log]]
** I mean, I've accomplished what I've needed to IRL this weekend. But, I must monitor it closely anyways. It may be too much.
* [[2017.06.09 -- Pipefitting Log]]
** I am excited. I will be using my time after school to apply! I need my resumes first. So, I'll hit Randy up on Monday and pickup my resumes too. Tuesday and onwards will be further applications.
* His wiki made us laugh twice. 
* His interpretation of my emotions isn't quite accurate. This gives us a chance to talk about it and think together though!
* He has to do more writing.
EQ is a helluva drug.

---

I need to pause my EQ play. 

I need to think.

Brilliant broken men play this game. 

I need to make sure my children see themselves as building things for themselves. As in, real life things. I build things in this game, but they are just zeroes and ones. I'm good at it, but it does not matter. What actually matters to me is my life. I'm building the wrong life, playing the wrong sub-sub-sub-game, etc. I have to pivot my focus and coordination to a different configuration of sectors.  

I will stop playing EQ. It generates "tokens" and makes me feel happy. It is a skinner box though. See it for what it is. There are so many layers to this skinner box. Walk your way through it. You feel like your character, but you aren't your character. See your life as your character. Play life like a video game!

---

I feel alone right now, but that's okay. I can see I am in a dialogue with myself here. I must write a shitty autistic story for myself. Lol. Ok. RPIN and KIN, join us in the dialectic. 


```
/spawn RPIN
/spawn KIN
/say Hey faggots! <3
/shout woot woot!
```


But, I am them. I'm not sure how to write the dialectic. The rules don't make sense to me. That's okay, though. 


```
/reset
```


I am h0p3! I am having an existential moment here. Bear with me one moment. I feel like me again, creative, autonomous, here, in the now, ready to rock, executing the orders I hand to myself. I am like my EQ character, but in IRL. I do not feel enslaved. I feel I like I control my destiny (despite and within that matrix of principles which govern, bound, and regulate us).

---

I'm so glad I learned philosophy, but I'm glad I'm not trapped in some terrible economic system that evolved around it. Paying smart computers to teach you how to computer better, to shape your computing. There are many things I did not understand in that context (a billion times over). I must be practical! Plumb the depths which generates fortune. Be a good EQ character, h0p3.

---

Did you rise to the top quickly? You had to cheat, slip through a crack, or break the mechanics. This is one of the most invaluable things EQ taught me. I've seen it over and over and over again. I've seen it in all its shapes, kinds, type, sets, etc. That is the nature of "innovation." Innovation is, of course, a two-edged sword. Who wields it? Conventions are not obligations, but one must still maintain principles for navigating the infinite series of rooms of dialectics here.

Seriously, the psychopathic specimens in our species are predators that infect, enslave, and consume humanity.

That is the world I live in.

---

I have deleted the Virtual Machines from my hard drives. I'm done.

I am done with the game, but I am glad I did it. Like so many things in life, I'm glad it came, and I'm glad it went. I'm glad I've passed through the fires this time.

I named my characters "Humanity," "Hope," and "Test," by the way. My last messsage in the EQ world was "EQ is a Drug! I have to stop. GL!" 

Playing EQ has opened up the real world for me. It gave me footholds. I think, in a weird way, it was good for me. It shows me the dimensions of things.

I think it is a dangerous drug for my son. EQ is very dangerous to me. I could lose myself in that world. I need to write about Everquest. 

Executive functioning right there, bro. Done. I nuked it. I really did enjoy that game. My brother was extremely kind for letting me play. He helped me a lot, and he knew I would love it. Thank you. This was a good test! I could see that game taking all of my time. I could have walked down that path for years. It was a beautiful world of mathematics. This game is my...


---

How do I respond to my brother?

That is one of the best games I have ever played in my entire life. It hit the spot, dead-on. It's an amazing drug for me. Thank you so much! It was like a vacation into a dreamworld. I enjoyed the experience immensely, but it was also a useful test for me. I needed to inspect it and myself. It has been a powerful force in my identity. I am going to use the EQ mindset to play life like a video game. You have opened my eyes and gave me a wild ride. Planning, researching, and grinding was an absolute rush! I love to see executive functioning pay off so directly and quickly. It has all the right short-term marshmellow test things going on inside that world. I have learned from it. Thank you.

---

I cannot even begin to catalog the ways in which Everquest is symbol for life. It's not the only one, but it is a strong one. It has many gateways to understands the frameworks, complexities, 

My right index finger is numb and tingling. It has been for days. It feels like I can't use it. I should talk to my wife and see a doctor. I'm hoping getting off Teh Evercrack (EQ, Everquest, et al., etc.), 	


My children need to see themselves as adapting beings.

---

The grind of life. EQ gave me mental representations, examples, frameworks, paradigms, metas, and turtles all the way down about life. 

Everquest taught me to grind. Grinding has improved my life tremendously. I've always seen the metativity, but I've not chosen to explore it enough. I need to explore it more. That is, life itself is a grind that I can appreciate. I love to grind, to find the best way to grind it. It is fun to strategize. It is a game! What's wrong with obsessing about the game itself? Nothing, not as far as I can see anyways.

I need this grind mentality. I am an amazing worker with a few catches, quirks, etc. Iron those out, plan ahead, and you will blow everyone out around you in IRL that this is possible. You've done it in video games many times. I need to thank my brother. He gave me the drug, and after I exited the trance, I see more clearly now. That is the cliche, but there is something to it. It is what it is.

Everquest helped me understand the dimensions of life.

---

I can see how my mother's letters were were ways for her to digest the issue and be a catalyst to cause the right kind of reaction in the world. Splitting the two, I can see there is a packet for our own minds and a packet for external minds. Of course, I write this openly on purpose. I must avoid evasion. I must be honest. This is the CI.

---

Playing life like a video game is hard. You have many pans and pots in the fire to juggle. You have to have just the right amount (the golden mean) of everything, in the right sequence, and so on. Virtue theory, of course, continues to stun me in its wisdom.

It's easy to have will power in a video game. You're playing! The desire to play is already defined by you; it is assumed!

---

I need make more analogies to EQ. It is the language and world I can analogize to so strongly. Why not speak the language of EQ with myself? The metativity is ripe for the picking.

Consider this example: when I see my parents lives through the "EQ" lens, I see people who are very good at their video game, doing well with what they had. I think they have the wrong strategies though. I think their character development is deeply flawed, inefficient, and sometimes even self-defeating. I know this because I've done it myself. I've been there. I can empathize through this abstraction lens.

Of course, the lens always has the flaw of being overly reductive. You take the bad with the good.

Is this the right mode? Should I "play life like a video game"? To what extent, in what ways, what are the exceptions, and so on and so forth?

---

Back to the problem at hand. How do I make my children happy? I'm raising EQ characters. How do I maximize their utility? What can I do for them?

In an immediate way, I see I still need to help hold them accountable to their schoolwork. I cannot simply allow my wife to bear this burden-joy. It is mine too!<<ref "1">>

Furthermore, I need to be actually doing work with my children the whole time. I need to work alongside them. I need to teach them how to work with others, especially since they have precious few opportunities to do it. This is part of their socialization. (We are looking to play this skinnerbox of life correctly!)

I'm very autistic. I cannot understand their minds. I do not wish to manipulate them, only guide them. I must be friends with them.

My children need a game to plan. A real life game. One that they take to be their real task in their off hours. I want them to squeeze it for everything it is worth. I want them to be obsessed with it. I want them to grind with it. I want them to play life like a video game, but I want to do it in a constructive way. Playing EQ itself was a way for me to come to understand that fact, but that doesn't mean it is the best path to come to understand it. I want them to be passionate and pour themselves into their work. I want to get their motors running, get that fire in their belly, and to help them see their true quests. How do I help them find joy and passion in building their lives? They have to own it! I can't be their slavedriver, I have to be their facilitator, their mentor, their guide, and their friend. What do I do!? How do I accomplish this task? It is of the utmost importance to me! I cannot simply rest upon the "blind leading the blind," we must march forward, experiment, and continue to evolve our parenting to the needs of our children.

---

<<footnotes "1" "I wasn't full-force lying to myself, but I think I was deceiving myself to some degree. I need to make sure the kids are doing their work as well.">>
|customTable|k
|Food|Calories|h
|Apple|70|
|Tacos|900|
|Hummus, Olives, and Pita chips|500|
|Sorbet|150|
|Total|1620|f
!! How has your health been this week?
* 1uxb0x
** Great!
** Felt like he was going to throw up at the pool after getting water in his nose
* j3d1h
** Stuffier nose this week. Hasn't been taking allergy medicine (and didn't feel it has gotten that bad to use it). 
** Swallowed a lot of pool water. Will stop doing that.
* k0sh3k
** Better than Monday. The new Omega-3 (krill based) made her sick. It was cheaper, but it made her sick. She switched back to vegan.
** Tired.
* h0p3
** I'm sleepy. I felt quite addicted to EQ this week. I'm glad I'm done with it. 
** I feel like I'm conquering though. I am reminded by my son's poem: [[Our Son: The Conqueror of Happiness]]

---
!! What happened last week? Have you been happy this past week? Why or why not?
* 1uxb0x
** Happy. We had swimming, a 3-day break, and friends visit. Unhappy because we didn't swim on Friday when we had planned to.
* j3d1h
** Happy. A bit annoyed by the little girls, but not all that much.
** Loved swimming.
* k0sh3k
** Happy. We had guests and good food. 
** Completed much at work, although not as much as she intended.
** ILL and Circ integration is going well.
* h0p3
** I did my work, although my personal life and wiki faded some to my EQ addiction.
** I passed my drug test and I'm ready to apply.
** I finished quite a bit of work in my pipefitting class.
** Overall, I'm pleased with how it turned out. I'm glad I had the opportunity to revisit EQ and understand more about myself.

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** Did very well with the little girls this week. It was difficult in some ways.
** You were asked to clarify yourself many times in a row because we didn't understand you. This was very frustrating for you, and you didn't break down. You didn't give up. You had the right constructive attitude.
** You have been better at expressing yourself this week.
* j3d1h
** I believe you are learning how to control yourself in public spaces. You are developing an awareness of how others perceive you (that doesn't mean you have to change who you are, but you see that you must use this information wisely). You immediately saw the value in trying to stop using "ummms" and "uhhhs," but you also have seen how tone, phrasing, and content have been things to hone. You are beginning to appreciate the socialization mountain you have to climb.
** You had to refrain from watching the videos you wanted to watch because little children were in your room, and they weren't allowed to watch such videos (oh noes, the "swear" words and "dick" jokes). Essentially, you demonstrated hospitality and sacrificed for your guests. You also baked brownies and cake for our guests!
** You've been intentional about taking care of how you look.
* k0sh3k
** You have been a good example to the children and wise woman to have chosen a lifelong hobby of reading books. I really want our children to be far more like you in this respect. You've chosen a constructive hobby that helps you grow and makes you happier in the long-term. 
** You were forgiving this week. You forgave us for not doing our schoolwork on Tuesday (although, you let us make it up).
** You were clever and empathic in trying to find a solution for Ranga's desire to go outside. 
* h0p3
** I patiently dealt with annoying kids. (What's new? XD)
** I was very empathic towards everyone to give up EQ (something I loved) for the greater good.
** I was gracious and patient with my interrogator (it took many hours of several days).

---
!! What will you do this week?

* 1uxb0x
** Build a deck in cockatrice formatting on the wiki.
** Find a new strategy in House of Wolves.
** Read about ketamine.
* j3d1h
** Eat more fruits. Diet log too. And school work. And...regular sheets.
** Make sure I make a video.
* k0sh3k
** Finish revising student manual. 
** Record ILLs.
* h0p3
** Will speak to Randy (go every day if I have to)
** Compile addresses and sites. Read about them.
** I will make sure my wife prints resumes tomorrow.
** I will apply to 2 jobs this week, minimum.
!! How is your health? Daily routine? 

I'm doing well enough. I passed my drug tests! I've not been getting enough sleep, but I've been getting at least 6 hours each night. I need to push harder to secure myself 7.


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

I played EQ for a week. It was amazing. It was a private server designed for botting. It was customized entirely for using MQ2 scripting. It was amazing. Amazing! It has to be one of the best games I've ever played in my life (in fact, I think it is the best I've ever played). I had to quit though. I saw that it took up too much of my attention, energy, time, resources, etc. My life begins to warp around it. It prevented me from being who I need to be.


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

The game was extremely addictive. I'm lucky to have escaped it. The wiki was my evidence, and DCK gave me the will power to destroy my VM and write about it, to make the decision to overcome my akrasia. 

I am at the same time grateful for how much the game taught me about life, to work hard in the grind, to be passionate, how it gave me the tools to understand myself and world, and the raw pleasure of the experience, but also fearful and weary of touching the substance. I know how little self-control I have around it. At this level of addiction, I can only go all or nothing. There is no in between, I hate to say it. I just don't have the self-control to hit the golden means! =( It is the wise thing to do though.

EQ is a helluva a drug!

I would like to point out that I've now installed League, Cockatrice (MTG), D2, and EQ. Clearly, I'm jonesing. The lack of cannabis over the past 2 months is being felt. I need to channel this energy preferably into building my life instead of a digital character. I need real life points, not game points.


---
!! What are you going to do about what happened?

I want to thank my brother. It was a wonderful experience, and I've learned a lot. I don't want him to feel bad at all (I desperately don't want to hurt him here). He is a far more responsible person than I am in many respects. He can handle this drug better than I can. I'm straight up envious that he gets to play this game and I can't. 

I need to think about whether or not I should continually ask him about it. Do I want to live vicariously through it? That seems safe enough. The temptation and the thoughtloops must be avoided though. I think I'll ask about it when I don't feel the pull, only as a conversation maker. Ugh. The line drawing on this addiction.

In any case, I need to make my family's happiness my dependence (not actually an addiction by definition).
* Not much was written, but this was an odd week. We had visitors for a substantial portion of the week, and it threw everyone's schedules off.
* We really need to buckle down on it.
* We've added a Cat-o-log section. Telling stories through the cat's eyes will be useful in many ways. I think it's fun too!
* This is the first week she has written in her wiki everyday. In fact, she wrote two posts most days. I'm really grateful. I feel like we are in this together, and that we will both be good examples for our children. I think it will help us directly and indirectly in many ways, and mastering this practice will help our children master it as well.
* There was an introspective question which honestly had a serious answer. It was wise. I want to see more like that, of course, with her natural humor too.
* We talked about keeping a log of ILLs, recording and categorizing them. She needs to do science here to make her life easier, to do her job better, and because she is literally a scientist.
* https://www.nationaleconomicseditorial.com/2017/06/05/death-america-entrepreneurship/
** Some good points. The big boys makes the rules, and the rules don't benefit you and me.
* https://qz.com/1000627/in-five-years-machines-that-talk-to-one-another-will-be-the-internets-biggest-population/
** I want none of it while I still can. I'm not a luddite. But, I want a clear firewall. I don't want to be bent over a barrel for this shit.
** Free market for whom?
* https://www.nytimes.com/2017/06/08/smarter-living/benefits-of-talking-to-yourself-self-talk.html
** Hey, wiki, you are being justified here as well. Wiki needs a name. I dub thee "Bobert the Wiki."
** Bobert, you look kind of dark today. Good for you Bobert, good for you.
* https://www.scientificamerican.com/article/for-first-time-einsteins-relativity-used-to-weigh-a-star/
** Yeah Science, bitch!
* https://www.forbes.com/sites/laurashin/2016/12/21/hackers-are-hijacking-phone-numbers-and-breaking-into-email-and-bank-accounts-how-to-protect-yourself
** I don't think the problems are getting any better.
* https://www.bloomberg.com/news/features/2017-06-08/no-one-has-ever-made-a-corruption-machine-like-this-one
** Oh, I'm sure it's corruption turtles all the way down. Except you Bernie, right bro? Right? You would never do any less than perfect, right?
* http://cepr.net/blogs/beat-the-press/the-evidence-does-not-support-macron-s-claim-that-deregulating-labor-market-will-boost-economy
** And, the masses have, yet again, taken the bait. It's either insane alt-right or more palatable insanity of the neoliberals. Again, welcome to false compromise, a classic rhetorical move devastating the idiots among us.
* http://www.nationalreview.com/article/448456/higher-education-enrollment-steady-decline-recent-years
** And, yet, a real //liber//-al education is the kindling of a flame which we must pursue with passion, with every fiber of our being. Yo, be wise and pursue the truth!
* https://www.theguardian.com/cities/gallery/2017/jun/07/boxed-life-inside-hong-kong-coffin-cubicles-cage-homes-in-pictures
** I am continually disturbed. Rise up! Fight!
* https://i.imgur.com/1fR6maD.png
** I've not looked into it's authority. It may be correct though. Seems about right.
* KYS
** http://www.huffingtonpost.com/entry/reality-winner-national-security-agency-leaked-documents-parents_us_5939e15de4b0c5a35c9dd0a8
** https://www.washingtonpost.com/news/checkpoint/wp/2017/06/09/u-s-led-forces-appear-to-be-using-white-phosphorous-in-populated-areas-in-iraq-and-syria/?utm_term=.f97a34dcd348
* http://aging.nautil.us/feature/218/why-you-cant-help-but-act-your-age
** Nautilus continues to deliver Grade 'A' content over and over again.
* https://i.redd.it/147xfp2rd43z.png
** Unfortunate kernels of truth.
* http://www.bbc.com/news/magazine-31604026
** I rarely have happy non-computer or non-humor related topics. This one was interesting. I bet my wife will like it a lot.
* Super Cereal
** https://imgur.com/jNf8pa8
*** My daughter would like one.

 
!! What’s your favorite holiday and why?

I generally don't even care for holidays that much, except for the fact that I get to see people I care about. In fact, I find most holidays fairly repugnant (although, I'm completely in favor of people having a great time and using their leisure time in a the classical sense too). 

That said, I don't despise all holidays. There is one which stands out clearly to me:

Our wedding anniversary!

It makes me reflective, grateful, and hopeful. I see where we've been, how far we've come, and am able to consider where we will be in light of that. It isn't like I don't contemplate them over the year, but it is especially consistent and clear to me during our anniversary season.
* [[2017.06.10 -- Homeschooling Log]]
** I am relieved and also worried. I'm hoping that our wikis will do tremendous work for us here. 
* [[2017.06.10 -- Wiki Review Log]]
** I didn't get much done that day on the wiki, but I had tons of things to do IRL. I had to work, fix my friend's car, cook, clean (a lot, since the house was a wreck), and, of course, play EQ (had fun with my brother too).
* [[2017.06.10 -- Pipefitting Log]]
** I'm hoping to write down that information today.
* [[2017.06.10 -- Diet Log]]
** Summed
* [[2017.06.09 -- Prompted Introspection Log]]
** Yes, this has suffered as well. I'm even a day off.
* [[LDON Script]]
** Fare thee well.
* Woke up before my alarm clock by 2 minutes. I'm back to my old ways again.
* My wife made my lunch for me. She is so generous to me.
* Helped the children get started moreso than usual. I think it is part of why they succeeded today.
* Worked hard, and while I didn't enjoy every moment of it this morning, I'm glad I did it.
* Talked to my family during lunch break and surfed the interwebs.
** Solved some computing problems with my daughter (she helped me, rather)
** Got my son to chat with me more. I'm trying to instill in him the desire to communicate with others. Chat is a safe way to do it, and I need him to at least appreciate the social conventions at play here.
** Made sure about the resume. Thank you, love!
* Worked hard and enjoyed it. I love getting my hands dirty (at least a bit, maybe not too dirty).
* Stopped by to see Randy, but he wasn't there. Never give up!
* Talked to my brother JRE.
* After checking on the kids, getting my hugs, and surfing some interwebs briefly while finishing the CLG/TSM match, I took a nap.
* Laid naked with my wife talking and had sex (highest of fives).
* Showered (I needed it ;P).
* Helped my daughter clean the kitchen while we talked about working hard and had my son work on cleaning his room.
* Made chili.
* Made plans for 4th of July with my cousins who are coming to visit us.
** This reminds me, I want to set a date for my wife's family to come visit. We are the central location between everyone, and it makes it fun and easy. 
*** This reminds me that we should contact my wife's niece who will be moving into town to attend the shitty university here. We should connect.
* Went shopping for cornbread, water, and sorbet with my wife.
* Rescued the cat who freed himself.
* Ate dinner and watched //Last Week Tonight with John Oliver// with my family.
* Had the family work on their wikis, and I'm writing mine too.
* I hope to call my brother AIR, eat sorbet, read my next pipefitting chapter, and watch some League. I'll probably fall asleep to some Venture Bros reruns.
** I'm being a bad boy leaving my cheat-sheet planning and mapping out the employer I'm visiting tomorrow for tomorrow.
|customTable|k
|Food|Calories|h
|Apple|100|
|Pear|100|
|Peach|59|
|Mandarins|70|
|Burrito|400|
|Chili|750|
|Cornbread|580|
|Sorbet|160|
|Nuts|170|
|Total|2389|f
* https://www.researchgate.net/blog/post/read-this-but-of-course-you-are-free-to-refuse
** Makes sense.
* https://news.vice.com/story/pink-slime-lawsuit-worth-5-7-billion-could-change-journalism

** Psychopaths are more options available to them attain competitive advantages in the judicial and economic market places. Nothing holds them back.

* KYS

** http://www.politico.com/story/2017/06/11/palantir-defense-jim-mattis-inner-circle-239373
* https://www.scmagazineuk.com/platinum-hackers-exploit-intel-amt-sol-for-secure-cc-communications/article/667477/
** It's going to continue to be a catastrofuck
It was a very productive day. We studied advanced pipefitter math, which was just trigonometry. I found errors in the book. I'm going to have to learn how to speak "pipefitter math" in terms of set, run, and travel. I end up translating from the mathematical terms to the pipefitter terms. I'll get there. The teacher said we needed to bring our "A" game on the test after he checked it out. He even went over it with us and laughed that he couldn't pronounce the words on the exam. It went fine, of course. It was odd that Chris answered them quickly in the study session (when he knew the section we were looking at), but took a long time in actual exam. 

Nash was, surprisingly, studying on the new book as well. He told me that he had talked to a friend of his who graduated from this program and was told that people with NCCER certifications and pass the field test walk in as Top helper or pipefitter directly. That would be pretty sick. So, he decided to buckle down and do his work, kinda. That said, after he took his exam, the teacher brought him in the office and yelled at him. Nash doesn't actually try very hard, but he thinks he does.

I'm going to need to start studying at home more consistently to make sure I can do one a day. It's important that I push hard. 

In any case, afterwards, we went straight to the fabrication. This is taking a long time because we are studying all day for these tests. I had Nash tack because he needs something to do. It's clearly Chris and I who are the main workers on this project, and everyone else either doesn't want to participate or perhaps feels left out. I don't know what to say. Chris and I are not mean. They aren't jumping in. They aren't trying to understand where we are and figuring out how to join us. When I try to explain what we are doing, they don't seem interested. They are all screwing around welding. No one but Chris and I are actually pipefitting. They lounge. I hope I will do a better job of inserting and asserting myself into work in a polite and constructive fashion. I want to kick ass.

We cut a 90 elbow to make 45's since the others failed. We've got them fitted and tacked (mostly). It's coming along.

Also, my wife printed out my resumes, and they look beautiful. I need to find out where I'm applying to. I need to create a cheatsheet with all the pertinent, detailed information that I'll need for more extensive applications. I hope to apply to my first tomorrow.

Also, I stopped by to see Randy. He wasn't there. I'll keep trying.
!! How do you define love?

This is a classic question for my life. I have tried so many times to define it. I don't know. I believe love sits in contrast to like. I have no doxastic control over what I like, at least not in any direct way. I can't choose to like or dislike something with a commitment. Love, however, is the kind of thing we choose. It is a commitment. Being the kind of person who loves, of course, isn't something we can simply choose to immediately become either. I think there is a difference in intentionality and the employment of wisdom between like and love. I can't quite put my finger on it though.

Love is seeking the best for X given what you take to be the standard of the good for X. It's a pursuit of the flourishing or the good of an object (individual or corporate, simple or complex, and so on and so forth). Unfortunately, I can't define "The Good" for you either. 

Fuck.

* [[2017.06.11 -- h0p3's Log]]
** I took a nap today. I assume I'm catching up on sleep debt.
** Edited.
** I spoke with my brother JRE about it. He actually saw my message. He understood.
* [[2017.06.11 -- DCK Meditation]]
** I am grateful to myself for this. It was a wise move.
* [[2017.06.11 -- Diet Log]]
** Summed.
* [[2017.06.11 -- Family Log]]
** I've modified the template. I want our planning to now include a fun and unfun objective. I need my children to start planning ahead more explicitly.
* [[2017.06.11 -- k0sh3k's Wiki Log]]
** I think my wife is coming around to this practice. 
* [[2017.06.11 -- 1uxb0x's Wiki Log]]
** I'm hoping we succeed this week. I will try to keep them on task.
* [[2017.06.11 -- j3d1h's Wiki Log]]
** I'm hoping we succeed this week. I will try to keep them on task.
* [[2017.06.11 -- Link Log]]
** I think I may add a "Super Cereal" section.
* [[2017.06.11 -- Wiki Review Log]]
** Fare thee well indeed. =(, =|, =)!
* [[2017.06.11 -- Prompted Introspection Log]]
** It's time to write more.
* Woke up early, but went back to bed. Alarm clock woke me up afterwards.
* I woke the kids up and got them started.
* I worked hard and tried to progress outside of classwork itself in several ways. I'm proud of that.
* I spoke with my family at lunch, and I was interrupted by Luke. I did find the address to visit Jacobs though.
** I also wrote my cheatsheet. 
* I worked hard again.
* I visited Randy.
* I visited Eastman, but it was a failure.
* I listened to Sessions obstruct justice for over an hour. I will never give up.
* I got home at the same time as my wife, and we found that my children didn't do their work. We had a tough talk, again.
* I had some fireman time.
* I made Indian food for dinner.
* My son didn't want my help for dishes =(.
* I've sent the kids to do their logs before bed
* I'm having a drink tonight. I'll probably watch some videos before I sleep.
* Honestly, it has been fairly chill, except for my children.
|customTable|k
|Food|Calories|h
|Peach|60|
|Pear|100|
|Mandarins|105|
|Chili|375|
|Cornbread|290|
|Gatorade|180|
|Sorbet|140|
|Tikka Masala|700|
|Brussel Sprouts|80|
|Vodka|120|
|Deconstructed Deli|400|
|Nuts|140|
|Total|2690|f
Today was interesting. I went to the office to get them to use my account to buy the 4th book, since I thought I'd be ready soon for it. I also found out that I'm officially in loan default and this is why I can't receive Tennessee lottery scholarship funds. 

Charlie, the old liaison, singled me out today in the building. We talked for a second. I explained I was looking for work. I told him about my resume, and he said he wanted a copy and would look on my behalf with some other staff. I gave it to him.

I also went to my teacher with my resume. He will be sending it to TEC. I will also visit them because, why not?

I went straight to studying, even without study points. The guys went to work on the simulator. I went and helped them when they needed it, but largely studied. We finished the 3" project by the skin of our teeth. It was a terrible fit. I believe my teacher is wrong about the 1/8th buttweld takeouts. He says not to do them, but the book says to do them. We keep being too long, and the takeouts would have made it fit. Chris and I have both agreed to start doing these takeouts, we just won't tell our teacher. 

The teacher helped us get it mounted by pointing out a new tool and giving us his unique alignment tool. It was tricky. I had to sweat a lot to get it in there.

Afterwards, I went back to studying. The teacher came to talk to me because he wanted me to do more shopwork. I argued (respectfully) with him about why I thought this was the better way. Even though I'm probably right, I think it would be unwise to cross my capricious teacher. He does not think rationally, and whether or not he would give me a good recommendation has more to do with his feelings about me than anything else. So, I decided to do it his way. I believe placating him instead for the reference is still more valuable than the testing. It's a sacrifice though.

The teacher assigned 2" buttweld for the simulator. Chris and I quickly zoomed through the isometric, collecting measurements, drawing up a fabrication, doing the math, and cutting the pipe. We may quickly put the first half together.

Afterwards, I visited Randy. I walked in on him trying to build something for the shop. He needed my help. I'm glad I kept an extra pair of gloves in my backpack (since I normally keep it all at the shop). I grabbed my stuff and did the fitting for him while he welded. We talked. I told him about my predicament. He will be talking to his boss on Thursday to try and find a pre-apprenticeship position. He did not sound confident that he could find me anything because even 4 apprecentices don't have work at the moment. Admittedly, the boilermakers union looks better right now. If I'm traveling, then I'm traveling. 

Interestingly, Randy said that he would allow me to be in the union while working elsewhere at a major company. It counts for my hours toward the union. I think this is a novel idea. I need to hear what my brother thinks about it.

Afterwards, I went to Jacobs' address. It lead to nowhere in an industrial park area. I also hit up the corporate Eastman building. They directed me to go online. That is what I was trying to avoid. I want to talk to someone in person. Fine. I'll do it online.

!! What do you think is the greatest invention? Why?  

What does it mean to invent? I honestly don't know. You think you know, but I don't think you do either. There's some serious ontology and autonomy problems here that make it unclear to me. I'm not convinced inventions are creations instead of discoveries. I'm not convinced that you can't invent a human by creating one; I'm not convinced replicability is even necessary to the concept of invention. 

Further, I don't know what makes a great invention great. What standard ought we use? Is their an inventioness standard, a good of inventions in themselves? Otherwise, great for whom or what? Do inventions only have instrumental value? I cannot answer these questions. 

Can "nature" invent something? What about the universe? Don't you see!?

Fine, I'll answer the question like any retard. I think computers are the greatest invention of all time (and I'd add a ton of caveats, and I'd tell you I'm not sure we invented computers at all, and I'd tell you we are computers ourselves, but I don't think you really care).

* [[Summations, Brief Explanations, and Valuable Paragraphs]]
** I need to reorganize that part of my wiki. I care about those collections. I use them.
* [[2017.06.12 -- Carpe Diem Log]]
** This is an interesting log. Not all of them work, but this basic one seems quite reasonable. 
* [[2017.06.12 -- Prompted Introspection Log]]
** You know, I'm fine keeping it shorter. Exploring futility is something I should do only when I'm really up to it. Pointing it out I should always do though.
* [[2017.06.12 -- Diet Log]]
** Summed.
* [[2017.06.12 -- Wiki Review Log]]
** I didn't end up writing more. Lol. But, upon reflection, I think it's fine. Sometimes a lot will spill out, and sometimes none will. I can't hold myself accountable to always delivering an incredible wall-of-text. That's okay. Do your best.
* [[2017.06.12 -- Pipefitting Log]]
** I'm glad I kept trying. I should take that as a lesson to never give up.
* [[Carpe Diem Log]]
** We'll see how it goes, eh?
* [[Social Engineering Principles]]
** Fill your toolbox, pray you never have to use some of them.
* [[2017.06.12 -- Link Log]]
** I've noticed I've been surfing less. That's okay.
* Work up before the alarm clock today. Sleep was a bit intermittent, but my wife was quite restless last night. I feel bad for her.
* I got the kids up and started them. My daughter had to do dishes first.
* I worked hard, as usual. It was enjoyable. I like working with my hands. The drama was annoying, but whatever.
* I talked to my family over lunch and prepared myself to visit TEC.
* I talked to my teacher about TEC and Jacobs.
* I worked hard after lunch.
* I called TEC up, and I realized I need to just apply online. I still want to find a way to get to know them in person. I think meeting me in person leaves a mark on many people. I don't want to just be a number in a database.
** I have been thinking more about the union's offer to accrue time with them secretly while working for another corporation. This would allow me to stay instead of traveling. The pay wouldn't be as good, but I would kind of hit a few half-birds with one stone this way.
* I came home and talked to the children about their schoolwork. They seemed to be more on track today, thankfully.
* I surfed some and took a tiny nap before my wife came home. 
* My wife and I talked, she wasn't DTF (she hasn't been feeling well, and we don't understand why). I had some fireman time instead (give me 'dem pleasure chemicals). 
* We made pizza for dinner while my wife went over the kids' schoolwork.
* We had planned to go swimming, but it started raining and the kids still have some work to do. It probably won't happen. =(
* Tonight, I want to complete a Link Log entry, continue to tweak my resume, apply to TEC, play some magic, eat some sorbet, perhaps have a drink, watch a show, etc.
** I'll tell ya, I really want to play EQ. That's the drug I really, really want. I know I can't. It sucks. That's okay. I just don't have the self-control for it. It's not what we need right now. Be wise!
** I'm going to enjoy my evening.
|customTable|k
|Food|Calories|h
|Mandarins|105|
|Pear|100|
|Tikka Masala|400|
|Nuts|160|
|Pizza|649|
|Watermelon|94|
|Wine|200|
|Apple Strudel|330|
|Chips and Guac|700|
|Total|2738|f
Today was productive. I spent my time in the shop. We finished the first 2" simulator fabrication. The takeouts our teacher told us not to do worked out well. We're going to make it 1/16" this time instead of 1/8", since 2" pipe doesn't appear to have the same gaps for us. This may be because I did the majority of the fitting today. Nash and Luke just did the tacking, and Chris and I did the real pipefitting work. I'm glad to see they actually participated more than usual though. In a satisfying way, mounting was very simple, and the valve went on cleanly. 

Afterwards, we moved onto drawing up the second 2" simulator fabrication. Mine, of course, was the best (Chris saw it as well). Nash drew a more convoluted one which initially would not have been mountable as a single piece (but he couldn't see why until I walked through it). After some modifications, I showed him that we could still use roughly his idea, but the margin of error and mounting would still be more difficult (I had to explain how it would be possible to Chris and Nash). But, I said we should use his (why not take the challenge, eh?). I asked him to start doing the measuring. This is literally his first time actually participating in the process. He didn't measure though. He didn't do the math either. I did it. I asked for Nash to check it, but he didn't. Chris encouraged him and waited, but Nash didn't. Chris even sent me an SMS telling me what he was doing, since Nash really does need to practice it. He didn't. So, I did the math again, and Chris and debated about our 185" and 184" problem. We did some interpolation and took a couple other measurements. We didn't go whole-hog on it though, but I think it will be fine. It's not an exact science. ;P

We cut the pipe and started beveling it before cleanup time. We will probably finish it tomorrow.

I also helped Matt today quite a bit. His partner, JR, didn't show up until midday. Matt was frustrated significantly by two things. One being that his screwpipe project was hastily thrown together and not tightened every step of the way. This made getting it level and plumb difficult. He spent the better part of the day fixing it, and Chris and I would help him when we could. The other thing which frustrated him was doing fractions. This meth-head can't do basic math. It's sad. Chris and I have been working with him the best we can.

After JR showed up, he got chewed out. He wants to goto prenatal care doctor visits with his GF. My teacher says that unacceptable (my teacher is an asshole at times), and said JR shouldn't have even joined the class. The teacher then went onto say that they will not be allowed to even complete 2 tests a week since they need more shop time. I find this all odd. The guys do need more shop time, that is true, but they aren't wasting their time. Compared to the groups that came before us, we are rockstars. My teacher is having a hard time justifying the class being 12 months long, I think. As I have said many times, he goes out of his way to slow us down. When he runs out of tasks, he literally has us make up our own. He lacks the planning I expect from a teacher. 

After reflection, I have realized that this class could be done in 4 months. Seriously. Pushing very hard, we could a test each day and shop work, assuming everything was taught in person. My teacher is a bad teacher. I just have to own up to it. The reason I've learned so much is because I'm a good student, not because he is a good teacher. I've learned despite him, not in virtue of him.

I also received travel instructions to visit the well-hidden (and ungoogleable) location of Jacobs.

Also, I found TEC's address at lunch. I called them after class, but they said not to come and instead to just apply online. I will adjust my digital resume some more and apply. I also need to send it to my teacher since he wants to e-mail it on my behalf as well. Let us hope he is more useful at this than he has demonstrated for other students.

!! What do you like to do in your free time?

What every human does: drugs! Pursuing Eudaimonia in a chemically satisfying way.

For me, that is by using substances, having engaging conversations, thinking, writing (what do you think I'm doing with you Bobert the Wiki? I'm using you as a drug!), playing games, etc. I'm trying to make living life my drug. Like my parents, I'm not cut out to be a parent in my respects. It is more love and moral duty than direct enjoyment. I'm hoping to change that. I'm not quite sure how. I will say that as my children get older, it is easier to have those moments with them.
* [[2017.06.13 -- Carpe Diem Log]]
** Yesterday wasn't the best day. I did get a lot of work done. I think between the wasted time traveling and trying to apply (and failing), and seeing that my children lied to me and didn't care about themselves, I felt pretty drained. I took time to chill, and I even had a drink (which is fairly rare at this point).
* [[2017.06.13 -- Prompted Introspection Log]]
** Snarky. Good for you!
* [[2017.06.13 -- Diet Log]]
** Maybe I should just stop eating at night. I'm an addict. Where are my pleasure chemicals!?
* [[2017.06.13 -- Wiki Review Log]]
** I've noticed that 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖  🢔⦗[[Dreams|Dreams of h0p3]]⦘🢖 have all but been abandoned. I'm having a hard time motivating myself. My best work here is when I've used cannabis. That is out of the question at this point. Maybe I should structure it, force myself to do it, at least weekly.
* [[2017.06.13 -- Pipefitting Log]]
** The job hunt is frustrating. Obviously, it will pay off being absurdly persistant. I need to take it just as (if not more) seriously than my shopwork. I've definitely put in my time getting into the union. Now it is time to start putting other frying pans into the fire, shotgun-approaching it. 
* Had a lot of dreams last night. They kept me up though. I woke up before my alarm clock which is a good thing, since it wasn't even on.
** I tried giving my wife a good night of sleep without me snoring in the room, since I knew she wasn't sleeping well. I eventually came back up, but I forgot to hit the alarm.
* I woke up before the alarm anyways for some fireman time. Lovely.
* I worked hard.
* I talked to guy at lunch who plays magic and is into computers. He's a casual; he's young and dumb too, lol.
* I worked hard again. It was quite frustrating after lunch. We'll see if the teacher accepts it.
* I called my brother and talked to him. It sounds like he'll be having a good weekend. I talked to him about the job situation. He suggested I consider electrical work as well. 
** I've realized that I can't be picky at this point. I just need a decent paying job.
* I got home and talked to kids about their school work.
** I was really hoping to treat them with swimming tonight. Instead, they just lost steam. Their school work comes before all else. I really hope they learn to kick it out.
* I looked for jobs and for other unions in my area. 
** Unfortunately, I don't live in or near a very large city like Knoxville, Memphis, Nashville, Chattanooga, etc.
* I wrote the bulk of my wiki. 
** I'm saving my Carpe Diem Log for the end of the day. 
* I picked my wife up from work. My prediction about her period was correct. It's been tough on her.
* We made roast together for dinner tonight. It didn't finish cooking until much later.
* I had some more fireman time.
** Give me my pleasure chemicals!
* I watched two episodes of Game of Thrones with the kids!
** We've finished Season 4. Two more to knock out before the new season comes out this summer.
* I'm watching Delta Fox play LoL in the Challenger league. 
** I wish I got to hear their voice coms.
* I intended to get more work done, but I didn't. I'm going to chill and maybe knock another fireman session out before I fall asleep.
|customTable|k
|Food|Calories|h
|Apple|100|
|Pizza|650|
|Mandarins|105|
|Nuts|160|
|Wine|300|
|Hummus, Olives, and Pita Chips|450|
|Sorbet|170|
|Beef Roast & Veggies|600|
|Total|2535|f
* Super Cereal
** https://www.smbc-comics.com/comic/listening
*** The irony of breakfast is not lost on me here. This is, sadly, correct.

* KYS
** http://www.motherjones.com/politics/2017/06/this-is-how-scared-republicans-are-of-their-own-health-care-bill/
*** Poorly worded. It is Mother Jones though. That said, the gist of it is correct. They withhold this information on purpose, and the selfish reasons are obvious.
** https://www.bloomberg.com/news/articles/2017-06-14/tillerson-signals-easing-policy-toward-russia-on-ukraine-accord
*** As I predicted in [[Realpolitik Speculation]]
** https://i.redd.it/av3n2moz7l3z.jpg
*** Of course. Leftists and Minorities will be targets.
** http://www.ibtimes.com/political-capital/koch-brothers-want-new-constitution-theyre-closer-you-think-2552039
*** Koch brothers and libertarian constitution. There are enough stupid and selfish people to do this. =(

* https://www.youtube.com/watch?v=SXxHfb66ZgM
** Climate Skepticism is interesting sometimes. This wasn't boring.

* https://www.bloomberg.com/view/articles/2017-06-13/the-old-are-eating-the-young
** Why is Bloomberg writing something I agree with, yet again? They are making money or gaining power from it. How? This must be a popular thing to say now. Why? What does it buy them? 

* https://www.socialcooling.com/
** Hence the pseudoanonymity of this wiki.

* https://www.youtube.com/watch?v=wCj-sincEMM
** Metamodern Video Series. Interesting. I have some disagreements with his interpretations of history and the Great Human Conversation. This is fine though.
** Here's his website: http://www.jamessurwillo.com/
** A related and interested medium post of his as well: https://medium.com/@jamessurwillo/blame-the-millennials-ea229021952e

* https://www.theguardian.com/inequality/2017/jun/14/tax-evaders-exposed-why-super-rich-are-even-richer-than-we-thought
** Taxing the wealthy and powerful in a globalized world requires a kind of cooperation that only the wealthy and powerful can afford to enact. It ain't happening, kids.

* Tools
** https://www.lifewire.com/zgrep-linux-command-unix-command-4097076
*** I've never used this before. Zgrep is very interesting. It solves some problems, no doubt.


Today was productive and frustrating. I immediately started working as soon as I got there, before class started. We had our fabrication built right before lunch. It went quickly and smoothly. The measurements were right. I thought we nailed it.

We did not nail it though. We went to mount it, and it was off by 3/4", and there was no clean way to fix it. We dismounted it, and moved the flanges hoping that would work. We remounted it, and it made it much better, but it was now too short to hit the valve. So, instead of dismounting this one, we put the valve on it and took the other fabrication down instead (easier to move). We quickly cut off the limb, cut a new pipe and put it on there. We were in a rush, and you could tell. It wasn't pretty, but it worked. We got it together, mounted  it, and it fit. It was a tight fit because we failed to do a complete flange takeout for this extended pipe (I just had him take some off). As I said, we just wanted to finish it. 

After it was all said and done, we checked it. The level was within bounds, but it still wasn't visually appealing. The pipe we threw on there is visibly not right. In fact, I can tell several pipes just aren't perfect. It was frustrating. 

Chris and I talked about why it wasn't working. What did we do wrong? The initial measurements seem to be the most plausible answer. And, the problem point was right where I was worried it would be. God damnit!

That 184" and 185" difference in the top and bottom continues to give us huge headaches. The isometric drawings get really fucked up by it. As we push and pull to fit, it even warps the pipe directions elsewhere on the other simulator. It's not beautiful. I can tell you that. /shrug; it's not always going to be perfect. I'll keep doing my best to improve.

I did finish the resume. I'm going to make a general one as well and just start applying everywhere. At this point, I just need a job.
!! What kind of TV commercial would you like to make? Describe it.

I'm generally speaking opposed to advertisement, commercials, rhetoric, deception, manipulation, and brainwashing. I also assume this question means more than mere T.V.; I don't have a subscription (I dropped mine 10 years ago, before it was cool). Let us say a short video that large swathes of people have to watch, whether online, on their boobtube, or otherwise. That seems far more applicable, and I think it matches the spirit of this outdated question (What is a cassette tape? amiright?).

I have another question, does it have to be something which advertises? Or, can I just drop truth-bombs? What must I say? Can it be just any video, or does it need to fit the more narrow constraints generally understood by the word "commercial." As I said, I'm probably against what is generally meant. I find it morally repugnant. So, you have your answer if that's what you mean. But, assuming you'll take the more general definition, just any video, now that I think would be useful and interesting.

I want to be philosophical, truth-telling, and hopefully persuasive. Let us assume I only get 60 seconds. Those times slots vary, of course. It depends on the medium as well. T.V. commercials have been trending shorter and shorter due to the poorer and poorer attention spans of the people who still watch them. Online commercials, particularly successful ones, tend to be longer. I'm going to stick to a minute, I guess. 

What would you say to the masses in 60 seconds? What would you display? What is the heart of the message? What's the chronology of that 60 seconds?

I think I would attempt to inject Redpilled Socialist memes into these minds of these people. People have been brainwashed to despise it. They do not understand socialism. I have met far too many people who actually hold socialist values in some respects, they just don't realize it. They have the first-half of the seed, but it isn't complete. Their conditioning prevents them from seeing the basic truth.

I think I would open with an imitation (as closely as legally possible) of the "warning" beep/buzzer you hear for emergencies, etc. It is quite attention grabbing. I want to shock them. I want this to be a Harrison Bergeron + Anonymous moment, but hold the tragedy and cartoonishness. 

<<<
Beeeeeeeeep!!!

Pay Attention! You will only hear this message once, and chances are, those in power will not want you to see it again.

Here is the fundamental truth: Human beings are selfish, egoistic creatures. We are evil; yes, even you and me. Some are more evil than others; we sit on a spectrum.

Those in power are psychopaths. They do not empathize with humans, and they don't feel obligated to play by any moral rules. They are enslaving the rest of us...
<<<

I need a 30 seconds elevator speech on Redpilled Socialism as a description of capitalism. I need pictures and clips to go along with it. There are probably some famous quotes to embed. 

At the end, I would provide a public-crypto key, a site, contacts, etc. I would explain how to organize in a brief way. 

This seems very difficult to do in 60 seconds. 

Of course, perhaps it wouldn't be very effective. We aren't very rational. The entire idea, of course, is useless in this way. I'm just dreaming.

* [[2017.06.14 -- Carpe Diem Log]]
** I'm glad I do this bullet-pointed rather than in more narrative form as I do for the Pipefitting Log. 
* [[2017.06.14 -- Prompted Introspection Log]]
** Almost a throwaway question. But, in a way, I'm spending my time solidifying my new redpilled outlook on life through these questions. Some are more straightforward than others to answer.
* [[2017.06.14 -- Diet Log]]
** Filling the EQ void. 
* [[2017.06.14 -- Wiki Review Log]]
** Yup. Keep it up! Never give up!
* [[2017.06.14 -- Pipefitting Log]]
** After speaking with my brother, he thinks I should start looking more broadly for work, even beyond pipefitting. He gave me his blessing to start looking for electrical work. At this point, I just need to apply everywhere. My credentials are still pretty freaking cool in many ways.
* I keep waking up earlier than my alarm clock. This may be the alcohol. That said, I'm not taking a significant amount. I would be surprised by it. But, it may be. I don't feel sleepy though. That said, I've also been sneaking naps in on some days. That is also a plausible explanation. I woke up before 7:00 today. I fell asleep a bit after 11 last night. It isn't like I'm not getting sleep.
** I've been dreaming about pipefitting. I'm clearly in my obsession mode. Craving EQ and nothing else will fill the void. Hopefully pipefitting will.
** I feel like I've been snappier with the kids. It's been a rough week with them. I'm losing my patience and empathy. 
** I wish I could give my wife some of my sleep. She needs it more than I do. It's been hell for her. =(
* I had some fireman time, yay for morning glories. 
* I drove my wife to work. She wasn't feeling really tired. It's the least I can do. I'm glad to have those private moments with her. I don't get them often enough.
* I worked hard.
* I ate earlier than usual today. I brought a lunch when normally I wouldn't. This may or may not be a good thing. I think the eating schedule is important. I should have just brought a snack, or when I forgot that I didn't need my lunch, I should have only eaten my fruit. I made a mistake there. I like to have something to eat before tests. It makes me feel more comfortable (I've seen the studies; I also think the drug of food may just be what I'm craving too; why not both?).
* When I got home, I talked to the kids. They clearly hadn't done jackshit. I was really pissed. We talked for an hour about it. I do not have tools to motivate them. I only have reason, which is not enough. When my wife got home, we talked some more. 
** As punishment, I took control of their computers, installed myself as admin, dropped them down to standard users, wiped out software I felt would tempt them, and installed a whitelist only personal firewall. I've taken my daughter's desktop's powercords as well. They now can only access school sites. We made sure to get their messaging software up and running as well, syncs too. 
** We have to fix this problem. They absolutely must learn to work hard even when nobody is sitting there forcing them to do it.
* The kids started working. They saw how serious we were. I hope it clicks.
* I read most of //Polar Bears// the play. It's about a philosopher and his crazy/sad wife. It's a sad fucking story. I want to talk to these characters. 
* My wife and I took a nap.
* I did some surfing. 
* I wrote an article [[2017.06.16 -- Computer Musings]], which I've not done in a while. The post bugged me, and the fools supporting it even moreso. 
** This sparked our discussion on sexism.
* I wished Uncle Charlie a happy birthday.
* We intended to swim, but the kids aren't allowed. We are going tomorrow without them if they aren't finished on time (they won't be; I know them too well). 
* We also intended to have sex (redwings, yo!), but my wife hasn't been up to it.
** When it's that time of the month, her rationality (or will power to be rational) decreases by 10.33 (repeating, ofc) percent (that still makes her wildly more rational that almost anyone I know). She is more emotionally and impulsively driven in those moments. That doesn't help either. She did intend to have sex, which is an emotional sacrifice for her to do for me. It's the thought that counts! =)
** I also argued about discrimination, redpilled perspectives, etc. That didn't help her libido/willingness.
*** We are worried about sexism that my daughter will experience in the computing trade. My wife has also been reading on racism lately. She's found some excellent literature.
* The family had a discussion about discrimination. It was a good one. I'm glad to see both my children participating in the debate.
* My wife and I made dinner; it was truly delicious.
** I like consuming all the remaining fresh produce in the house on Friday since we shop on Saturday. 
* We watched a Game of Thrones episode.
* I helped my son with the kitchen.
* I had some fireman time.
* I pushed my children to write. 
** My son lost his work for the 10th time. He is responsible for it. I keep showing him. I keep having him double-check. He keeps failing to follow through. His incompetence is annoying to me, and it's hurting him. I'll keep pushing him to become literate. I'll keep trying to convince him that he must do this, that it is worth his time and effort. 
* Today has been a day of lectures. Some good, some bad. It's what it is. 
** I feel like I've been the asshole dad today. You gotta do what you gotta do.
* I'm going to have some wine & watch some league.
** I didn't manage it last night, but some more fireman time might be worth it. I am horny as fuck!
This article bugged me:

* http://www.pcworld.com/article/3200767/gaming/xbox-one-x-pc-build.html

Of course, a female wrote it. I don't know what to tell you. Perhaps systematic sexism and cultural bias has generated a self-fulfilling prophesy. I think they were paid to say this bullshit. The claim is that you will struggle to build hardware even comparable to "loss-leader" hardware you'd find on an Xbox One. Let me dispell this bullshit for you right now. They have a mixture of ad-paid bias marketing manipulation and incompetence here. I smell Apple fanboi mixed with Consoletard. Disgusting.

She gave two builds. I'm going to wreck them both.

I built to her first build's initial specs (which far outstrip what an APU is going to hand you). 

<a href="https://pcpartpicker.com/list/DQsxqk">PCPartPicker part list</a> / <a href="https://pcpartpicker.com/list/DQsxqk/by_merchant/">Price breakdown by merchant</a>
<table class="pcpp-part-list">
  <thead>
    <tr>
      <th>Type</th>
      <th>Item</th>
      <th>Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="pcpp-part-list-type">CPU</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/qmrcCJ/amd-cpu-fd8300wmhkbox">AMD - FX-8300 3.3GHz 8-Core Processor</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/qmrcCJ/amd-cpu-fd8300wmhkbox">$89.99 @ Amazon</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Motherboard</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/C2mxFT/asus-m5a78l-m-plususb3-micro-atx-am3-motherboard-m5a78l-m-plususb3">Asus - M5A78L-M PLUS/USB3 Micro ATX AM3+ Motherboard</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/C2mxFT/asus-m5a78l-m-plususb3-micro-atx-am3-motherboard-m5a78l-m-plususb3">$46.99 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Memory</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/W2vRsY/patriot-memory-psd38g13332">Patriot - Signature 8GB (1 x 8GB) DDR3-1333 Memory</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/W2vRsY/patriot-memory-psd38g13332">$39.99 @ Amazon</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Storage</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/2RPfrH/hitachi-internal-hard-drive-0f10311">Hitachi - Deskstar 7K2000 2TB 3.5" 7200RPM Internal Hard Drive</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/2RPfrH/hitachi-internal-hard-drive-0f10311">$56.50 @ Amazon</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Video Card</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/pKX2FT/evga-geforce-gtx-1060-3gb-sc-gaming-video-card-03g-p4-6162">EVGA - GeForce GTX 1060 3GB 3GB SC GAMING Video Card</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/pKX2FT/evga-geforce-gtx-1060-3gb-sc-gaming-video-card-03g-p4-6162">$179.99 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Case</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/FvKhP6/xion-case-xon310bk">Xion - XON-310_BK MicroATX Mid Tower Case</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/FvKhP6/xion-case-xon310bk">$23.98 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Power Supply</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/HvTmP6/evga-power-supply-100w10430kr">EVGA - 430W 80+ Certified ATX Power Supply</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/HvTmP6/evga-power-supply-100w10430kr">$21.98 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Wired Network Adapter</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/xQtCmG/tp-link-wired-network-card-tf3239dl">TP-Link - TF-3239DL PCI 10/100 Mbps Network Adapter</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/xQtCmG/tp-link-wired-network-card-tf3239dl">$7.80 @ OutletPC</a>
      </td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-price-note">Prices include shipping, taxes, rebates, and discounts</td>
      <td></td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-subtotal">Total (before mail-in rebates)</td>
      <td class="pcpp-part-list-subtotal-price">$502.22</td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-subtotal">Mail-in rebates</td>
      <td class="pcpp-part-list-subtotal-price">-$35.00</td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-total">Total</td>
      <td class="pcpp-part-list-total-price">$467.22</td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-price-note">Generated by <a href="http://pcpartpicker.com">PCPartPicker</a> 2017-06-16 17:09 EDT-0400</td>
      <td></td>
    </tr>
  </tbody>
</table>

I can do it for $200 less than her stupid pricing, and I get better parts too! 

This has 1TB more storage and my video card is significantly better than her choice. I threw in a wireless card to be cute, since she complained about it. Obviously, anyone who gives a shit will be wired, no if's-and's-or-but's about it. 

I do not include an optical drive, and that's because I'm not an idiot. The best way to watch media or play games hasn't been through optical media in over a decade! I keep my optical drive in my primary machine only as a legacy device, just like I kept a 3.5" floppy drive until 2012. Seriously, I care about legacy. But, I'm not retarded; I don't use the thing but maybe once or twice in the lifetime of a computer. I'm going external next time.

Note, I am below the $500 pricepoint. Let me grant, this system runs hot, but will be perfectly stable. Also, don't buy Windows, idiot. 

The better-than-xbone-1 for $500 or less myth is debunked. Still crushing it.

Alright, onto the second "upgraded" build, which is $818.

My initial thought: they chose the terribly priced i5-7400 with Passmark score 7443 for $180. For $10 more you can buy the i5-7500 at 7981. Why the move from AMD to Intel here? An AMD FX-8350 Eight-Core at 8942 is $80 cheaper than her choice. Don't get me wrong, the reason to choose Intel is single-threading. It's the king.  If multi-threading was really what mattered, stick to AMD.

Vitally, I still don't see games that are significantly multi-threaded. If you really just care about gaming, there is no difference between between 2 cores and 32 cores. It's really hard to write code that will actually make use of more cores. The author chose a dumb compromise. If you care about single-threaded and you want series multi-threaded performance, then buy a better CPU, else choose for price efficiency in single-threaded.

Until I find the i5 variant, these are two correct possible roads to take:

* $329 -- Intel Core i7-7700K @ 4.20GHz at 12178
* $150 -- Intel Core i3-7350K @ 4.20GHz at 6925

Let's be clear, her choice only has 75% of the single-threaded performance of either of my chips. I can pay $30 less and still completely wreck her chip in single-threaded performance (what matters; this was the reason to go Intel instead of AMD), or I can pay $150 more and buy a chip that not only has a heft single-threaded advantage but can also fucking destroy in the multi-threaded department.

For the AMD fanbois (and I do prefer competition!), the AMD Ryzen 7 1700X is at the same pricepoint as the i7, and it does 14865, but the single-threading is still worse than all of the chips we are considering here. It's really bad when a $150 chip wrecks your +$300 chip in the most important performance metric for non-parallel tasks (and most parallel tasks should be handled by your GPU).

<a href="https://pcpartpicker.com/list/P9kmZ8">PCPartPicker part list</a> / <a href="https://pcpartpicker.com/list/P9kmZ8/by_merchant/">Price breakdown by merchant</a>
<table class="pcpp-part-list">
  <thead>
    <tr>
      <th>Type</th>
      <th>Item</th>
      <th>Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="pcpp-part-list-type">CPU</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/tTVBD3/intel-core-i3-7350k-42ghz-dual-core-processor-bx80677i37350k">Intel - Core i3-7350K 4.2GHz Dual-Core Processor</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/tTVBD3/intel-core-i3-7350k-42ghz-dual-core-processor-bx80677i37350k">$148.88 @ OutletPC</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Motherboard</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/rLs8TW/msi-motherboard-h110mgaming">MSI - H110M Gaming Micro ATX LGA1151 Motherboard</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/rLs8TW/msi-motherboard-h110mgaming">$41.98 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Memory</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/4QNypg/team-vulcan-8gb-2-x-4gb-ddr4-2400-memory-tlgd416g2400hc14dc01">Team - Vulcan 16GB (2 x 8GB) DDR4-2400 Memory</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/4QNypg/team-vulcan-8gb-2-x-4gb-ddr4-2400-memory-tlgd416g2400hc14dc01">$99.99 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Storage</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/x28H99/sandisk-ssd-plus-480gb-25-solid-state-drive-sdssda-480g-g26">SanDisk - SSD PLUS 480GB 2.5" Solid State Drive</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/x28H99/sandisk-ssd-plus-480gb-25-solid-state-drive-sdssda-480g-g26">$128.99 @ Best Buy</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Video Card</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/Tv38TW/evga-geforce-gtx-1070-8gb-sc-gaming-acx-30-video-card-08g-p4-6173-kr">EVGA - GeForce GTX 1070 8GB SC Gaming ACX 3.0 Video Card</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/Tv38TW/evga-geforce-gtx-1070-8gb-sc-gaming-acx-30-video-card-08g-p4-6173-kr">$389.99 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Case</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/FvKhP6/xion-case-xon310bk">Xion - XON-310_BK MicroATX Mid Tower Case</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/FvKhP6/xion-case-xon310bk">$23.98 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td class="pcpp-part-list-type">Power Supply</td>
      <td class="pcpp-part-list-item"><a href="https://pcpartpicker.com/product/HvTmP6/evga-power-supply-100w10430kr">EVGA - 430W 80+ Certified ATX Power Supply</a></td>
      <td class="pcpp-part-list-price">
        <a href="https://pcpartpicker.com/product/HvTmP6/evga-power-supply-100w10430kr">$21.98 @ Newegg</a>
      </td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-price-note">Prices include shipping, taxes, rebates, and discounts</td>
      <td></td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-subtotal">Total (before mail-in rebates)</td>
      <td class="pcpp-part-list-subtotal-price">$905.79</td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-subtotal">Mail-in rebates</td>
      <td class="pcpp-part-list-subtotal-price">-$50.00</td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-total">Total</td>
      <td class="pcpp-part-list-total-price">$855.79</td>
    </tr>
    <tr>
      <td></td>
      <td class="pcpp-part-list-price-note">Generated by <a href="http://pcpartpicker.com">PCPartPicker</a> 2017-06-16 18:03 EDT-0400</td>
      <td></td>
    </tr>
  </tbody>
</table>

Alright, I've gone over her arbitrary budget by $37, or 5% of her cost more, because this was the correct price point. Obviously, we can crush her performance at the $818 price point, but this is where raw price-efficiency should actually take us. 

Let's be clear, for $37 more, we pickup:

* a fucking SSD, which everyone post 2010 should be using in their machine. 
** Even for a gaming machine, you'd be retarded not to get one. In fact, for the previous rig, I'd take a 120GB SSD instead of a 1TB HDD and just live within my space means.
* a significantly stronger single-threaded CPU which remains quite competitive in multi-threaded performance against most consumer chips
* 16 GB of RAM, not 8GB. Again, welcome to the 2010's.
** I've had Chrome break 8GB of memory usage (with standard extensions). 
* A GPU which destroys, jumping from 7957 passmark to 11015.
** The heart-and-soul of a gaming rig. Dump your money into it.

Note, it would be easier to go Z270, and I have forgotten a cooler. I have a bunch laying around. Throw $7 extra if you need one. 

I'll tell you this isn't the machine I would buy for myself. I would jump for the i7, and at this point, I'd jump for 32GB of RAM too. But, I don't need that much GPU either. When I do, I'd rent it (but I'm not actually rendering games on my screen at that point).







|customTable|k
|Food|Calories|h
|Pizza|550|
|Pear|100|
|Mandarins|70|
|Corned Beef Roast and Veggies|500|
|Brussel Sprouts Mountain|150|
|Watermelon|120|
|Bratwursts|600|
|Total|2090|f
!! How is your health? Daily routine? 

I'm doing well. I think I'm getting fatter again. I feel like I'm eating more. My sleep schedule is decent enough. I feel physically less strong. Perhaps I should work out and write about it (accountability) on Bobert the Wiki. 


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

I feel like a useless asshole. I've been off this week. I think I've been "off" because I'm not playing EQ. I'm glad I'm not playing EQ. It is obviously not what we need.


---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

I think I'm also feeling anxious in searching for a job. I'm feeling desperate. I'm feeling a procrastination element mixed with the desire to chill or give up in the face of adversity and setbacks. I want it to be smooth-sailing, obviously. I can't allow my frustration to control me. I must control it. I am in command of myself (right!?), and I will force myself to do what I need to do.


---
!! What are you going to do about what happened?

My goal is to be empathic with my family and myself. I need to have the right attitude. I need to continue to work hard, and I cannot give up. I am so close I can taste it. I need to keep the ball rolling. 

You can do it, h0p3!
Today was a short one. I had already studied for the exam. I studied more anyways. Motor vehicles seem like something you need hands on experience with. There is only so much  you can read about. 

I talked to Johnny today. It's always important to pick others' brains in the industry. I wanted his perspective. He thought our simulator was quite cool. He does top helper work and not so much pipefitting itself. I found out that I should just find or make a bevel-checking tool. Johnny has done it so much he doesn't even check it anymore. It just "looks" right to him, and he has a "feel" for it. Virtue theoretic, I tell yahwhat.

On our break time, I went to the shop and finished cutting the blocks for my alignment dogs. Everyone has asked about them. We're worried they won't be tall enough. I have to work with what I have though. I need to make a few cuts, but we'll get there. I chose some very thick metal. I'm not sure how much it costs, but I bet it aint cheap.

Afterwards, I took the exam. I aced it. I think it wears on the guys around me when I get 100's and everyone else is struggling to pass or still missing a few. It is what it is. 

I cleaned the shop up, then I went home.
!! If you were lost in the woods and it got dark, what would you do?

* What do I have on me? 
* Roughly what region? 
* Do I know how far away I am from civilization?
* Are people waiting for me? Am I under certain obligations? Do people know the vicinity where I'm lost, and would they search for me?

I'm going to assume I have my everyday carry (EDC) on me. I keep a large pocket knife on me with a partially serrated blade on the bottom. I have a flashlight on my keychain. I have card-sized folding knife that is very share in my wallet, and I have a decent multi-tool on my keychain. Lastly, I always have my phone with me.

First things first, I'd call people. Assuming I couldn't, I would fire off text messages. I would hit higher ground and hope to get some signal. I might see city lights as well! I live in the mountains, and that is common. I'd use my flashlight, but if I lost battery power I might use my phone for light. It depends on the charge of my phone and my emergency. I don't use a smartphone, and my battery life is considerable. I could get away with using it as a flashlight in a pinch for quite some time.

I'd make sure I had shelter and warmth. I would aim to protect myself from the elements. I'd need to find water the next day. I could live without food for many weeks. 

If I wasn't completely, absolutely lost, and I at least knew my whereabouts in a 50 mile radius, and assuming I didn't have anyone coming for me, no cell signal, etc., then I'd use the sun and moss to gauge my direction. I'd prefer to travel alongside a river or creek. I'm not sure how I could store water. I'd seek civilization, house, roadway, or whatever.
* [[2017.06.15 -- Carpe Diem Log]]
** Fireman time!
* [[2017.06.15 -- Link Log]]
** I really haven't been digging as much lately. It comes and goes, I guess.
* [[2017.06.15 -- Prompted Introspection Log]]
** Silly rabbit.
* [[2017.06.15 -- Diet Log]]
** Summed.
* [[2017.06.15 -- Wiki Review Log]]
** When I analyze my species (myself included) as chemically dependent creatures (defining happiness as such), the world makes so much more sense. It's an ugly view to so many, but the truth is the truth. I didn't like it either. I can't argue with the results though.
* [[2017.06.15 -- Pipefitting Log]]
** I talked to Johnny today. It's always important to pick others' brains in the industry. I wanted his perspective. He thought our simulator was quite cool. He does top helper work and not so much pipefitting itself.
** Edited.
* I woke up early and watched my wife sleep.
* I finished the //Polar Bears// play. It was quite good, quite sad, and quite real.
* I had some fireman time.
* I helped the kids get on their schoolwork.
* I filled out some pipefitter applications in my area.
* I surfed, and I found something crazy and yet interesting.
* I shopped for groceries.
* I made breakfast for lunch; it was delicious.
* I surfed some more.
* More fireman time!
* I tried to call my brothers. I wanted to see how they were doing. JRE had a shoulder problem and a sleep study. 
* I played a game of league.
* Fixed more domain whitelist problems.
* I had some snacks =).
* I took a nap!
* I surfed some more.
* I played D2 for a few minutes.
* I wrote in my wiki.
* I've watched several games of league of legends.
* I pushed my children to finish their work.
* I've flashed a USB drive to reinstall on my son's laptop. I don't know what he has done. 
|customTable|k
|Food|Calories|h
|Apple|100|
|Pear|100|
|Mandarins|105|
|Nuts|160|
|Sausage, eggs, biscuits, country ham, hash brown|1100|
|Wine|50|
|Sorbet|140|
|Hummus, Olives, Pita chips|450|
|Total|2205|f
* You must still decipher the mumblings of crazy people
** http://www.ellipsisbehavior.com/
** https://www.youtube.com/watch?v=McWsMWdtvEs&feature=youtu.be
** https://www.mediafire.com/folder/k47c6c4j24u0r/Mind_Control%2C_Brainwashing_Material
* http://www.isst-d.org/downloads/guidelines_revised2011.pdf
** Speaking of crazy people. =) I do wonder what RPIN and KIN would have to say.
* https://imgur.com/a/c1RnG#yxrAzJr
** Some of them are quite damning criticisms of political media hypocrisy
* http://www.bbc.com/news/education-40275233
** Thank you, yet again Baby Boomers.
* https://www.bloomberg.com/news/articles/2017-06-16/the-u-s-is-where-the-rich-are-the-richest
** Bloomberg talks about it, at least part of it. The solutions, however, they don't care about. Rabble-rousing?
* KYS
** https://www.theverge.com/2017/6/15/15812986/amazon-patent-online-price-checking
* https://motherboard.vice.com/en_us/article/scotus-cell-location-privacy-op-ed
** I am not hopeful.
* http://articles.latimes.com/2006/may/08/entertainment/et-mcdonalds8
** No win for them. It's all optics from a selfish perspective. I have no respect for them.
* http://evonomics.com/amazon-accounting-corporate-profits-rich-peoples-income-invisible-bezos/
** Capital gains is a swear word to me at this point.
* https://www.scientificamerican.com/article/eyewitness-memory-is-a-lot-more-reliable-than-you-think/?WT.mc_id=SA_TW_MB_NEWS&sf88257361=1
** Interesting.
* http://nautil.us/blog/how-discovering-an-equation-for-altruism-cost-george-price-everything
** Nautilus does it again.
* https://melmagazine.com/this-psychologist-is-using-a-i-to-predict-who-will-attempt-suicide-696cd24bbc15
** A sad article.
I put the finishing touches on my pipefitting resume. 

I applied to the Pipefitter and Pipefitter Helper positions at Jacobs. I'm definitely qualified for one, and I'm on the edge really of being qualified for the other. I think it would take very little time to train me into a full blown pipefitter. I already can do large swathes of job well enough. We will see.
!! If you had a week to live, how would you live it?

Lol. 

Does this question assume I know I only have a week to live? If I don't know that, then I assume I'd just carry on as I usually do. Presumably, I would know in this scenario, otherwise the question is kind of dumb.

How would I die? Can it be mitigated? Can the pain be avoided? I assume I don't know and I can't do much or anything about it.

I have already thought about this before. It is one of my methods for alleviating myself of suicidal ideation, particularly when I'm on the brink. I say to myself, "well, if you are going to die, you might as well make it worthwhile for your family." In fact, that's why I'm pursuing pipefitting. This is a long-term based solution to suicidal ideation. It's a way of getting the most for my family before I die in a way that I can live/die with. 

Since I only have a week, the answers are pretty simple:

* My first few days would be spent for my family (and if I failed in that time period, all of my days would be).
** I'd Robinhood wealthy people of assets, pushing as much into cryptocurrency for my family as possible.
** I'd attempt to find ways to incur non-transferable debt. 
** //Spree// would be an apt word.

* My last few days would be spent with my family. I'd immediately call my family and tell them to take off work because I was going to die. 
** We'd party. I'd like to die on the beach.
** My family knows how much I love them. I tell them often. I'd say it again. 

Executive functioning in such compressed spaces of time create very odd incentives and behaviors. I'd likely give up on most or all of my bucketlist. My family's welfare is all that matters. I think I'd be being selfish in spending my time with rather than for them, except perhaps my last day. 

The question has interesting implications for possible end-of-the-world kinds of scenarios as well.

My empathy for humanity runs dry in this question.

* [[2017.06.16 -- h0p3's Log]]
** Well, I'm getting there. Slowly, but surely, I will succeed.
* [[2017.06.16 -- Carpe Diem Log]]
** Edited.
* [[2017.06.16 -- Prompted Introspection Log]]
** I'm not entirely sure how this is introspective. It reminds me of "The Knack" explanation in //Hunt for the Wilderpeople//
* [[2017.06.16 -- Diet Log]]
** Summed.
* [[2017.06.16 -- Wiki Review Log]]
** It is common for me to go "oh yeah, I forgot about that" for my pipefitting log and perhaps even my Carpe Diem log as well through review. Sometimes it happens occurs on different days as well.
* [[2017.06.16 -- Pipefitting Log]]
** I had intended to apply yesterday. But, my children's failures were my failures, and it required my time and energy. I was worn out afterwards. That probably isn't a good excuse though.
* [[Whitelist-Only DNSmasq Setup]]
** I continue to edit them. I'm considering automating it. Maybe I should resilio sync it with cron job to update it.
* [[2017.06.16 -- Computer Musings]]
** Edited.
* Distinguish writing prompts from your responses.
* You meant "attention" instead of "attenuation," keep using Google to learn to spell words. 
** We need to find a better tool for you.
* "Private" -- nothing is actually private.
* Good work on your edited/revised post.
* Find three things each day.
* Capitalize, please.
* You need to write more.
* Keep up the editing. I love it.
* I woke up at 8ish today. I sat there for a bit. It was nice.
* Fireman time, per my new usual. I don't know why I've switched to/added mornings. What better way to start the day, eh?
* My family went off to church, and I took my DCK. 
* I tried to play a game of League before it kicked in. Towards the end, I actually just AFKed and went to lay down.
* I wrote. I was surprisingly lucid although disoriented.
* My meditations were basically completed at about the same time my family came home. We talked.
* We made chili while the kids cleaned the bathrooms.
* Instead of doing schoolwork, I cleaned my kids' room with them. 
** They still need my help, and I'm there to do it. I hope it will just click one day.
* I talked with my wife about writing. I think she has something to say. I think this is part of that vocational problem for her. I see it as part of her purpose.
* She took a nap (period, headache talking to me, plus bad weather), and I cleaned. 
* We didn't go swimming because it simply got to late. The family meeting matters.
* I surfed some.
* I wrote in my wiki.
** I may back off using "Bobert" so much since I generally want to be speaking to myself. That said, sometimes I need a different kind of adversary (Samwise Gamgee!).
* We read each others wikis and talked quite a bit. There were several excellent discussions. 
** I'm extremely happy to see that our wikis provide significant jumping off points for discussion and debate on top of being useful windows into each others' inner lives, etc.
* ALM called, but I didn't call him back until later since we were in the middle of our family meeting.
* We did our Family Log
** It went quite well. 
** We considered having a constructive criticism section, and I hope to get there. I don't think we are ready for it. I need more time to reflect on how to implement it wisely and kindly.
* My wife went over their school structure while I returned ALM's call.
** We talked about Hack, Slash, and Crawl.
** We shot the shit about our lives, the wedding, cars, computers, etc.
** He had sent me an e-mail, and I sent one back. Hopefully, we will connect over qTox and Pidgin. 
** He may be switching to Linux again. That would be awesome!
* I've surfed and wrote a bit while watching TSM destroy nV.
I teared up talking to my wife today. I see a brilliant woman who has endured so much pain. She has something inside her, something she's been aching to get out for decades. She knows it. It's part of her meaning, purpose, and vocation. It's that Octavia Butler Humanity X factor thing. I want her to pour herself into a work. She is the most well-read person I've ever met. It's time for her to express it, for herself and for the rest of us.

I'm hoping the wiki will be a gateway for her as well.
People are so different.

It's infeasible (extreme understatement) to understand the complexity, depth, and perspectives of the minds of others. It's very difficult. I feel like a non-reactive neutral metal uselessly passing through this realm, unable to perceive it, let alone reckon with it. 

Oh Black Boxes of Mind Function! I love you. I want the best for you! I do not understand you, and therefore I do not know the means to my ends.

---

My parents abandoned their children. We just have to own it. See it for what it is. I'm sure we aren't the creations they were anticipating. Maybe they think this is "The Way." Maybe they see it as their plight. Maybe they feel trapped. Call it what you want. I see it, and it's ugly. 

---

I am too hard on my children. I feel so many forces on me and on us. I want them to flourish. We are doing well. We have what we need. 

My children do not love their lives. How do I help them love life? My approach, yet again, is probably wrong. I worry that the only way they will love their lives is if I do. And, that is a very complex issue. I wish I could stop time, sort my life, and come back being who they need me to be.

That said, I will say I think we are on the right track. Make money. Cultivate ourselves. Work together. We are a team. 

Life can never be one long orgasm. 

I've definitely felt bottled and cloistered. I need to be released. My wife has been incredibly kind to me. She sees it in me. This is far beyond sex (although, sex is a relief and outlet)!

---

I think we should visualize our progress better. It is hard for the kids to see that they are working towards something. Perhaps I need to see it too. The wiki is a demonstration of this, but just getting them to write in the wiki costs more than the actual learning itself sometimes. That said, in the long run, being reflective is crucial to them. It will be the most important thing I can give them. I need them to be disciplined, systematic, and even hard on themselves about it. I need them to be honest and open too!

The world changes so fast, it's too complex. I cannot compute the answers. I feel like my heuristics are drowning. There are few diamonds to cling onto. Reason, help me!

---

Chaos.

Does my life still feel like chaos?

Yes. But, life always feels chaotic in a way. There is a stability in that chaos. A structure which rides the waves. That's part of the beauty and charm of it. That is how we see the sparks and see it come alive. 

Of course, there are those who would claim it is my 20mg of DCK each week. Soon I will have been a year into my DCK regimen. I have had 2 bottles of wine this week as well. Fools. I grant I'm changing myself, but it isn't that rapid. It is quite controlled. Who is doing the controlling? Yes, yes. Hush, hush.

CONTROL! /roar

The swirl of even my tiny flawed perspective of the universe is too great to handle. It is overwhelming. I long for order...but, I know the pitfalls of the authoritarian. 

---

The warm fuzzy times are gone. Life is hard. It is cold. DCK may be talking here. But, I must admit: we are surviving. We have what we need. My children do not miss meals (terrifying thought). My children do learn and grow. They are becoming adults. I will assist them in every way I can. I arrogantly created them (God Knows), and know I'm going to help them cobble together a more meaningful life than I have. 

We do have warm experiences with each other each day, but it feels stilted.

It's hard to be the slave to your children. I am an obligated and willing slave here. I'm downright obsessed with it even. Understand that word, Slave, carefully. "Slave of" isn't what I mean. I mean "Slave to." Of course, part of being human and entering this dialectic is the rejection of slavery. I truly love my children. I am committed to them beyond what they can comprehend at this moment (although, they seem to understand much of it, they cannot feel as I do on the matter).

My tattoo has changed meanings for me over the years. 

"Slave to The God"

I'm not even Christian and I still live by it. It is a mentality for me. It is a framework, a lens, and profound axiomatic prescription. 

---

I want to answer this question: 

How do other people see me?

This is a question I need to start answering more often. Since I am so bad at it, I need to be thinking about it.

There are many facets to consider. I should write about them.

This would be a worthy log. Don't worry about cataloging yet. Write down the content first, then catalogue it. Just use dates. Well...wait.

I could 


---

I feel existential torsion.

---

I miss philosophy classes. There are so many blurry, murky, unknown areas. I don't have a sufficiently satisfying systematic view of the world yet. I yearn for answers. I beg for them. I feel like slave to the pursuit of them even.

---

Marriage's unity is arguably the most profound thing I've ever experienced. Two minds seeking to join together truly beautiful. 

As I age, as our marriage ages, I get the chance to see all the details. The unique fabrications, the bonds, the cracks, and splits and joins. 

It is interesting to see us bloom as individuals welded together. I hope to fawn and craft over her and our structure.

---

Professor Dougherty saw very far. I stand in frightened awe of how far he saw. He was obviously a genius. I should ask him for reading material. Is there any reason to reach out to the gods we idolized in academia? Be redpilled about it. 

---

I've been feeling jumpy, froggy, ready to leap, ready to explode. I feel sinewy, meaty, and oddly stretched out while being compacted. That is a contradiction. I don't know how to explain it. I'm sorry. The description is beyond me. I feel full of energy but I don't have the right channel to spend it. I'm on edge. 

---

It is the ironic nature of crisis that we wait until the moment to do anything about it. We could have seen it coming. That in itself is a crisis as well. Turtles all the way down. 

Crisis Wisdom is obviously the most important kind of wisdom. There are only instincts in crisis. What doth thou say, Utilitarian God? Do you agree? This is risk management to the core.

What about when your life, the world, and everything around you feels like it is in crisis? We act like it isn't happening, but it is!

Humanity is in denial. Humanity denies itself. Humanity denies Reason. That's part of being human, right? Lol.

This seems like a kind of schizophrenic break to me. You have to ask yourself. Are you crazy? Is the world crazy? Or, both? No one is qualified to answer. Lol. But, we cannot remain skeptics. It simply isn't pragmatic. Be a slave to your prudence and wisdom because you have no other choice.

---

I am failing my son for computing. It is so clear. He has to be the kind of person who tries to solve his computer problems. He has to be curious and open. He has to try hard at it. He must understand it. The world continues to be enveloped by technology. Our lives are increasingly digitized. He really is capable of exploring it. I need him to take it seriously. 

I feel like I've treated him like he can't, and that's why he can't. I must adjust my attitude, lense, mode, etc. I need him to be fearless and curious, to be persistent and hardworking, to construct things on the computer. He needs to not fear the machine because his family is good at it and he isn't. He needs to be comfortable not knowing and striving. It's really fucking hard being the young one. It's really hard to feel like everyone around is smarter than you (we are all older than him). How do I cultivate the will to pursue truth and wisdom? How do I make a man who voraciously, in the very core of his being, pursues theory and practice. I can't snuff him out. I don't want to suffocate his bright light. I don't want him to go crazy. I don't want him to feel I'm overbearing. I don't want him to feel inadequate or intimidated. I want him to be wise and happy!

I wish I had some cosmic vending machine to help me here, but it is up to me. I might be a fool, but I'm a fool trying to wise-up and rise to the occasion over and over again, in different layers, kinds, and contexts. I must help him. He needs me!

How do I cultivate my delicate son? He is very sensitive. He is so kind. He struggles. 

I am a shit cultivator. 

I need to change. 

It's as simple as that. I need to be a different person for him. How do I do that? who do I need to be for him? I can't directly change him, but I can change him by indirectly changing who I am. I was a fool for thinking I could raise a child. But, I will stand up and do my best. That is the only Way.

---

My teacher said to me this week:

<<<
"You're rarin' t'go, aren't'cha?"
<<<

Yes. 

Let's do this.

I can feel the testosterone coursing through my body. 

This is the exact attitude which I wield so poorly with and around my son. I fail him. I must not! My son! My love! I need to be the right man for him. I am his creator, and I owe him happiness. You must help him flourish.

My son needs a delicate hard man. A perfect titanium flower. I will construct myself for him.

---

Who should I be for my son?

I wish I knew. 

I need random seed and thought injections. Even if I could somehow phrase it correctly, who could understand the question, let alone answer it?

---

I want to favor an open-sourced, peer-reviewed AI to be our democratic leader. I can't trust a human. Can I trust the things which humans design? Can I trust humans to execute the will of a computer? Where are the cracks? 

It may be the only practical option though. How do I guarantee computer scientists will be wise? I can't. So much faith. It would be so easy to tune it wrong.

---


```
**The buzz of CRISPR intensifies**
```

|customTable|k
|Food|Calories|h
|Pear|100|
|Chili|750|
|Cornbread|700|
|Sorbet|140|
|Total|1690|f
!! How has your health been this week?
* 1uxb0x
** Great, other than allergies.
** He has felt less clumsy this week. 
* j3d1h
** Good.
* k0sh3k
** Felt like her guts were getting spooned out by a dull spoon. 
** headaches
* h0p3
** My finger is doing slightly better.
** I've been feeling very charged at times but also drained in a chillax sort of way at different points in the day each day this week.

---
!! What happened last week? Have you been happy this past week? Why or why not?

* 1uxb0x
** Unhappy. He didn't choose well. That is, he didn't do his schoolwork, except for Friday.
* j3d1h
** Terrible. Schoolwork didn't get done, and that had a domino effect in her life.
** She is sad that her internet access is bottlenecked to a tiny subset for school only; she misses The Youtubes.
* k0sh3k
** She got a lot done on the student worker manual, and that made her feel productive. 
** Finished a couple books. 
* h0p3
** Worked hard. I missed EQ. 
** I felt frustrated in my job search. I want to make sure that I keep appropriate expectations, and maximize my persistence.
** I felt drained each after work when my kids didn't do their schoolwork.
** Lots of fireman time.

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** You've been curious. You ask questions about the world around you.
** Thank you for taking the time to walk through the Socratic method, to make yourself understood, to clarify your meaning, and to communicate to me. I get to understand who you are when you do that. You are showing patience, love, and a desire to connect with me when you go through frustrating conflict resolution and debate for the sake of our relationship.
** You think about how events or situations affect other people. e.g. you went and found someone to do something about the problem in the hallway so nobody would get hurt. You were looking out for other people.
* j3d1h
** You have a willing attitude to help people with their computers. You use your gifts to help the family, not just yourself.
** You've turned the lemons of your punishment (not being able to access most of the internet) into lemonade. You've been resourceful.
** You've pitched in on work around the house without grumbling. You've been mature. e.g. Helping with the cats, your brother's part of the room, etc. 
* k0sh3k
** You've given away a lot of your freetime helping with the family this week. e.g. The extra-duties for our schoolwork this week.
** You've been a good therapist to me. You are a skilled counselor. e.g. Whenever I'm super sad, I know exactly who to goto.
** I've noticed that you have been more open to working on our wikis. In particular, you were happy to try something new, recording ILLs. I think this shows a commitment to us and an openness to growth.
* h0p3
** I did a good job putting up with my family's bullshit [sic]. I kept my composure this week.
** I helped my children with their computer problems, particularly their wikis.
** I showed great smartness in marrying my wife.
** My carpe diem logs have been really cool. 
*** It was embarrassing.

---
!! What will you do this week? Name at least one fun objective and one unfun objective.

* 1uxb0x
** Do my laundry.
** Make a game. Write the rules down.
* j3d1h
** Do my laundry.
** Homework
** Make a new friend, probably at the pool.
* k0sh3k
** Finish student worker manual
** Work on the DND game.
* h0p3
** Apply to 3 jobs.
** My wife.
* Fix your drafts.
* Do your logs
* Your code commenting is too literal and doesn't capture the overall strategy, abstraction, or basis of the algorithm itself. Show me why each line matters to the end goal. Show me the subgoals, and so on.
* You posted every day!
* I want to see your ILL data. 
* Post your to-do-lists too!
* Use dropbox to transfer the textfiles and graft them in.
* Start dividing your posts, and unifying your blog posts programmatically.
* I like the daily FB grafting. It's good.
!!  If you had to describe yourself as a color, which would you choose?

Throw me 'dem softballs, kid!

What does it even mean to describe yourself with a color?

I'm Caucasian, so white or beige or some such Causasian skin coloring. I'm not really monochromatic either. I'm hairy too, and even that has at least 5 shades. No, that's not what you mean. Ok, fine.

Are you asking what color my parachute is? Business-lingo-ified existentialism. Puh-lease.

Okay, do we mean the myriad of culture interpretations of colors? Like the poetic symbolism of Red, and so on? Oh, you want to be a smartass and say all words are like that, don't you? Lol. Fine.

Can't you see that I think this question is a bit stupid?<<ref "1">> 

Fine. I'll try to answer the question. I'm not dodging it. And, I won't give you an ironic answer making fun of you and your stupid question. 

I think Black is the color which I identify with most.<<ref "2">> Yup. Edgelord at your service, m'lady. I like the definitiveness of black. I like how black works with all colors. I like how black is necessary, feels unconditional, and somehow both natural and unnatural at the same time. I like the look of it too; it's easy on the eyes.

I think choosing a color is literally just a dumb social game we play with each other with arbitrarily imbued meanings (in a far more arbitrary sense than language in general). 

See, these are all stupid fucking answers to a stupid fucking question.<<ref "3">>

---

<<footnotes "1" "Nuh uh, your mom is stupid!...Ohhh!! Someone call the burn unit, please.">>

<<footnotes "2" "But, you already knew that, didn't you.">>

<<footnotes "3" "I don't know who I'm talking to either. But, no, the fact that I chose the question is not something I'm ignoring or is lost to me either.">>
* [[The Youtubes]]
** This belongs in my links section. Speaking of which, I need to work on that. My wife and I are going to spend 30 minutes each day doing non-log work. Just projects.
* [[2017.06.17 -- Prompted Introspection Log]]
** I forgot to say, but I would fuck my wife. Like...extra fuckage. 
** Edited.
* [[2017.06.17 -- Wiki Review Log]]
** I should continue applying. Also, I never made the generic resume. I need to do that. Just start spamming, eh?
* [[2017.06.17 -- Diet Log]]
** Summed.
* [[2017.06.17 -- Carpe Diem Log]]
** Could you use your "I" language, please?
* [[2017.06.17 -- Link Log]]
** I forgot to sift through the media material. I should do that.
* [[2017.06.17 -- Pipefitting Log]]
** Good job! Keep it up!
* Woke up early, but no fireman time. Instead, I did a small workout this morning. I've been doing that and forgetting to write about it. It ain't much, but it gets me moving. A small sweat is good.
* I worked very hard today. 
* I talked a bit with my family over lunch. They weren't very talkative.
* I worked hard, took my test, and rejoiced inside (even pumped my fist) to hear that I got a reasonable score. 
* My visit to Kingsport was quite disappointing. I will not give up. I will keep knocking on those doors. I deserve to be hired because I rock. They have no idea what they are missing out on.<<ref "1">>
* When I got home I talked with the kids, surfed for a bit, and then took a nap.
* My nap was longer than I expected! Maybe I shouldn't take naps. They are delicious though. 
* I played a game of League. Had a diamond player in my group today. 
* We made dinner, brats, veggies, and it was delicious!
* I tried calling both my brothers today. I did get to talk to my brother JRE. 
** Don't forget to look at computer parts for him
* MB said she would call me back today, but she didn't. 
* JOP called. We talked. =) It's nice to hear from her. I worry we don't have much to say.
* I did the dishes by hand with my daughter since my son didn't run the washer.
* I got my kids to work on their logs, and I did my 30 minute pact with my wife. 
** I got a script working to make [[Wiki Review Log]] much easier and organized 🢔⦗Projects⦘🢖.
* I'm going to have some sorbet, water, and watch some league while building a comp for my brother.

---

<<footnotes "1" "So humble!">>
|customTable|k
|Food|Calories|h
|Peach|70|
|Pear|100|
|Apple|100|
|Mandarins|70|
|Chili|250|
|Cornbread|300|
|PB Toasted English Muffin|300|
|Dates|230|
|White Castle|270|
|Apple|100|
|Asparagus|60|
|Brats|500|
|PB Pretzels|300|
|Total|2650|f
* http://www.marketwatch.com/story/college-students-would-give-up-their-friends-privacy-for-free-pizza-2017-06-13
** Gross. People are evil.
* http://www.huffingtonpost.com/entry/i-bought-a-report-on-everything-thats-known-about_us_594043e8e4b03e17eee0876d?section=us_technology
** The rabbit hole runs much deeper, and it's only going to continue to get worse.
* https://www.theatlantic.com/health/archive/2017/06/kybella-the-injection-that-melts-a-double-chin/529893/?utm_source=atltw
** Double chin cosmetic surgery injection
* https://www.youtube.com/watch?v=Tva0xq-eDvI
** Schadenfreude's influence in politics
* https://www.reddit.com/r/trackers/comments/6he7hl/psa_ipv6_is_starting_to_erode_private_trackers/
** A serious net neutrality problem. Unfortunately, it will be glossed over until it is the norm and too late. We know ISPs will not even attempt to fix this; they want the power in thier own hands.
* http://deloitte.wsj.com/cio/2017/03/15/apprehensive-millennials-seek-job-stability-flexibility/
** Fear is a powerful motivating force. Watch my generation become immoral to survive.
* https://gizmodo.com/gop-data-firm-accidentally-leaks-personal-details-of-ne-1796211612
** Jesus H.B.F. Christ
* http://www.bbc.com/future/story/20170615-why-hydro-politics-will-shape-the-21st-century
** I'm very interested in finding a secure, long-term, underused water supply. It's the prepper in me.
* http://www.artofmanliness.com/2017/04/03/origins-overprotective-parenting/
** The site is a classic at this point. The article resonates with me, of course.
* https://spinoff.nasa.gov/Spinoff2004/ch_4.html
** Sounds delicious
* https://scienceblog.com/494627/fake-news-outlets-media-impact-fact-checking-outlets/
** That's just, like, your opinion, man.
* http://www.americanthinker.com/articles/2017/06/americans_learning_to_live_with_treason.html
** We clearly disagree on the nature of the coup. This moron thinks the "left" has any actual power. Lol.
* https://www.nytimes.com/2017/06/16/opinion/sunday/sanders-corbyn-socialsts.html?_r=0
** Also does not understand what counts as The Left.<<ref "1">>
* https://www.theatlantic.com/magazine/archive/2017/07/power-causes-brain-damage/528711/
** I have my doubts about priming. I would not be surprised if this were in the right direction though. Power corrupts.
* http://www.pnas.org/content/109/11/4086.short
** I've run across this many times. Again, not surprised. It is obvious that psychopathy is selected for in positions of authority, power, and wealth. They have a much larger array of means to their ends (and sometimes the only means to an end, as less psychopathic people have the moral integrity not to consider the option). 
* Cereal
** https://i.redd.it/98jaeeikaf4z.jpg
* https://www.makechange.aspiration.com/articles/2016/11/23/this-former-accountant-wants-you-to-stop-buying-things-and-start-borrowing-them
** A very neat idea. Sharing economy is gross, but I like libraries.
* http://www.politico.com/magazine/story/2017/06/16/vice-president-mike-pence-profile-feature-215257
** Yeah. We're boned (and not in the good way).
* http://nautil.us/issue/49/the-absurd/when-neurology-becomes-theology
** If I had money, I would pay these people. Gold stars to this publications. Have all my updoots. Can I have your babies?
* https://www.theatlantic.com/technology/archive/2017/06/the-normalization-of-conspiracy-culture/530688/
** I did not expect the Nightvale reference.
* https://arxiv.org/pdf/1706.05085.pdf
** Abstractions upon abstractions, frameworks upon frameworks, the attack surface is too large and complex. 
** HN said there's a footgun in reusing IVs
* https://theamericanscholar.org/its-complicated/#.WUgzS1LMzv0
** A damned good article. Grabbed a copy of the book (arrrgggg!).


---

<<footnotes "1" "inb4 No True Scotsman">>
Today was difficult. We covered "Aboveground Pipefitting," which Luke pointed out was ironic, since that should be damn near everything. I did learn a lot though. I feel much more comfortable in the realm of flanges and gaskets. I studied all day for it, and I didn't take the exam until the very end. I knew I didn't do well; there were many that I had to guess on. Still, I got an 85%. That is miles better than failing. 

Luke was told to do 1.5" Socket weld for the simulator. I don't understand why. I'm not going to question my teacher on it though, as he seemed testy about it. I will think about why though. He spent all day just trying to map out the simulator onto an isometric drawing. Also, I learned what the fabrications are called when you do them in stages: spools. He didn't even draw out the spools, it was just the simulator. It took him all day. That was a 2 hour job at max, and I even helped him with the top measurements. 

I was told to show JR how to do two-holes. So, I did. Screwpipe is easy once you undertsand the need to get it right the first time (i.e. tighten it as you go). JR and Matt are now separated, since JR is obviously much more intelligent in some respects (although, still an arrogant young fool). 

After work, I went to Kingsport to speak with Jacobs. They said the positions were already filled. =( The lady at the front desk was unimpressed with my half year of experience (as she should be). But, she said she would pass a message along for me. I said I thought I was a unique candidate, and that I would be worth their time. We'll see. I talked to TEC too. I have a number to call tomorrow. They don't have anything immediately open either. =(...

But, that is okay! These are mere roadblocks and barriers. I will sit in EC tunnel until I sell my Cloak of Flames for what it is worth. 
!! What is more important to you, appearance or personality?

I would almost immediately answer "personality" because I think appearances are stupid, deceiving, and terrible indicators of who we really are. Of course, there are many wrinkles to iron out.

What do you mean by appearance and personality? Personality, for example, could simply be a social image, an appearance, ultimately. It is a functional reaction to the world (mostly people). Personality could easily be understood in a shallow or superficial sense that we often tie to appearance. Appearance can also be more than what we see on the outside. One can appear to be a good person, for example. I think there can be much crossover and ambiguity.

I think //character// is a much better thing to pursue than personality. Insofar as personality is related to character, it is the clear winner. Furthermore, insofar as appearance is something we've taken on for ethical reasons, as a pragmatic matter in dealing with ourselves, other people, and the world around us (taking humans for who they really are...animals), I think it expresses something important about our character as well. Let me be very clear, it isn't the appearance itself which says anything, but the reasons for it, the intentions for having taken that appearance, etc.

All other aspects seem very superficial to me. They are ridiculous, as in literally worth ridicule, for pursuing outside of aesthetic pursuits in permissible circumstances. They take a backseat to who we really are most of the time. They are not profound expressions of who we are. Our authentic selves can be stripped of the superficial aspects of these in significant ways, although perhaps not totally. 
* [[2017.06.18 -- Carpe Diem Log]]
** There are many things to track.
* [[Drafting Strategy]]
** Silly rabbit.
* [[2017.06.18 -- Family Log]]
** I really had a good time during our family meeting. It's great to just talk. 
* [[2017.06.18 -- k0sh3k's Wiki Log]]
** I'm hoping we will make use of our "pact" time.
* [[2017.06.18 -- j3d1h's Wiki Log]]
** I'm hoping this will just be completed this week.
* [[2017.06.18 -- 1uxb0x's Wiki Log]]
** I'm hoping this will just be completed this week.
* [[2017.06.18 -- Prompted Introspection Log]]
** God damnit, Samwise Gamgee, you stupid motherfucker!
* [[2017.06.18 -- Diet Log]]
** Interestingly, on a DCK day, I was actually considering having some alcohol.
** Summed.
* [[2017.06.18 -- Wiki Review Log]]
** Generic resume.
* [[2017.06.18 -- Cry Log]]
** DCK is like that.
* [[2017.06.18 -- DCK Meditation]]
** Lots of clarity to this one.
* I woke up and went back to sleep. I was sleepy. Meh.
** No workout, no time. I needed to push out bricks (sloppy and quick) before work. I was like lightning!
* Work was fun, and I'm a bit sore. It was gratifying.
** Get 'dem workaholic drugs goin, yo! 
*** I needs me dat workahol.
* I spoke with the family over lunch. I was pleased to see my kids were on task.
* MB called me today, but I was in the shop.
** We agreed to play phone tag. 
* I made a tool today! It was very cool. I'm super pleased with my (shitty) tool.
** It will be useful. Found out it costs $85 to buy one.
* I called my brother JRE twice. 
** They were brief discussions, but good ones. I'm always happy to talk to him.
** I hope there is a chance he might visit in a couple weeks. 
*** I'd love to show him the shop.
* When I got home, I found my kids were on track. Praise Jeebus!
** I encouraged them, and they kept going. Yay!
* I played a couple games of league, surfed, and did some writing.
* I have made sexual congress with a woman.
** Inform the men!
* We prepped to go swimming, got the food ready, grilled out while the kids swam, and had a great dinner.
** It was wonderful. I feel like I am connecting a lot more with my kids. 
** We talked about the DND game we'll play when our cousins come to visit.
* I got a call from JOP. She was sad. I cheered her up.
* My children did their chores, and we may stay up to watch something.
* I need to have my Pact writing time.
* I ate many desserts!
|customTable|k
|Food|Calories|h
|Apples|200|
|Mandarins|105|
|Pear|100|
|Brats|700|
|Dates|450|
|Veggie Burger|350|
|Beef Burger|450|
|Cheesecake|360|
|Nuts|160|
|Sorbet|60|
|Total|2935|f
* https://www.nytimes.com/2017/06/20/opinion/voter-turnout-democrats-republicans.html?ref=opinion
** I have a similar lament about people accepting their socialist perspectives. Many people hold socialist values, they simply lack the intellectual integrity, curiosity, and will-power to connect the dots and recognize it.
* http://www.bbc.com/news/technology-40326544
** I have pondered moving to Europe many times. There are many barriers and risks. I wonder if I will look back at regret my choice here.
* For my daughter:
** https://github.com/AhmadElsagheer/Competitive-programming-library/tree/master/curriculum
** http://codeforces.com/problemset
* http://www.cnbc.com/2017/06/14/debt-relief-firms-may-not-be-your-best-bet-for-help-with-student-loans.html
** The sharks circle.
Today was interesting. Luke didn't really finish even drawing the simulator yesterday. I immediately started doing the measurements and checking for him. He got several things wrong. After they were fixed, he got copies of them. We drew out our spools. I did the math, and I had them check it. While they were checking, I looked around in the pipeyard for parts for another project.

I came back. They said they did the math, but I wasn't sure. I did the math again to double check. It was fine. They went to cut the pipe, and I worked on making a tool for myself. I made a flange wrench for myself. I just looked it up, and they go for $85. Mine turned out nicely. I used a solid steel bar and bolts. I had to do significant grinding to make them fit. I'm glad I made it! I've also got my solid steel bricks (1-inch thick!) marked and read for cutting into alignment dogs. I think they are going to be pretty awesome. I'm considering making 8 instead of 4.

They still hadn't cut the pipe fully. I went straight to grinding the pipes. I did them all. I hit the valves we were given too. It's clear that I didn't remember much about valves. I need to re-read through these books again. It would be worth my time. 

After lunch we started fitting. While the setup was far longer than it should have taken, the actual fitting went very quickly. Chris and I banged it out. We have very little left to do tomorrow. One 90, a pipe, and some flanges. That's it. 

I think it is possible we will be asked to do socketweld or possibly screwpipe for the 1" simulator. We'll see. I think our teacher wants a pretty picture to "show off" to people looking at his program.
!! List 20 things that make you smile.

# Schadenfreude
# My wife's enjoyment of her own puns
## I suppose this just fits that broader set of humorous things I enjoy, like delicious irony, self-reference, farce, and so on and so forth.
## Is this a kind of Shadenfreude of my own pain through my wife's eyes? Empathize with her to the point that I enjoy the pain she inflicts on us with her puns. 
# When sexually attractive females kiss
# Dank memes
# Seeing friends or family that I've not seen in a while
# Getting high!<<ref "1">>
## I might argue smiles are always about such things, about being happy (and our happiness just is a set of a chemical reactions).
# Often when I'm dancing
## Although, I don't know if it "makes me" smile, but I just do.
# When my kids persist through obstacles; when they try again and choose not to give up.
# When I gross loved ones out with a very nasty fart, my disgusting body, or a disturbing meme.
## Schadenfreude.
# When people are stupid in a way that doesn't negatively affect me
## Although, upon reflection, I generally realize their stupidity inevitably, however indirectly, does affect me. So many chaotic butterflies of causality.
# Power dynamics that enslave me into performing physical acts of rhetoric, namely forced facial expressions
# Reliving or reminiscing about a particularly good experience
# Any comedic movies, shows, books, audio, cartoons, etc. I've pointed to on this wiki.
## I'd say these are dank memes, but I would also have to point out that memes are the basis of smiling anyways. I'm going to be absurdly redundant, I'm afraid.
# When social conventions are broken that don't negatively affect me.
## Or don't too much, or that I don't recognize immediately, or for some mood I'm in, etc.
# When I'm listening+talking about something I care about tremendously.
## A.k.a. Getting high, again. 
# Whenever I feel //clever//.
## Which I take to be something a slightly different from being intelligent or wise; or it is being these in a particular way or context.
# Coitus, Post-coitus, Pre-coitus, etc. 
## Sex is a drug.
# Fulfilling existential moments
## Drugs!
# Being a smartass!
## Clever drug-user.
# Did I mention drugs?
## Yes.


---

<<footnotes "1" "I despise the hypocrisy of those who think they are above drugs, as if they are motivated by something higher. They are delusional.">>
 
* [[Wiki Review Log Python Script]]
** I fucking love this script! It makes it pretty, it's easy, and it's actually fun to use. I wish I could integrate external textfiles into wikipages as well. There seem to be lots of tools I should consider.
* [[Realpolitik Speculation Vault]]
** Yeah, I've stopped writing in it. I shouldn't act like it needs a vault. That said, I'm grateful for having made a vault for it. It was one of the first places that I felt a vault would be necessary. It's how I came to realize I needed logs.
* [[Logs Collection]]
** I'm organizing my projects page. I don't need the logs clogging it up. 🢔⦗Focus⦘🢖 really houses my logs. It's where I focus now, for real. =) 
** A vault or failed area would be useful. 
* [[2017.06.19 -- Link Log]]
** Those links built up over days. Lol.
* [[2017.06.19 -- Carpe Diem Log]]
** I haven't done my workout today. My fingers feel like the muscles are pulled.
* [[2017.06.19 -- Prompted Introspection Log]]
** Edited.
** Lawyered.
* [[2017.06.19 -- Diet Log]]
** Summed.
** I thought it was going to be much higher. I felt like I pigged out.
* [[2017.06.19 -- Wiki Review Log]]
** Edited.
** Ok. I'm just holding off on the generic resume for now. I still have pipefitting applications to do. The more I look at it, the more I really want to pursue pipefitting and nothing else. I think it's got all the longterm utility.
* [[2017.06.19 -- Pipefitting Log]]
** Reminded me to add something today. I've come up with a theory for why we are doing socketwelds beyond the valves.
* I had dreams from another night. It was very intense. I woke up feeling exhausted and emotionally drained. 
* I woke the kids up and we all started our day. 
* My love made lunch for me (she is sweet!), and it was good.
* I worked hard.
* I had to SSH and Tox to get the kids on Pidgin. We squared it though.
* I worked hard.
* I'm getting the feeling that I need to keep a list of contacts in my industry. I started a private wiki for personal information that I consider too private for this wiki. I share it with my family.
* I'm still applying, and I'm not going to be deterred. I have time. We aren't in an emergency. I will succeed!
* When I got home I checked with the kids. They were on task, and they did finish their schoolwork. Yay! They got to go outside and play. That was nice.
* I played a few games of league.
* I surfed. 
* I worked on that wiki. It took some time setting it up.
* I upgraded this wiki to a new version.
* My friend ALM is moving to protect his privacy. I will have someone to talk with about it. Yay!
* I had some fireman time. 
* I made dinner with my wife, and we ate while watching GoT. Everyone is very excited about the new season coming out in a few weeks.
* I've got a lot of things to accomplish tonight on my [[To-do-list]]. 
* Plates renewed.
* AB&T letter is all set. I just need to mail it off now.
* Cover letter created, and I added it to my Thompson application. I'll call tomorrow.
<center> //Paris Waif//  [img width=1300 [./images/Waif-Child-Labor.jpg]] </center>

Look at that face and then down to the shoulders. This picture of a child slave kills me. It still exists today, just not as obviously to we the 1% of the World. Out of sight, out of mind.

My tears are from sadness and burning anger. 

Capitalism is not the answer. We cannot allow psychopaths to rule us! 

I feel powerless. How do I fight?
|customTable|k
|Food|Calories|h
|Wrap|300|
|Apple|100|
|Pear|100|
|Gatorade|130|
|Mandarins|105|
|PB Pretzels|600|
|Brussel Sprouts|80|
|Tomato Soup|50|
|Grilled Cheese|250|
|Cheesecake|360|
|Wine|200|
|Total|2275|f
* https://www.counterpunch.org/2017/06/20/mass-incarceration-prison-labor-in-the-united-states/
** Today, a bunch of prisoners came to take care of the TCAT grounds. Slave labor. I was so disgusted. I am ashamed to attend a school that participates in it.
* http://wakingtimesmedia.com/whistleblower-banker-misery-earth-business-model/
** Slick quote: "All Misery on Earth is a Business Model”
* http://nymag.com/scienceofus/2017/02/how-rich-people-see-the-world-differently.html
** Privilege is strongly correlated with psychopathy. No shit, sherlock.
* https://aeon.co/essays/its-time-to-reboot-the-relationship-between-expertise-and-democracy
** I wish everyone learned philosophy. Epistemology and ethics are keys to our happiness.
* https://www.bloomberg.com/news/articles/2017-06-21/america-is-now-a-second-tier-country
** Ah, Bloomberg, and you don't see Capitalism as the problem. You point out effects, but not the causes.
* http://www.bbc.com/news/technology-40344208
** People don't believe it. If it evolves too quickly, not enough people will believe it. Wake up, sheeple!
* https://www.theguardian.com/world/2017/jun/15/timothy-morton-anthropocene-philosopher?CMP=share_btn_tw
** Feels like Romantic OOO Panpsychism.
* https://blog.google/topics/google-europe/four-steps-were-taking-today-fight-online-terror/
** Beware the censors, especially those who make money or generate power from it.
* KYS 
** https://newrepublic.com/minutes/143423/will-take-senate-10-hours-ram-worst-legislation-living-memory
** https://imgur.com/feZeCaP
** https://i.redd.it/a2tmurvirs4z.jpg
* http://guardfromabove.com/services/
** Sounds like warfare to me.
* https://nbox.notif.me/
** Anti-spam + privacy e-mail signup tool
* http://nautil.us/blog/-the-unusual-language-that-linguists-thought-couldnt-exist
** Can I kiss nautilus' ass any more?
*** Yes.
* https://www.youtube.com/watch?v=OUkA-5Vd3E0
** I truly despise the DNC too! Preach to me. Touch me in that confirming my bias way.
* http://nationalpost.com/g00/news/world/gangs-of-aggressive-killer-whales-are-shaking-down-alaska-fishing-boats-for-their-fish-report
** Neat AF!
* https://www.techdirt.com/articles/20170620/10455137631/supreme-court-says-you-cant-ban-people-internet-no-matter-what-theyve-done.shtml
** Silly rabbit. Nobody in power actually cares about your right except insofar as it benefits them.
* http://www.vanityfair.com/news/2017/06/jill-stein-is-starting-to-sound-a-lot-like-donald-trump
** An odd claim, no doubt.
* https://www.bloomberg.com/view/articles/2017-06-21/the-wrong-kind-of-entrepreneurs-flourish-in-america
** I think I'm beginning to see it. It feels like neoliberalism. Capitalism isn't the enemy. You think we can save it. Assholes.
* https://motherboard.vice.com/en_us/article/why-does-north-korea-keep-photoshopping-kim-jong-uns-ears
** I want me some of dat Tungstène image forensics software.
* https://blog.teller.io/2017/06/12/the-api-for-your-bank-account-is-here.html
** I'm mighty tempted.
Today was fairly different from the usual. When we got there, I heard that we would be cleaning the pipeyard. That's exactly what we did. It took a while. It looks better, but it is still a bunch of piles. Hopefully, we won't have to do it again. I'm thinking we had to clean because it is approaching July 1st, which is the beginning of the fiscal year for the school. Thus, my teacher will have an influx of money. He doesn't seem very good with money, and I'm betting he already knows how he's going to spend large chunks. He's told me a couple of the things he wants to buy so far. Assuming that money is already spent, burning a hole in his future pocket, I can see why he wanted the pipeyard cleaned up.

As part of our cleaning, we had to use the oxyacetylene cutting torch to break down some 14"+ carbon steel pipe for recycling. I got some more practice in. I'm always the first in the class to do something. This is often because I want to make sure I get my hands dirty, but it is also when the others don't feel confident. That art piece for names on a plate, I'm thinking about doing it. I was able to cut an "M" just fine freehand. I need to find some fonts, make some stencils, and do it. My cutting is looking a lot smoother this time around. I get myself comfortable, and I "draw" with it. 

I also cut 4 more alignment dog slabs. The teacher saw me doing it, and for the second time in two days, he asked me what I was doing. I explained. He said they should be taller. I asked why. He said because they can break (enormous pressure on these sometimes). He said he would show me his. Eventually he was able to get them out of another instructor's office (who was on vacation). He showed me them. They are half an inch taller than mine, but mine are over half an inch thicker steel plate than his. Lol. If his were fine, I think mine are going to be just fine as well. Frankly, the welds look more likely to break/bend than the carbon steel, and that's even accounting for the fact that the welds are stronger metal than the plate. So, in total, I expect to have 8 alignment dogs. I think they'll be pretty and effective. I'm going to build a few hundred dollars with of tools in the shop. Why not?

I helped both JR and Matt today with their screwpipe projects. Matt had the dominoes effect problem. It was a very simple spool, and I quickly fixed it for/with him. JR needed some counterweight, and he also failed to listen to me on the flange. I told him to tighten it more. He didn't. The teacher checked and the flange made it too long. I keep telling these guys to check their lengths before they ask the teacher to check. They know he's going to do it. Why not nip it in the bud first?

The teacher pulled us all together to show us a jackstand that Chris or Luke had put up on our spool. It was completely extended, and thus it wasn't stable. We fixed it.

We moved onto finishing our 1.5" spool (the first one). One of the flanges wasn't perfect, and the teacher could see it. It may have been that we didn't tighten the bolts enough. We'll see. It was generally level and plumb though. It went on without a hitch. The teacher came by and said, "I guess you are field welding," since we didn't put a flange on the last valve. He said this was actually a good idea in the field anyways, and that we should make our next piece just a tad longer so that we could cut it to fit. He said that cushion can be useful. It sounds to me like he's talking about stovepiping in a minor degree. Ha! That said, I think this is completely reasonable. To my eyes, you do as much of the math as you possibly can, and when the rubber meets the road, that's when you pull your bag of stovepiping tricks out. We constantly do it with our slip-on flanges (which even the book suggests).

As I was worried before, the teacher did notice that pipe that wasn't level on our second 2" buttweld spool. He said that when we field weld our next spool to cut the tacks, adjust it, and retack it. He said to do it on the pipes on both sides of the valve to make sure. 

I asked him if we were going to do screwpipe for the last. He said yes, and that we were going to take a picture of our work. I was right.

At the end of day, I called TEC for Wes. They said Wes doesn't answer on that phone, but they gave me his mobile (why?). Wes answered and he said he didn't have work for me. He gave me another number of a guy at Thompson. I've already applied to Thompson, but I will call the guy tomorrow. /fingers crossed. I found a sprinkler fitter position on CL. I think it will pay very poorly, but work is work, eh? I'll apply asap.
!! The top 5 things to do in the city you live.

For whom? Me? 

# Using the Internet at home.
# Taking a walk.
# Eating Indian and Mediterranean cuisine.
# Shopping at Aldi
# Swimming

Honestly, there isn't much I care for here besides the beautiful mountains. I love the fresh air when I can get it (and can will myself to do so). I also can't really afford some of the other options.

Kayaking is a big deal around here. Camping to some extent. Not really much else that I think I would adore. I suppose if I were more social that would change. There is magic to play, and perhaps dances and other events to attend. I live within 5-10 miles of at least 2 universities. There's always stuff to do there. 

Maybe I need to open up. I know I've serious depressive tendencies. I will think on it.
* [[Planning Life in General]]
** And...now I needed my [[To-do-list]]. I brought it back to projects as a notepad.
* [[2017.06.20 -- Carpe Diem Log]]
** Cheesecake is amazing.
* [[2017.06.20 -- Prompted Introspection Log]]
** What isn't about drugs?
* [[2017.06.20 -- Diet Log]]
** Making yourself fat. This is not the drug you should abuse!
* [[2017.06.20 -- Wiki Review Log]]
** Pipefitting applications await!
* [[2017.06.20 -- Pipefitting Log]]
** I'm very excited about building tools. I want a full arsenal! Don't forget about dealing with AB&T on the 1st!
* [[Cryptocurrency Casino]]
** An interesting plan. The math needs work.
* [[2017.06.20 -- Link Log]]
** There are many strengths to living the US as well. I think there are several apocalyptic scenarios in which I prefer the US to Europe for my family (and vice versa, I suppose).
* My dreams were difficult again last night. I woke up fairly tired, but I woke up before the alarm clock (7 minutes).
* I got the kids and had them start on their work.
* I worked very hard today. Sweaty as fuck and tired!
* I talked to my family and even ALM at lunch. Lunch was special, I had fries and the meat of a burger.
* I worked hard. 
* I called Thompson. No go. I will keep trying.
* I called MB, no go.
* I called Charlie. We talked. 
** He said he meant to call me back, but it got so late he felt awkard about it? I told him not to worry. 
** We talked about physics. He paid me an enormous compliment in my book; he said I was the first person to understand what he was saying about an idea from CERN he had been pondering. 
** We talked about computers. He needs one. He wants to play with Python more, but his computer is literally from 1998? (hard to believe).
** I recommended a new computer, linux, and OpenCL/Cuda, since he loves to draw mathematical objects and complex things.
* My daughter lost her computer somehow in the house. I helped her look for it. We still havent' found it. Good news: we got some cleaning done.
* I picked my wife up from work.
* I played couple games of league.
* Fireman time! Woot Woot!
* Gyros for dinner. 
* We found my daughter's laptop.
** It was in the last place we looked!
* More league, wine, and chillaxing. 
* My wife and I agreed to forego the Pact tonight.
|customTable|k
|Food|Calories|h
|Apple|100|
|Burger|400|
|Fries|300|
|Cole slaw|90|
|Mandarin|35|
|Pear|100|
|Gyros|1020|
|Cheesecake|360|
|Wine|250|
|Chocolate|125|
|Brussel Sprouts|60|
|Sorbet|140|
|Total|2980|f
* https://github.com/m0rtem/CloudFail
** Interesting doxxing/information gathering tool.
* https://www.eff.org/deeplinks/2017/06/help-eff-track-progress-ai-and-machine-learning
** For every mistake I've seen the EFF make (on IP usually), they do 20 things right. I feel so indebted to them. We all should.
* https://medium.com/numerai/an-ai-hedge-fund-goes-live-on-ethereum-a80470c6b681
** Let me tell you: if feels like science fiction.
* https://www.youtube.com/watch?v=CySzoJFkTA8&feature=share
** Even Russia calls us out on it. I'm sure there is a reason. Does it destabilize us further telling at least part of the truth here?
* http://sites.math.rutgers.edu/~zeilberg/mamarim/mamarimPDF/hersh90.pdf
** Interesting and humorous.
* http://www.foxbusiness.com/features/2017/06/21/wal-mart-to-vendors-get-off-amazons-cloud.html
** Yes, I see "Fox" and I shiver.
** The war between Wal-mart and Amazon continues.
* https://aldaily.com/
** Interesting aggregator
* https://longform.org/
** Also interesting source of content.
* KYS 
** https://inbound.org/
* https://pipefitter.com/
** Going in the library
*** Nm! Was already there.
Today was quite productive. I immediately started working on my alignment dogs. I had 8 blocks cut out. I did some measuring and marking, and then I started cutting with the portaband saw. My teacher saw me doing this, and he confronted me. He was disappointed that I didn't take his advice on making them taller.

He seemed to ignore the fact that most of them were already cut before he said they weren't tall enough. At that point, I thought it would be fine to just keep them matching. I'm also convinced, after looking at his, that mine will be just fine. I have over double the thickness of his dogs. 

I think he felt disrespected. He's not a man interested in rational argumentation. I tried to offer my reason for my why I thought my alignment dogs would perform at least well enough. He said they'd work, but it isn't what he wanted. He told me his dogs were just an example. I should have done as he said not as he did, I guess. He called my alignment dogs "beefy" and I think he felt like I had wasted this very thick scrap plate by cutting them short as well (but, I think it was mostly the respect issue).

/shrug, it is what it is.

I kept on trucking. It took all morning to cut them, clean them, and make them safe to handle. I think they look excellent. I'm pretty convinced they will do the job. I'm considering asking the CNC class to drill the holes through my alignment dogs and thread them too. I think that would make them really special. We'll see if they can safely do so. I only have 1" plate, and I probably need 1.5" plate to really do it. I could grow them with welds (I could make buttresses too!). I'll have to think about it. I'm missing the necessary bolts/threaded rods to move any further anyways.

My teacher decided to spend him time with us in the shop (quite rare) working on a project for another building. He even had me cut some aluminum sheets for him for his project. I didn't mind. I'm not sure if this was meant as a punishment or a way of mending, or nothing at all. It was difficult to read. 

While I was working on the dogs, I also bounced back and forth to my group working on the 1.5" socket weld spool for the simulator. I was letting them do the drawing and initial measurements. I've done it many times, and I think it is fine for me to sit this one out. They have dozens of times. That said, every time I would visit, they were waiting with questions for me to answer. I clearly had to help them visualize it, do the harder measurements, and do the math as well. They got there, eventually.

They started cutting pipe, slowly. Chris managed to do very little today. He was straight up lazy. He had no intention of working on the project if I wasn't doing it with him. Lol. He kept making fun of Luke who was working on the fittings. I told him that I was here to practice, and I admired what Luke was doing. Hell, that's what I was doing too. I'm not sure what has gotten into Chris. He seems to be disillusioned. 

Chris cut pipe, and I did the grind work for all but two of the pipes. I'm very fast (and safe!). I think I could outpace the next two fastest students combined. Luke wanted to restart because the pipe was a thicker schedule than usual (probably Schedule 80), and he noticed halfway through that his fittings weren't fitting on his pipes. They fit on mine though. He clearly wasn't grinding much. I thought it would be far more work to start over than just grinding a bit more off his. The rusty pipes are a pain in the ass, I grant. But, moving from tigerpaw to nice thick disks handles the problem just fine. 

After lunch, our teacher took Chris and I into his office. He explained that he would be calling one of his old bosses at Jacobs, a man that was fairly high up, to try and find us jobs at Jacobs. He said he wanted a picture of our current simulator to send him. He also said, /drumroll please, that we needed to finish our books very quickly. Rofl! He was almost panicked about it. He said that we really needed to finish that third book as soon as possible so that we looked better in front of the guy hiring us. Lol. Mind you, this was my argument weeks ago. This is a reversal of his command from the middle of last week. Now he seems to agree with me. Lol! What is happening?

I'm thinking my teacher is finally realizing that he is coming to the end of what he can provide us in this class. He doesn't want to do the 4th book either. We are miles ahead of anyone who has ever come through his class except for people who have been pipefitters for years (and we still destroy them on isometrics and doing it the "right way"). 

I need to make up for this "disrespect." My wife says chocolate and alcohol might be gay appearing. But, who doesn't love chocolate and alcohol? I need to find another way. I'll think about it. Ingratiating myself is perfectly reasonable; it maximizes my utility. Would I suck a dick for a million dollars? Fuck yeah I would. Give me all the dicks; fit those pipes in my mouth. Shit, I'd suck a (clean) dick for $10k at this point. That would change our lives. Being a teacher's pet costs me far less at this point.

I forgot to mention, JR was just sitting with us all day and screwing around on his welding. He doesn't push for things to do. I kept trying to suggest he follow the path that our teacher and the welding Instructor, Dale, had set for me (and the rest of the welders). He wasn't having any of it. My suggestions fell on deaf ears. JR's entire family welds. He's convinced he's good at it already and going to master it next week when he visits them in Florida. His peer Matt, dumb as he is, is a much better welder than JR. Matt doesn't let on how much experience he has. He is a true southerner.

Luke did the tacking, and I did the fitting. Chris let me do the fitting since he realized I don't get as much practice as he does. We did make a mistake. Ultimately, it doesn't matter who hands me the pipe, I'm responsible as the fitter for everything. So, I made the mistake. I should have double-checked. It was a very easy mistake to fix though. They walked a way while I did the grind work, and I switched it the other way. Boom, 3 minutes. 

The teacher had to leave early, so we had to clean up and leave early as well.

Also, my teacher said something odd at the end of the day. He asked me if I was going to show up next week because he said (I believe he said) he wouldn't be here. I'm not sure why. These were the student holidays we were to supposed to "make up" for (since we took off earlier last week when we weren't supposed to). Uhhh....Dereliction of duty, sir. He said it was fine if I came in, and he encouraged me to go to the welding class. I have to admit, I'm not sure if anyone is going to be there though, since I assuming the welding class will be gone. Am I just straight up missing next week? That would be so weird. 

I should leave some tools out of the toolroom for myself. I need access to do things.

Also, I called up the Thompson number. It wasn't a direct line. I'm beginning to learn it never is.

Also, the sprinkler job is in Knoxville. =/ Might as well go boilermakers at that. I'm going to hit up the plumbers in the area. I have plenty to learn, but I know my pipefitting will be useful to them.






!! Write a letter to your daughter about body image.

This is a tough one for me to write. 

My Kantian self, KIN, strongly believes that the way we appear is morally arbitrary and irrelevant to our dignity. If we are being completely rational, body image should play no factor in how and why we respect persons. That is the obvious base starting point. The journey away from it is heartbreaking.

RPIN, the pragmatist and realist, will tell you that body image matters. However irrational it may seem at first, there are too many prudential and instrumental reasons to care about it. This is the last thing a father wants to tell his daughter. I don't want to tell you the world is evil and that people are irrational. I don't want to tell you that you will be exploited, dismissed, used, and treated differently based upon your appearances. I'm horrified to explain how our animal instincts override what semblance of reason we have cobbled together; the evolutionary advantages of body image are simply too great to ignore. One must do the utilitarian math, even KIN.

You put on your war paint, you dress for the occasion, and you meet people's expectations about your appearance because people will not provide the respect to you that you already deserve without it. It is rhetoric. However disgusting it may be, we must engage in it. In fact, Eudaimonia in the human species, unfortunately, requires being virtuous at the practice of shaping our image.

I must tell you that body images everywhere are distorted, they are lies, and they are drugs for us to consume. People make money off body image; everyone does. Capitalism exploits it profoundly. Unfortunately, I believe we must "whore ourselves" out. Those who naturally evolved to be this way (not because they have well-thought out moral reasons for it, but because they are just naturally inclined to be prudent and want to be popular, etc.) probably don't feel like they whore themselves out in this respect. That might be a difference here. I am sorry.

Know who you are and why you do what you do. You have a goal: Eudaimonia. You will not let the evil fools of our species interfere with your happiness anymore than you have to. You must play hardball against the lizard brains in the human species. You must treat the non-reasonable parts of humans as they are: non-reasonable. You do not have to respect the irrationality of humans, but you do need to navigate through it.

The aesthetic aspect is beautiful, sexy, and interesting. Enjoy it. Know what you engage in. Body image, again, is a kind of drug. Be wise with your drugs. Understand them, control them, and use them to maximize your happiness in the right way, at the right time, for the right reasons, and so on and so forth.

Body image affects woman, men, and others in profound and sometimes unintuitive ways. You must study this topic. You must understand what makes us tick. None of us escape the vortex.

The news isn't all bad. You will feel better about yourself, on average, the better looking you are. You will be more likely to attract a mate which provides you higher utility returns the more attractive you are. On average, you will have an easier time maneuvering through society, getting the job you want, and people will treat you more kindly and charitably if you are beautiful. Competence and rationality are necessary but not sufficient for success in a world of humans. 

We spend time studying cosmetology in school for these reasons. It is crucial that you feel comfortable and proficiently skilled in these practices. It needs to be gutturally natural to you, even if you reject it.

People suck. I'm so sorry, love. I had too much faith in humanity when I first created you. I did not realize, I could not believe, that you would really have to undergo this. You have every right to blame me for this. I am at least partially responsible for this tragic state of affairs you find yourself in. I cannot shield you from the moral ugliness of the world, but I will fight for your happiness.

It is important that you are healthy, that you love yourself, and that you find the means to your ends. I want you to know that I love you regardless of how you appear. If you were a brain in a vat, I would love you. You are my daughter. 

* [[2017.06.21 -- Cry Log]]
** Pictures can be haunting.
* [[Cover Letter]]
** It's kind of shitty, too generalized, and there isn't enough specified asskissing in it.
* [[2017.06.21 -- Carpe Diem Log]]
** That was a productive day!
* [[2017.06.21 -- Prompted Introspection Log]]
** I was talking to my friend ALM about this today. We are homebodies, no doubt. But, even he agreed that it is good for us to force ourselves into the world. It's true.
* [[2017.06.21 -- Diet Log]]
** Summed.
* [[2017.06.21 -- Wiki Review Log]]
** I was thinking about this log in the car today. I think it provides a very unique context to how I give shape to the wiki and myself. It's a running dialogue with myself that I'm pleased is there even if only for posterity's sake. That said, I think it is more useful than that!
* [[2017.06.21 -- Pipefitting Log]]
** Edited.
* [[2017.06.21 -- Link Log]]
** Try convincing anyone that those who "succeed" in our world inevitably are those with the lowest degrees of empathy (particularly in the right ways at the right time). There is a virtue to being wealthy, and that requires significant moral vices. I hold you all accountable for your willed ignorance and malice. Fucking assholes.
* Morning Glory because I woke up early!
* I woke the kids up. They had a harder time waking up.
** It's wonderful getting hugs from everyone in the mornings, after I get back from work, and before bed. I love my family! It's gotta be one of my favorite parts of my day.
* I worked hard today, and I spent a lot of time thinking.
* I helped catch baby ducklings stuck in a very dense thicket/garden of flowers that is walled off in the center of campus. Great place to hatch them, except that they couldn't escape (can't jump the 6 inchs to clear the concrete barrier). I rarely touch animals except my cats, especially not of my own volition. It was cute though, and it needed my rescuing. I found the duckling's mom, and placed the duckling carefully nearby. The duckling ran to its mom. It was sweet.
* I spent time at the union today. Got to know a few guys and talk about it with them. Also, I crushed some kids' dream who had been welding for years (6 months in the union); he quickly stopped giving me pointers after he saw my stringer. It was a hilarious moment. My "humility" (i.e. socially hidden gifts and talents) drops jaws sometimes. Who doesn't like that feeling?
* Picked up steaks and mushrooms for my wife's Birthday. 
** Happy Birthday, love!
*** While I wish most humans never existed, I will always be grateful and happy that you were born, that you are with me, that you are with us!
* I made a small pizza, played some league, surfed, and wrote.
* Fireman time!
* I talked to JOP, answering some questions she asked me in an e-mail.
* I made a feast for my wife's birthday. It was truly excellent. We got tipsy too!
* We watched an episode of Game of Thrones and chillaxed. The family stayed up late. 
* I did some troubleshooting with my friend ALM on linux.
* I watched a bit of Rick and Morty before falling asleep.
|customTable|k
|Food|Calories|h
|Pizza|780|
|Steak|700|
|Potatoes|420|
|Brussel Sprouts|60|
|Onions|20|
|Mushrooms|40|
|Cheesecake|720|
|Whiskey|240|
|Wine|200|
|Total|3180|f
!! How is your health? Daily routine? 

I'm doing well. I'm probably eating too much, and I'm having odd dreams. Also, I've noticed tingling sensations in my feet at night. I think it has something to do with how I'm laying at night. That's a bad sign. I have terrible circulation. 

I've been experiencing plenty of thoughtloops. 


---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

I'm feeling anxious about my "next step." I feel a bit like I'm in limbo, like I don't have a solid gameplan, like I don't know where I am going, and I feel like I'm under significant pressure  to know immediately.

Finding work hasn't been easy. I feel like electricians, mechanics, and welders have an easier time finding a job. I still have options. I'm not in an insane rush. But, our car isn't doing well. We have money, but it dwindles. 

---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself.

I still don't have a solid grasp of this economic landscape. I don't know how things work. I'm still learning. I do have time to learn. It's okay to feel anxious! Use it as a motivational tool. Keep working hard!

It's important to maintain empathy for those around you while, particularly the ones you love.

Welders either have the certs and can weld, or they can't at all. It's binary. In a way, you practice before you can, and then it floods in on you. It's also the only skill that I can practice on my own at home (once I get a machine). The others require a kind of field experience which one doesn't merely pick up in isolation. I feel like welding should be the art I learn on the side, even if it I may end up doing it for a living. But, I may be wrong! It seems to be the area I have the most to learn in right now.


---
!! What are you going to do about what happened?

* I will continue to try and get my Ethereum account back. I have a significant amount of money sitting in there. It was a very wise investment. Admittedly, I feel like it is too early to take it out still. But, we could use it!
* I will apply to the electrician's union.
* I will apply the the boiler maker's union.
* I'll keep pushing in my welding. 
** I need to practice making roots.
Today's day was longer than usual. I studied for an easy test and nailed it. I have two more tests left in this book. There is only one more book left, if we do it. 

Oh, I also helped catch baby ducklings stuck in a very dense thicket/garden of flowers that is walled off in the center of campus. There were several of us working on it. I told empathy and evolution stories to these people of the duckling in this context. Great place to hatch them, except that they couldn't escape. I rarely touch animals except my cats, especially not of my own volition. It was cute though, and it needed my rescuing. I found the duckling's mom, and placed her carefully nearby. The duckling ran to her mom. It was sweet. Furthermore, I believe it endeared me to the staff and admin on campus. I had three people thank me. 

While the teacher was busy, I grabbed a bunch of tools and supplies for next week. Just in case he doesn't show up, I'll have stuff to work with. It is easier to ask for forgiveness than for permission. In a way, when confronted with the liability, responsibility, or possibilities of effort, people are too likely to say no. If they deal with it after the fact, especially if they already like you to some extent, they will be charitable enough to brush it off and think you did what you had to do.

After school I went to visit the union. I'm putting my time in. Randy knew my name today. They were working on a neat beveling device, trying to get it working. There were two apprentices with him today practicing. One was an ex-marine who came in as 4th year apprentice, a welder. He was practicing TIG. He was okay, but didn't belong in the same league as the star pupil of Dale in the TCAT program. The other guy looked like a redneck Cypher from The Matrix (similar personality characteristics too). He joined 6 months ago as a welder. I think he came in as a 3rd year apprentice. 

Both guys said not to mention the technical school to anyone, since it would be held against me. I think that's funny, since I'm very convinced, at least for welding, that the technical school welders, on average, were miles better than these guys were. I watched and talked with both. 

The second guy, Jeremy, was going to show me the ropes of welding. He asked if I could try, but Randy said no to him (while I was gone getting my stuff). He said he'd let me anyway, and to just hand him the welding torch if anyone came by. He talked a lot. 

He said being an apprentice sucks, but the pay is great. He said our union was filled with really good people though. They've helped him out in tight spots and were there for him in difficult social situations. That's good to hear. He also said it is easier to find work as a welder than a fitter, especially if you've studied all the different types/kinds and are certified for it. His claim was that all welders can fit, but after seeing his explanation of the table he created, I'm not so sure he would be able to just whip out serious pipefitting from isometric to spool, nor the rigging and mounting that comes after. He definitely has some shittalking in him.

He showed me how to drop stringers and explained his thought process. He had some good points. I then showed him what I was made of. The crust flaked right off, and my gorgeous bead stunned him. He said it was perfect, that they were better than his, and he obviously had nothing to teach me. Said he would kill to weld like that. Mind you, I did give him my absolute best, in my best position, using a temp higher than I normally would. 

He told me to learn to drop roots, practicing just that. He says my hotpasses, fillers, and caps would be amazing if they are anything like my stringer. He's right. Once I master the root, I'll have everything I need to pass the certifications for welding structural plate, imho. In fact, he said if he were me, where I'm at, I should just skip straight to pipe. I really suck at pipe. But, if I could stickweld pipe, I would be in great shape.

He gave me some parts to practice the walk-the-cup motion on TIG. 

I'm thinking I'll follow my teacher's advice here; maybe I should just weld next week. Although, I need to pass those tests too. I think building a connection alignment pin would be worthwhile. Practicing my roots is really key. So much to do, so little time!

If I can pass the stick welding tests for both plate and pipe, I will dramatically increase the jobs available to me. I'm not sure how to broach the subject with my pipefitting teacher, nor how to convince AB&T to buy a welding machine for me. 

It's difficult to see the correct direction to take! I have many options. I would be excellent at all of them. Again, the union looks like a great place to continue learning all the trades. 


!! Champion an organization

People suck, especially when they are interacting with each other. I rarely have respect for organizations. That said, I am grateful a few exist as they are (for the most part!). I highly recommend The Electronic Frontier Foundation (EFF): https://www.eff.org/. They do good work. They preserve digital, intellectual, technological, and adjacent human rights through western legal systems. They aren't perfect, but I have respect for what they do and why they do it.

I don't give money to organizations anymore for the most part (my trust fuse is burned out), but EFF is one of the few I will continue to give money to. If there is any hope for humanity, and the masses in particular, it will be through organizations like the EFF fighting the psychopaths of our world.

I suppose I don't know how to champion an organization. Champion to whom? Convincing myself is easy. Explaining why the EFF is so valuable to others requires convincing them of their stupidity, generally on a multitude of subjects and levels. Oh, I can put forth a rational argument. That's not what this is about though. Their very foundations are so profoundly wrong and ignorant that I'm putting the cart before the horse even trying to champion the EFF to them. These people already "know" what they think they need to know. Good luck closing that incommensurable gap.

Explaining what is good and right about the EFF requires having Theories of The Good and The Right in the first place (and the will be to be philosophical). For my audience, we aren't going to agree, and I'm not going to lie. I think there's no point to it. To be fair, I think some of those who support the EFF don't even get what's great about the EFF; they support it for the wrong reasons or for incomplete reasons. 

My championing is only effective for people who were already fairly close to agreeing with me in the first place, and that is generally quite rare.

I'm sure you think that's "just a fine attitude, indeed" don't you Samwise Gamgee? Go fuck yourself, you sarcastic piece of shit. Welcome to the epistemological and ethical nature of fundamental disagreement. To an overwhelming degree, I'm not responsible for the willed-ignorance of others. That's true today moreso than it has ever been. Finding the truth today has far less to do with the Socratic method and public discourse in a traditional sense than it does with curating, bursting your information bubbles, and critical analysis on your own. The information is easily obtained. Having the intellectual integrity is the hard part. Sifting through it, thinking about it, and being wise is on the individual, and my obligations to you and others are fairly limited outside of my citizenship (of which, I'm fairly powerless). 

I'll quietly plant seeds and cultivate those ready to drink my koolaid, but I'm not here to be a prophet. Most of you assholes deserve to suffer (of course, I don't want humans to suffer, but part of me thinks you should reap what you've sown). 

The days when people come up to me charitably asking questions and listening to me for understanding is when I will bend over backwards to connect the dots for them. I'm done sacrificing myself for humanity (which doesn't deserve to live) beyond what I believe is morally required of us all.

Championing is a weasel word for rhetoric, not philosophy. KYS, Samwise Gamgee. I'm not playing that game unless I can reasonably improve the lives of my children and family with it, and even then, I do so in disgust. I'm avoiding that game whenever possible. Not my circus, not my monkeys. I have no more spoons to give.
* [[DIY Pipefitter Tools]]
** I think the wedge might not be relevant. I'll just take an old one and clean it up.
** The Centering head seems damned useful. I should build it.
** The Fit-up Connecting pin (hooked preferably) is also a tool I need.
** But, I need to weld too!
* [[2017.06.22 -- Link Log]]
** I think I still have a serious link problem. I'm not sure how I want to handle it. I need to think. 
* [[2017.06.22 -- Carpe Diem Log]]
** Seems like a good day to me! Well-seized, sir.
* [[2017.06.22 -- Prompted Introspection Log]]
** Edited.
** That's a prompted introspection! You don't get gold everytime, but sometimes you will strike upon it.
* [[2017.06.22 -- Diet Log]]
** That was not a healthy day.
* [[2017.06.22 -- Wiki Review Log]]
** I need to get over asskissing. This is an RPIN and KIN issue, no doubt.
* [[2017.06.22 -- Pipefitting Log]]
** Edited.
* Woke up late, noice!
* Set out the kids chores for them, grabbed my glasses, and surfed in bed for a bit.
* Got laid! Woot Woot!
* Helped my kids clean their room and get on task. We had, yet again, a significant discussion about working hard, empathizing with ourselves, etc.
** I was particularly hard on my daughter who continuously lies to me. =(
*** I'd take the lying if she (a) was improving at it, and (b) actually worked hard
* I took a massive dump and got some sweet reading time in. I rarely have significant brick-pushing sessions anymore, but after last nights party, I had some duty duty to do.
* We went swimming!
* I'm still reading that [[In Over Our heads: The Mental Demands of Modern Life]] book.
* I grafted a bunch of bookmarks into my [[Links]] section.
* I watched some league of legends games.
* We went over the kids schoolwork this week. 
** I'm feeling pleased with my son's effort, but not my daughter's. I'm worried, but not overly.
* We had a great dinner.
* I did the kitchen with my daughter.
* I've decided I need to call the landlord tomorrow for a small leak. I don't see the source.
* I watched some Rick and Morty before falling asleep.
|customTable|k
|Food|Calories|h
|Eggs and Toast|320|
|Brussel Sprouts|60|
|Pear|100|
|Hummus, Pita chips, and Olives|500|
|Tikka Malasa|650|
|Sorbet|260|
|Beer|100|
|Total|1990|f
* http://uk.reuters.com/article/us-gambling-usa-dummies-exclusive-idUKKBN19D137
** Neat. You have my attention.
* http://tratt.net/laurie/blog/entries/what_challenges_and_trade_offs_do_optimising_compilers_face.html
** An interesting blog post.
*** Interesting phrase: local maxima
* https://m.phys.org/news/2017-06-year-old-physics-problem.html
** I'm not expert. That sounds like a big deal.
* https://www.youtube.com/watch?v=bAojxWZRVKk
** Wholesome memes. I often think these people seek fantasy as a drug.
* https://melmagazine.com/why-fewer-lower-class-americans-are-getting-married-4a8f64812391
** We know.
* http://nautil.us/issue/49/the-absurd/why-your-brain-hates-other-people
** I need to write on this topic. I think there are some serious redpilled issues to sort through. 
** Yet again, Nautilus delivers!
* http://www.businessinsider.com/r-saft-on-wealth-as-psychopath-ceos-destroy-value-nice-ones-create-it-james-saft-2017-6
** Fool. They are all psychopaths on the spectrum!
** This is image crafting and an attempt to hide that psychopathy. 
* https://hbr.org/2016/08/millennials-are-actually-workaholics-according-to-research
** Not surprised.
* https://i.redd.it/i4erzsuqndwy.jpg
** It's only going to get worse. 
* https://www.reddit.com/r/DeepIntoYouTube/top
** Not boring. Not worth much of your time though.
* https://www.bloomberg.com/news/articles/2017-06-22/there-could-be-ketamine-in-your-natural-chicken
** As a ketamine analogue user, I can't help but laugh. Definitely odd.
* https://www.youtube.com/watch?v=eNT1L3jGjbA
** Prescient
* http://money.cnn.com/2017/06/23/media/white-house-press-briefing-sketch-artist/index.html
** Yikes!
* https://www.theatlas.com/charts/HJFYm4uQ-
** Fascinating and sad.
* https://www.ostechnix.com/easy-fast-way-share-files-internet-command-line/
** While I appreciate what this tool is, I want more decentralized tools. I don't want to rely upon others to do these basic tasks.
* https://www.theatlantic.com/magazine/archive/2017/07/whats-wrong-with-the-democrats/528696/
** Unfortunately, some serious lies in this article. Bernie easily would have won the nomination if it weren't for DNC super-delegates claiming allegiance to Clinton from the beginning. It was very clear from the onset that DNC were going to fight against Bernie every step of the way rather than rallying behind his clearly superior base of support. This is neoliberalism.
* http://www.salon.com/2017/06/24/manufactured-illiteracy-and-miseducation-a-long-process-of-decline-led-to-president-donald-trump/
** Marxist tunnel vision on material conditions is flawed in a sense. It lacks the memetic viewpoint.
* https://www.bloomberg.com/news/articles/2017-06-23/google-will-stop-reading-your-emails-for-gmail-ads
** Don't be naive. 
* https://blockstack.org/whitepaper.pdf
** It seems to only be part of a solution.
* http://olduse.net/blog/current_usenet_map/
** A cool part of history.
* http://cancer.nautil.us/article/225/getting-googled-by-your-doctor-is-the-new-normal
** Until I understand more about how my information is used against me, I will continue to avoid the standard channels as much as I can.
* http://www.npr.org/sections/ed/2017/06/24/533950485/devos-appoints-ceo-of-a-student-loan-company-to-head-federal-aid-agency?sc=tw
** Yup. We're in for it.
I need to go through my books, highlight everything, and read the chapters this weekend. It's important that I smash through it. There is a possibility that my teacher will be expecting me to take the exams on Monday and Tuesday, and I want to complete them. 

I will focus on making a couple tools and dropping my roots. I need to get my stick welding up to snuff. I want to weld and fit!
!! Three celebrity crushes...

All the tough questions and prompts for me today. This one is tough only because it is hard to narrow down. My wife has agreed to threesomes with any of these females should the occasion arise.

Do you mean something besides fuckability for a crush? Is it the appearance of who they are, who I really take them to be? I think they are terrible human beings. Fuck? Yes. Crush? No. Back to what matters here, the drug itself.

# //Lady Melisandre// as Asshai, The Red Woman, from Game of Thrones is a perfect 10. But, Carice van Houten isn't as hot in other roles. Carice generally isn't a perfect 10. It's the atmosphere, the makeup, the context, and the way The Red Woman carries herself that makes me so horny. 

# //Salma Hayek//. God damn! I have spilled a lot of seed to this woman. I think she is a terrible actress, and her characters are generally annoying and not believable. That's part of her schtick I guess. Regardless, she's insanely hot.

# //Lucy Liu//. She's a stunner. Oddly, I often love her characters/roles, and I don't mind her acting (not that it is good, but it works for me). She gives me the yellow fever.

* [[2017.06.23 -- Carpe Diem Log]]
** Edited.
* [[2017.06.23 -- Prompted Introspection Log]]
** Edited.
* [[2017.06.23 -- Diet Log]]
** Edited and summed.
** It was a party night. That said, it feels like my calorie consumption has been increasing. We will find out when I average the end of the month.
* [[2017.06.23 -- Wiki Review Log]]
** I hope to work on my links today. Once I get it done, it will be done. Or, at least that stage will never have to be completed again.
* [[2017.06.23 -- Pipefitting Log]]
** Edited.
* [[2017.06.23 -- h0p3's Log]]
** Edited. It is clear that I'm feeling lost. I don't know what my next step is. I keep digging and thinking. I'm working hard. Here's another way to think about it. You didn't expect to have a job until the end of the year. You are over 6 months ahead; you've smashed the initial goals you set for yourself. You should be feeling happy. Keep it up! 
* What does "felt lucky" mean? Describe it. 
** His explanation was a good one.
* Keep working on your DnD character!
* You did a great job on your wiki this week. 
** Except, your "Cat-a-log" needs to be parsed out for each day.
* Woke up, shut the door, fireman time!
* I woke up really early, so I was actually the first one downstairs. I surfed while people trickled down. 
* I watched a bit of league too!
* After everyone left, I took my DCK and watched Rick and Morty until it started to hit. 
* I was already setup to meditate in my room. That's what I did. 
** It was hard work, and I'm glad I did it.
* The family arrived before my meditation ended.
* My son showed me what he and his sister had made in Sunday school. It was cute and interesting. He put on a show.
* I came downstairs and finished my DCK writing. 
* My daughter started her schoolwork, and my son went out to play (since he had finished his). 
* I setup power and ethernet cords around the house.
* I tried calling the Landlord (corporate HQ really), but nobody answered. I'll try again tomorrow.
* We went shopping for groceries. It went by quickly, and it was fun.
* We put groceries away. My son came back to help us. 
** We've been giving him more roaming freedom.
** He now marks on the chalkboard where he is in addition to telling us.
* We made chili and cornbread for later in the evening.
* I made the sexy times with mi amor.
** I am surprised that I can achieve it through the DCK afterglow now.
** It is possible the effects are weakening on me. In any case, things seems to be working.
* My wife and I talked. We planned our DND game.
* I planned and wrote about it. Everyone had a blast building characters.
** The kids were excited to the point of being rude actually.
* We had our family meeting while we ate.
* I chatted briefly with my friend ALM.
* I'm writing this, getting some water, and gonna watch some Rick and Morty while I try to fall asleep. 
** DCK's ability to prevent me from sleeping is still there. 
** I will assume it is harder for DCK to disassociate me now. I believe I am more integrated than I was.
The Us vs. Them mentality is powerful, pervasive, and I'm not sure it is escapable. This meme is so strong and so embedded in who we are that I'm convinced it's not merely software, but perhaps even part of our hardware. We are hardwired for it. That said, there is always "Faith in Humanity," the hope that we can evolve to be better than we are, etc. Can we modify, control, self-legislate for our Tribal Firmware?

I don't know. 

I feel like my Tribalism has increased, but I'm not surprised (about to be 32 here). It crystallized and the circle tightens. Call it wisdom, call it psychopathy. I don't know what to call it. It seems prudent. I hope to draw these lines in a way that I won't regret, to draw them in a way that maximizes our utility, in a way that makes us happy. I can't be perfect, but I should do my best. I do have enemies. However hard it can be to imagine someone wanting to kill me, enslave me, or make me suffer, I do have them. They come in various degrees and kinds. They come in large structures, institutions, and patterns. DJ Dr. Suess, drop a beat! Where be mah redpilled kid's book at?

There are many different sets in our object-oriented ontology. I'm a member of many sets. But, I feel like only some of these sets count as social spheres in which Tribal lines are drawn and understood. 

It is difficult to treat myself and humanity with respect at the same time. The deontic contradictions and systematic incoherences abound. Kantianism is a form of Tribalism. There are other metaethical tribal structures to consider as well. How do I know which Walzerian Spheres of Justice are more important? How do I balance, negotiate, and make sense of them? 

---

Write because you care about what you think. You should, and you do. It is not immorally egotistical, self-centered, etc. Do not be ashamed of it. Clear that out of your head. Your arrangment of memes comprises who you are. To say you matter is to say that configuration of memes matters. You are what you think. Well, you are what you think in a consistent, habitual way. Or, maybe you are the thinking thing in all its particularities, including the patterns and exceptions. Regardless, I think who we are is still largely defined by how we believe (both gutterally through desire and through our frontal lobes). Simulations show who we really are: a memetic network, a computer, etc.

---

It is a lonely thought that few if any will want to understand what I believe, will want to get to know me. In a way, I lack marketability. I don't have what people are looking for. Again, egoism pervades our species.

---

I want my kids to be wise. As a means to that end, I think they must be absurdly educated. They need to see that the educational institutions around them are overidealized. There are many cults integrated into them. That said, being someone who navigates through these cults will pickup many valuable tools and experiences. 

It's not just education institutions either. It's all institutions, relationships, and organizations. Members seeking entry into a tribe pay tribute, they sacrifice, and they pay their dues. There is a tax on the poor, a capitalism to this tribalism. Sadly, even our educational institutions and infrastructure have it as well (they always have!). What say you, Plato? Handjobs for Wisdom, right?

---

I am grateful to my parents for the memes they have provided me to survive. I am entitled to them, no doubt. They didn't fuck everything up, but it only takes a handful of mistakes to ruin everything.

---

The world is so fragmented and large. It is chaos. I sound like an old-timer. I have this ideal in my head, and as I expand my understanding of the world, see it for what it really is, I grow conservative. 

----

While I see it sober, I am drowned more clearly in it on DCK. I perceive ontology differently through it. 

I see:

* strings. 
* wells.
* pin-holes with infinite pressure behind them.
* sinews twisting.
* atoms, molecules, and structures within structures, and overlapping structures. Thar' be the Metaphysical Dynamics.
** Why is my ontological status normatively superior? Ah, I cannot answer you, OOO. Because that's what I do?// **Hume "IS/OUGHT" Battle Hymn**//
* the machinations, the gears, systems, paradigms
* that I do not see clearly enough.

---

Evolution does have power embedded in it. 

I love and fear that feeling like I'm a blip. Like I'm cell. 

---

I want to be a visionary. I want to see the truth. I'm a philosopher only because I want to know.

I must do so in the right way, at the right time, for the right reasons, et cetera et cetera and so on and so forth. I should not sacrifice that which is most precious for it. I must be virtuous in my pursuit of the truth.<<ref "1">> 

---

I have tasted metal 3 times in the past month of DCK use. It is sharp. I need to ask about this. I must research it. I need to think. That is not a natural flavor at all. It may be a benign effect of DCK, or could be something worse. 

---

I feel like I'm building battlebots of my children. I want to equip them to fight the world. They must be gladiators. They must be chameleons. If I humbly serve as a philosopher king, I  think of them as something like Plato's Guardians. The analogy has tons of problems, I realize. Something is right about it. It's hard to isolate the signal.

I need highly trained, jedi, mentat assassin, renaissance man, kwisatz haderach (still in my father's language), 1337 hacker, chameleon gladiators. I must work with their strengths, shore up their weaknesses. I'm making an army with the right power dynamics, autonomy, love, and empathy.

I want us to be the FINAL FOUR. Triangles are special, strong, unique; there are 4 triangles. But, I'm dedicated to a four-way bond between us all. I need to develop friendships with not just my wife, but my children. I want to be their rock; I want us to form a mountain. I must give us a name. A fictional name I can use. We should go back and modify our names. We can programmatically alter it. I'll just keep a timeline. This is the narrative we build together.

I have neglected learning how to defend ourselves. It is important that my children are literal warriors as well. They need to be able to protect themselves. If life is a game, I think we need to wake up accept the fact that we have real enemies. Our goal is to protect ourselves. 

There are so many things to learn, and so little time. I wish I lived a life before I could raise my children so that I had the wisdom and experience to know how to even remotely know how to do it right. 

---

We need to do philosophy.

Their success is my success. My old teacher is correct, fame and fortune. He sees it. 

---

HRD is about feeling powerful through other people. I see why my mother chose it. She feels powerful with it, like learning the science of people will allow her to change the world for God.

---

Trusting trust. I do not want our family fall apart. How do I make it so that we know we trust each other? Tit-for-tat mechanisms are the best way to build trust. It may be not be absolute best algorithm, but it is quite strong.

I feel like my father, planning. I remember the feelings.

---

I feel like a horcrux sometimes, but not in a bad way. I think it is an interesting philosophical notion. My wiki is my horcrux in a way.

---

Does it sound insane that I think there are drugs which help make my mind more powerful, productive, constructive, intuitive, and able to influence our lives in positive ways? They are two-edged swords, no doubt. Why would we not talk about the "good" side of the blade? 

I think taking on different perspectives, depersonalization, and derealization are things we valuable experiences, modes, and educational opportunities. I'm not saying we should be irresponsible with them. Quite the opposite. 

---

I think we should study pure war theory books. The problem is that it gets reduced down to "isms," obfuscations, gnostic secrets, etc. 

Warriors need to have that mindset. Humanity's Warriors. 

---

<<<
Because you are more pain than you are worth.
<<<

Can you unsink a ship? Probably not. Let it go.

Strict utility calculation here. Sometimes, you have to trust the math, humanity.

Let your sunk costs go.

---

My goal is to flourish without being a predator of humanity. It's the gem of a life I hope to live. However improbable, I will pursue it. It is really fucking hard. But, that is a life I can respect. It has dignity because I say it does. QED.

---

What do you want to do, and why? 

I must ask my children that everyday.

---

I want my kids to start cataloging media they find valuable. These are important touchstones and anchors, memories they can revisit, analyze, cherish, and use.

---

<<footnotes "1" "Nazis were not virtuous in their pursuit, although they pursued it in some cases.">>
|customTable|k
|Food|Calories|h
|Pear|100|
|Chili|750|
|Cornbread|350|
|Clementines|70|
|Cheesecake|360|
|Total|1630|f
!! How has your health been this week?
* 1uxb0x
** Good. Allergies a bit.
* j3d1h
** Perfectly fine, except lots of mucus in her throat.
* k0sh3k
** Fine after her period ended.
* h0p3
** Thoughtloops and dreams, but I am getting sleep. I feel fatter.

---
!! What happened last week? Have you been happy this past week? Why or why not?

* 1uxb0x
** Yes, because he did his homework.
** Dr. Who!
* j3d1h
** Well, sad because her work didn't get done. Happier in that she has been more consistent in some logs.
** Has enjoyed her work on music.
** Can't wait to see the next Dr. Who as well. It was "really messed up," lol.
** Cheesecake!
* k0sh3k
** Finished student worker manual, woot!
** Turned F-oh-tee-"win"!
** Cheesecake!
* h0p3
** It was an extremely productive week for me. I got a shit ton done. 

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** You did a superb job in school with week. You worked hard, and it was a rewarding week. I'm proud of you. Keep up that hard work because it is paying off.
** When you asked for your mother's help, you take it seriously. You actually try to learn it rather than just getting it out of the way. 
** You learned your friends' names this week. Good work.
* j3d1h
** You did not give up looking for your computer! I know it was really frustrating, and you didn't give up. You had a good attitude. Lo and behold, it was in the last place you looked. You cleaned your room after it too. You saw the reason!
** Helped fix your brother's computer
** You've done a great job on your Cat-a-logs. You've been imaginative and empathic. 
* k0sh3k
** You've been a real warrior this week. You've been exhausted, the storms have not relented, you've been on your period, the cats have been crazy, and it's been stressful. I want to be more like you. Thank you!
** You wrote your recipes down in your wiki! Thank you!
** You've been forgiving this week. e.g. when I didn't do school work, you dealt kindly with me
* h0p3
** I taught my son how to pare his apple.
** Willing to work on my daughter when she doesn't want to work on herself.
** Thank you for making my birthday special.

---
!! What will you do this week? Name at least one fun objective and one unfun objective.

* 1uxb0x
** Pick up litter in the area
** Build a character!
** Play with Joe-joe (jojo?) this week.
* j3d1h
** Go outside more, taking walks!
** Write a script for a video.
** Build a character!
* k0sh3k
** Start on ILL handbook.
** Migrate work content to wiki.
** Finish campaign prep
* h0p3
** Call the fucking Landlord.
** Build a character!
* Sum your diet logs
* Choose a more serious and fitting title for "CodeEval Things" -- "Portfolio" may be a better word.
* Be more specific than "Potential School"
* Finish your school logs.
* Stop lying; do your writing.
* I am thankful that you did diet logs more often, but you need to complete all of your work.
* I loved your cat logs.
* Pull your quotes into a sub-bullet point.
* Put your thoughts in a sub-bullet point too. I know the quotes you selected are your thoughts, but you may have more to say in your own words too.
* I often have a hard time knowing what it is that I'm clicking on.
* Thank you for writing!
* https://lists.debian.org/debian-devel/2017/06/msg00308.html
** Oh snap! I'm running on older hardware though ;P
!! Respond to the following quote: 

<<<
I have always imagined that Paradise will be some kind of library.
<<<

Paradise is an idea, nothing more. That said, a library does sound like paradise! What could be better than the joy of learning, thinking, reading, watching, and being philosophical? Add in some drugs, music, food, and worthwhile company, and you've got yourself the most badass party I could ever imagine. 

Honestly, that's what I hope to turn my home into. That's the contemplative life of paradise I want to live with my family. Seriously, it's my goal. I think I can make my children's lives meaningful, enriched, and fulfilling by trying to make their lives like a library. My wife is literally a librarian, and I think of myself as a guerilla librarian of sorts. That's what I want to do!

Also, just as a reminder, my wife owes me a roll in the librar'hay. 
* [[Links: NSFW]]
** To be filled in later.
* [[Links: Philosophy]]
** Ugh, I don't want to do this. I need to do this though.
* [[Links: Redpilled]]
** This would be useful.
* [[Links: IP, Privacy, Censorship, Surveillance, Mind-Control, & Anonymity]]
** Endless supply.
* [[2017.06.24 -- Link Log]]
** Also, an endless supply.
* [[2017.06.24 -- Carpe Diem Log]]
** It was a good day!
* [[2017.06.24 -- Prompted Introspection Log]]
** Horny and lazy. I love it.
* [[2017.06.24 -- Diet Log]]
** Not bad.
* [[2017.06.24 -- Wiki Review Log]]
** Lots of edits. Why? Did I not write well the day before?
* [[2017.06.24 -- Pipefitting Log]]
** I am very excited about this week!
* The alarm clock awoke me. DCK makes it hard to fall asleep. I dreamt deeply.
* I woke the kids and surfed for a bit while getting ready.
* My wife made lunch for me, and it was delicious.
** Thank you!
* I worked fairly hard, but most of my energy was spent on social considerations. 
* ''I landed a fucking pipefitting job!!!'' Woot woot!
* I called my wife and talked about it with her.
* I came home and talked to the kids about it.
* I called the landlord to get them to fix the fluorescent light and leak.
* I called my brother JRE and talked to him about it.
** He is coming to visit with my cousin!! And, if we're extra lucky, my brother AIR will possibly be joining us as well!
* We started looking for lodging accommodations for me.
** My wife has friends in Charlotte on the lookout as well.
* We made plans with another homeschool family for two weeks from now (right before I leave) to go swimming, plays some board games, chillax, etc.
* We developed more plans for the future. We're thinking ahead, trying to see what options are open, and what the best path is.
* I bumped uglies with muh 'ho. =)
** I also took a shower (I needed one)
* We made dinner; grilled cheese, veggies, and soup.
* We watched an episode of GoT.
* I cleaned my nails exceptionally well today.
* I helped my daughter wash the dishes.
* My parents wanted to video chat. We will get in touch.
* I need to contact my brothers and cousins with DND rules; I'll build characters for them if they prefer that.
* I'm going to have some sorbet and chillax with Rick and Morty before falling asleep.
|customTable|k
|Food|Calories|h
|Apple|100|
|Clementines|105|
|Pear|100|
|Peach|70|
|Cornbread|260|
|Chili|250|
|Nuts|170|
|Tomato Soup|150|
|Grilled Cheeses|350|
|Brussel Sprouts|70|
|Asparagus|60|
|Sorbet|130|
|Total|1815|f
Today was uplifting. I was the only student there today, but my teacher was there. We talked, and instead of studying, I said I wanted to work in the shop (I will get through the tests). In particular, I wanted to build a fit-up bar for myself. He said I shouldn't try to make my own since it really needs to be made of hardened steel. I thought about welding it instead, but I realized that may not work either (but why not? It seems like it should; welds are very strong).

I told my teacher about my visit to the union. It was my preface to working on pipewelding. I have basically no practice at it, and it would be a wise step. He agreed, and he said he would try contacting Jacobs again for me. 

I went about my business. I cut some pipe, beveled, and started welding. I've been putting landings on these pipes, and it makes a difference. I don't think I put a full 1/8" gap between them though, and that bit me in the butt. That said, I still burned plenty of holes. The rotation is much harder than just plain plate. I think I could improve significantly with plenty of practice. There were acceptable parts of my root. The filler was fine. The caps were not good. Parts of them were just fine, but my directional control and my tie-ins sucked. Practice!

All-in-all, I did 3 pipes today. Good enough. 

Towards the end of the day, an interesting flurry of events happened. My teacher said he had spoken with the welding teacher, Dale, and they had a job for me to consider. They sent a picture of my simulator work, and the company loved it. The only problem is that the job is 3 hours away from me in Charlotte, NC. It's a permanent job. I'd have to commute, live in someone else's house for a several days a week, and then head back home. Basically, it would only be worth it if I could work 3 days at 13 hours a piece or four 10's, or maybe even overtime if I'm lucky (I'd need to show them what I'm made of first). I'd need to make it worth my while.

So, I wrote a cover letter (borrowed from what I had), explained my situation, and sent my resume to the guy. He responded and quickly asked how much I wanted. I told him I wanted $22.50 an hour (I knew the top-end was $25 for this job, and that would be for a journeyman, I take it).

They called me while I was pushing out bricks. My connection was bad. We lost connection twice (once after I left the bathroom), and so I just asked my teacher for his landline. The interview went well. They decided they might be able to do $20 an hour for me because I have zero field experience. They said after 60 days they would revisit my pay and likely offer me a significant jump in pay (Dale confirmed this as well). This will at least give me experience for the union. Also, I asked if I could learn to weld, specifically TIG pipewelding while there. They said they could work that out with me. I also talked a bit about Chris. I said I would try and help him too.

They talked to Dale and I was given high praise. I am glad to have the recommendations of my teachers. I thanked them both. It worked out. Now I need to see how I can manage to find a way to get the $2k allocated to me from AB&T and actually use it. I also need to see about getting access to my Eth. Every dollar counts.

I start July 10th! I take my drug test and do the paperwork. I believe I start working for real the next day. My wife and I are working on living arrangements. There are some scheduling conflicts now for my wife's travel plans for work. We're getting that sorted as well. I need to make sure the car is in decent enough shape for this as well. We're going to save for a vehicle. I'm going to shoot for a van. I'd like to be able to just live in my van. I could save a solid $400 a month that way, and I would be prepared for the next step, which I assume will be the union. Then I will be prepared for traveling and saving every dollar I can. If I'm going to spend time away from my family, I'm going to make it count. 

Assuming this all works out, I will still join the union. I may be covertly working inside the union (I'm not sure if I'm going to pay dues or not), while gaining experience in this company and putting ourselves into good financial standing. If I can get the stars to align, the goal is to walk into the union as a 4th year apprentice. Then, it would take me, hopefully, a year to hit Journeyman pipefitter and pickup my welding certifications (assuming I've been practicing diligently for the next 1.5 years). After that, I can pickup my valve certifications within a year. Journeyman pipefitter, pipewelder, and valve specialist in 3 years. It is possible that I could learn Plumbing and HVAC in a very short amount of time as well, but if I'm going with valves, why go that route? Plumbing is something I can do on my own, building my own company, but perhaps being a valve specialist would be the same way. In any case, I just might be able to do it. It is possible that 2.5 years from now I will have significant mobility, having the money to buy a house wherever we want and work near any major city. 

Towards the end of the day, before I left, my teacher asked me a personal question. He asked me "how someone loses their faith," referencing our previously personal conversation from months ago. He was genuinely curious. I tried to explain my upbringing and reason-based approach to faith. I don't think it clicked for him, lol.

Lastly, I still should contact the Boilermakers and the Electrician union. It is possible I could have local work at the same pay. I'll keep looking for pipefitting jobs around Johnson City as well. Why not?
!! What are you looking forward to the most?

I'm looking forward to being wrong about the world and myself in such a way that I am fulfilled, happy, and joyful. i.e. I'm most looking forward to being happy. Of course, the conditions for my happiness aren't simple, and I am not convinced I'm wrong. I'm looking forward to having better reasons for hope. I hope I get what I'm looking forward to.<<ref "1">>

---

<<footnotes "1" "I'm delivering a succinct answer like my wife provides in her introspections. =0">>
* [[2017.06.25 -- Prompted Introspection Log]]
** Don't forget, woman!
* [[2017.06.25 -- Diet Log]]
** Summed.
* [[2017.06.25 -- Wiki Review Log]]
** I've noticed that this hasn't produced direct fruit in a while. Or, at least, it doesn't feel like it. But, I must remember that it comes and goes. It oscillates.
** Note that my pact ended.
* [[2017.06.25 -- Family Log]]
** It was smart to write my compliments in advance. I need to continue doing that.
* [[2017.06.25 -- k0sh3k's Wiki Log]]
** Maybe Dropbox->Hardlink to Sync Folder to make it better for work
* [[2017.06.25 -- j3d1h's Wiki Log]]
** I desperately hope she does her school work.
* [[2017.06.25 -- 1uxb0x's Wiki Log]]
** I hope he keeps it up.
* [[Aquina the Shadowmonk]]
** I very much enjoyed building this character. I will build more.
* [[DND: Build-A-Character]]
** I think this is a very good starting place. In a way, I'm looking for a game designed for players who have played for a long time.
* [[Dungeons and Dragons]]
** I guess I'm back at it. Give me my drugs!
* [[Racist Word Collection]]
** Rofl
* [[2017.06.25 -- Link Log]]
** A sad link log. I have a ton backed up waiting.
* [[2017.06.25 -- DCK Meditation]]
** Twas a useful day.
* I had a nightmare about being in the car with my parents. See [[2017.06.27 -- h0p3's Log]]. I started writing it here, but realized this is the wrong place for it.
* I woke up right before the alarm clock. 
* I didn't work crazy hard on what I usually do in the shop. I did work hard though, it was on strategizing, planning, and thinking about the means to my ends.
* Lunch was great (I basically ate two, lol), and I was able to connect with my family over Pidgin.
* I've tried contacting several people today, including the Landlord. The light isn't quite fixed. Also, we may have a different leak next to the dishwasher. Lol. It's been busy!
* The kids were on task, and I'm glad. I did some studying as well.
* Fireman time!
* We went swimming, grilled, and had a good time.
* Worked on my wiki.
* I tried very hard to get udev to run a script when my USB drive was inserted. I've done everything, and it doesn't work. I give up. Lol.
* Turns out my kids didn't finish their wikis. =(
* Rick and Morty until I fell asleep.

|customTable|k
|Food|Calories|h
|Wrap|250|
|Apple|100|
|Clementines|100|
|Pear|100|
|Burger|400|
|Fries|350|
|Hotdogs|500|
|Chips and Salsa|270|
|Pear|100|
|Clementine|35|
|Peach|30|
|Pretzel|20|
|Tikka Masala|400|
|Total|2655|f
!! How is your health? Daily routine? 

My health has been fine. I've been having intense dreams, which is often a sign of stress for me. I am sleeping though. The chest tightening of anxiety is there too. The lack of cannabis of the past months has been workable, but it would help now. No go, however. I must continually pass drug tests for the foreseeable future.

---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?

My parents contacted us yesterday. They want to talk. Our last meeting went poorly. I'm really tired of being hurt. I can't afford it at this point. I don't have Cannabis as a tool to overcome it, and I've got a ton on my plate. I can't afford to be affected by their lack of empathy and sensitivity at this point in time. There is too much riding on the next few weeks going smoothly to risk it.

I also had a vivid nightmare about being in the car with my parents. 

I have to say, I think it may just be better not to call them.

---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 

I'm at a crucial point in my life, and they emotionally hinder rather than help me. They are vampires, and that's just not what we need right now. I'm not here to feed their Baby boomer narcissism and acquiesce to their delusional feelings of entitlement to biblical parental worship (beliefs and feelings which they cannot hide from me).<<ref "1">> I'm sure they would have some parallel remark, as they despise millennial culture and their own children to boot.<<ref "2">> Ultimately, I don't have the energy for them, and that's in no small part their fault. I wish it were otherwise. I only have so many spoons to go around, and that is not a wise investment of myself right now. It is far from obvious to me that their memetic infection is useful to my children, and their half-assed attempts at a relationship with my children (let alone foregoing the duties to their own children) is only marginally better than what I had with my own grandparents.<<ref "3">> I hope that changes in time, but it won't be this month.

---
!! What are you going to do about what happened?

I'm going to ignore it and focus on what matters. I'm not convinced the risks are worth the rewards at this point. 

---

<<footnotes "1" "As a part of the differences in our reality maps, we have vast disagreements about the Hohfeldian rights molecules at play here. I will reiterate again: //Creators have duties to their creations, not the other way around.//">> 

<<footnotes "2" "They helped teach me to hate myself.">>

<<footnotes "3" "They want to have their cake and eat it too, but that's not the way the cookie crumbles.">>
* https://www.theatlantic.com/business/archive/2017/06/disappearance-of-the-summer-job/529824/#article-comments
** That is a rosy picture. We will see.
* https://www.nytimes.com/2017/06/01/opinion/sunday/popular-people-live-longer.html
** Fuck! I'm dead, yo!
* https://www.usatoday.com/story/news/2016/03/11/nearly-2000-water-systems-fail-lead-tests/81220466/
** Ummm... Carter Country, TN has almost all the unacceptable lead levels hits in the state. Fuck me.
* https://brodoland.wordpress.com/2017/06/23/post-postmodernism-and-the-alt-spectrum-of-ideology/
** Was an interesting, odd, and not obviously correct article/post.
** Also, brought me to this: http://spiraldynamicsintegral.nl/en/about-sdi/integral-theory/
* https://www.msn.com/en-us/money/markets/another-recession-would-ruin-two-thirds-of-americans-survey-finds/ar-BBDeZPI?li=BBnbfcL
** You dipshit, we've not actually escaped the last one. Capital gains for 1% might be back to previous levels, GDP might seem better, and your completely fudged employment numbers might look better, but the actual economic lives of masses have not improved.
** MSN =/
* https://github.com/Kikobeats/regexgen-cli
** Regex expression creation tool, neat.
* https://medium.com/@ddvzlnz/the-internet-is-an-increasingly-hostile-environment-6442001363ec
** Says nothing new, but it was a fun idea dump.
* http://www.spring.org.uk/2016/05/empathy-killed-popular-painkiller.php
** Fascinating. If you can't feel another's pain via painkillers, if your mirror-neurons don't work appropriately, then you won't empathize.
* https://mistertea.github.io/EternalTCP/
** A MOSH terminal alternative.
* http://www.nationalaffairs.com/publications/detail/how-effective-is-economic-theory
** Philosophy of Science + Cultural barriers for performing economics...
** For the record, I'm a fan of microeconomics (although, I have significant metaethical disagreements). 
* http://blog.achernya.com/2017/06/by-installing-nat-mit-stifles-innovation.html?view=classic
** This is a weird move. I do not understand it.
* https://www.counterpunch.org/2017/06/26/lies-that-capitalists-tell-us/
** Propaganda or otherwise, there are some fine points made up in this here article.
* https://theringer.com/google-chat-messaging-service-ending-bce80fff5d9c
** Fare thee well.
* https://www.nationaleconomicseditorial.com/2017/06/26/real-unemployment-rate/
** This is also incorrect. It is far more optimistic than it should be. The number of wasted lives is staggering.
* https://metaxy-psy.blogspot.com.au/p/metamodernist-psychology-as-new.html
** It gets weirder.
* http://www.nationalgeographic.com/magazine/2017/07/under-antarctica-frozen-beauty-exotic-creatures-penguins/
** It has been a while since I gave a shit about anything National Geographic.
* https://www.forbes.com/sites/thomasbrewster/2017/06/27/ransomware-spreads-rapidly-hitting-power-companies-banks-airlines-metro/#4cf15d487abd
** My prediction continues to be shown correct again and again.
* https://news.ycombinator.com/item?id=14646247
** For my daughter.
* https://bgr.com/2017/06/26/smartphone-distraction-study/
** I hear that, homie. Not that I have a smartphone anymore. I may, unfortunately be forced to get one though. 
* https://github.com/bindh3x/pas
** Still a shitty solution. It's so hard to fix this problem.
Today was interesting. I started highlighting my book. I hit the headers and quantities for both chapters. I finished highlighting the first chapter. I hope to test on it tomorrow. It is a huge fucking  chapter; both are. Once I've passed them, I'll be done with the book. I won't be doing the 4th NCCER book. That's okay. The field experience is more important at this point, and the NCCER certs were only a way to get my foot in the door to my first job anyways. Also, I'll be completing the last year at the union anyways.

I asked my teacher what he thought I was missing for the job I would be doing. He felt like I would be in great shape except for pipe hangers and supports, which just so happens to be the chapter I'm working on. Lol. I don't believe he was fucking with me either. It makes sense. I see these devices all the time when I'm looking at pipe installations in my everyday experience. 

I was interrupted by the thought that I needed to fix my lack of tools issue. My teacher came to talk to me about it after I had started too, so this is important. I started going through the list of tools that the class/school suggests for general pipefitting. There is a new gangbox instead of an awkward toolchest that should work nicely in my backseat. I went to the office to find out when the earliest I day would be that I could order it. They said the absolute earliest, if I'm lucky, would be two weeks into July. That's too late! So, I'm going to see if I can go around this process by having AB&T purchase it directly rather than through a school voucher that won't be processed on time. I'm going to explain my situation. I need the tools before then, not later. I need it for this job. We're talking about $800 of tools just to start me out and another $1,000 of specialized tools I need for the specific work I'd be doing. God damn is it expensive!

I spent quite a bit of time sifting through pipefitter tools that would be useful for the job I'm going to have. I asked my teacher about them. He said I could get by with just the initial tools, but he could see tons of cases where I'd benefit from the extended tool list. He also gave me a few more suggestions for list which I did not consider (he even brought his own toolbox out to show me). He said that if I'm going for raw speed, there are times where foregoing the clamps is best. That said, when accuracy matters, nothing beats them. I'll sacrifice 1 minute to improve my hi-lo's and angles. He told me to be careful with these tools as well; he said they would 'grow legs' (be coveted + stolen). I'm going to engrave my tools on the outside and the inside, and I'm going to watch over them. They matter to me.

In any case, assuming my teacher won't just hand me 6 months of "time in the shop" for free, instead of using AB&T's money to get a useless piece of paper for completing the degree (which aren't the certs; I've already earned those), I want to use the money to get a full set of tools. I worry they will think it is unwise to dump school here, but I'm done with the program (and completed work beyond the standard coursework). School isn't what I need right now (even if I love it), the actual field experience is though. I'm hoping they'll buy them and have them for me. If not, maybe I can buy them and be reimbursed. I know I absolutely need tools though. There isn't much time. Let me say, I'm very doubtful this is going to work. I shouldn't be too disappointed. I'm really grateful for what they have given me. While this is perfectly rational, they may not see it that way. Red tape abounds. 

I tried calling AB&T today, but couldn't get ahold of them. I will try again tomorrow. Their fiscal year begins in a few days, and that's when the money comes in. I have a very narrow window to succeed here.

My teacher also had me weld something he was fabricating for his swimming pool. The welds turned out nicely. He asked me if I wanted to complete the 1.5" simulator with a random welding student today. I said I'd rather study for the test. He definitely wants me to finish it. Lol. It will get done.

This is the second day I've swung by the union to see if Randy was there. He wasn't. I need to talk to him about the situation.












I need to get the car looked at. I need to talk to the electrician's union too!
!! What do you consider the best year of your life so far, and what made it so great?

This is tough. My years at Berea were amazing. My first year of marriage was insanely wonderful. My first year getting my MA in philosophy was sick, and the same for my first year getting my PhD in philosophy. This year seems to be yet another one of those (school is always that way?). These were all very stressful years, but incredibly rewarding too. If I absolutely had to pick one, it would be 2005 from start to finish.

* I had some of the most important classes I ever took.
* I started dating and married my wife.
* I graduated.
* I played Everquest with my family that summer.
* I had my first child that year. 
* I got my first professional job as a teacher that year. 

Let me say, it wasn't perfect, but it was pretty amazing. There were a lot of transitions that year. That said, I was also naive and filled with hope when I shouldn't have been. I still hadn't learned what the world and people were really like. I did not understand my plight. Ignorance is bliss. In time, I hope the truth will overcome that apparent fact.
* [[2017.06.26 -- Carpe Diem Log]]
** I've had a string of sexluck in the past few days. Woot!
* [[2017.06.26 -- Prompted Introspection Log]]
** Short and sweet. Good job.
* [[Wittlux the Timewalker]]
** This character still feel ludologically/mechanically stilted. I'm not sure what to do about it.
** I need to contact my brother and cousins.
* [[2017.06.26 -- Diet Log]]
** Summed.
* [[2017.06.26 -- Wiki Review Log]]
** Life has been good!
* [[2017.06.26 -- Pipefitting Log]]
** Edited. Forgot to write about the personal conversation.
* [[2017.06.25 -- Carpe Diem Log]]
** I still haven't watched the last day of TSM's games, nor John Oliver.
* Vivid dreams, woke up off and on for an hour before the alarm.
* I got the kids up and started. Asked them to work on their wikis first. 
* I worked hard. I'm still coordinating. That's what I'll be doing for the next couple weeks, I think,
* I hit the mechanic up. I'll go again tomorrow.
* I came home and worked more.
** I spent time getting my tool situation ironed out somewhat.
* Motivated le chilluns.
* Fireman time.
* Got a snack, woot!
* Watched some LCS, surfed, and wrote the wiki.
* I went the library with my wife. We also went to Harbor Freight to pickup some gloves, and to Wal-Mart for beer (for our weekend) and pie for our "Tao day."
* Inform the men!
* We made tacos for dinner, and we watched an episode of GoT.
* The kids finished off the last of their chores and work for the day. We informed them that they had the next 5 days off. Yay!
* I talked to my friend ALM and my brother JRE over chat. 
* I worked on DND characters.
* Pigged out and finished Rick and Morty.
|customTable|k
|Food|Calories|h
|Apples|200|
|Wrap|250|
|Clementines|70|
|Hummus, Pita, and Veggies|500|
|Tacos|1000|
|Beers|200|
|Cherry Pie|250|
|Fish|750|
|Total|3220|f
I got ahold of AB&T this morning (actually, Johanna called me). I explained the situation. I need a letter, with the letterhead, listing the tools I need. Sweet. I told my teacher, and he was kind of unhappy that it wasn't going through the school, but also that it may send a bad signal to my employer that I don't have the tools already. He suggested I carefully word my request to my employer in this respect. 

I spent the day studying. Chris came in right before lunch. He had already studied, but wasn't feeling confident. He took the test. He did okay. We talked about the job. He can't take it.

The teacher had me continue welding new things to his fabrication. I'm glad he trusts me to do it. I'm happy to get the experience. 

I took the test after lunch. I did well enough. I have one more to go. We agreed to meet next Wednesday on it. I'll be calling in tomorrow, since I have many things to do. It doesn't sound like there will be class next week, or something like that. Whatever. I have one test to take, and I'm gone. 

Also, my teacher told me to provide transcripts of my math classes. He talked to the president of our tech school, and these classes will be "transferred" in to make up for my remaining 6 months. This gives me a diploma. Great.

I headed home early. I went to a local mechanic explaining that I wanted the car checked out. I really, really need it to work. He told me to bring it in tomorrow.

When I got home, I called AB&T to gather more information. We really can't go through the school, even if it is their preference. The letter can be e-mailed to her. Further, I need to have it sent to her by the end of the week. Apparently, AB&T is having a major restructuring. Lastly, I volunteered my service for pricing the tools. I know this is a pain in the ass for her, and I wouldn't mind it. I need bids from 3 different suppliers for my list. She gave me license to pick the brand I liked, just as long as I made sure the other bids were higher than the one I really wanted. She said she had to go for the cheapest option of the 3. 

Afterwards, I wrote the complete list and the letter, and then called my new boss, Barry. I explained the situation, and he said it was great. He told me to e-mail it to our other boss, Ben (the guy who hired me). I did so, and also told Ben that my friend couldn't take the job (Ben asked). I'm waiting on them to review the list and send the letter before I do any pricing. I'm hoping the list won't make me look bad. I'm also hoping I get it before work begins without a hitch.

I'm grabbed my transcript. I'm wrote my work contact information in the private wiki. 
!! Are you addicted to social media?

I forgot I wrote about this a bit before: [[2017.05.27 -- Prompted Introspection Log]]

Define addiction and social media. 

Presumably, you mean by addiction a dependence with negative utility or some unacceptable opportunity cost. This, of course, is far more complicated than it appears. I worry you will simply slip into saying truisms or smuggling in significant normative content. 

I don't know how to define social media either. You go first. Watch me blow your line-drawing up. You are such a fucking idiot, Samwise Gamgee.

Alright, this wiki may be a kind social media, right? I'm being social with myself, and there are people who read it. It is fairly unidirectional, admittedly. It isn't a rat race with anyone but myself. My reputation is irrelevant. My social standing is almost irrelevant in this wiki. It's not the norm. I am dependent upon it though. But, I would strongly argue against it lacking utility for me. So, not an addiction, right?

I use Reddit and HN a ton. I don't really use them socially anymore though. Are they bad for me? I've definitely wasted time on them. But, I've also changed my life reading them many times over.

Thus, my answer is no. 
* [[2017.06.27 -- Link Log]]
** That was definitely clogging my browser.
* [[2017.06.27 -- h0p3's Log]]
** I'm having second thoughts. Do I go with my gut feeling?
* [[2017.06.27 -- Carpe Diem Log]]
** I'm glad we went swimming, even if it wasn't merited.
* [[2017.06.27 -- Prompted Introspection Log]]
** I hope my answers will change. I think they might. I may not have much hope for the world, but I might for us.
* [[2017.06.27 -- Diet Log]]
** McFattin's
* [[2017.06.27 -- Wiki Review Log]]
** TSM was sloppy as fuck.
* [[2017.06.27 -- Pipefitting Log]]
** I actually don't think I will be able to finish the simulator. I didn't know I wouldn't be able to work next week at the school because my teacher won't have the shop open. I am surprised. It is what it is though.
* Woke up late. Woot!
* Called the landlord. They took a while to come, but they fixed the washer leak and replaced part of the light. Unfortunately, I found the light still has a cuttlefish flutter effect occasionally. 
* I drove the car down to the mechanic. I've never tried him before. He's an odd fellow. I left it there and walked back. 
* I visited my wife at her work place. I'm afraid I annoyed her more than made her day better. =/
* We cleaned the house up a bit, and we worked on our wikis.
* I played some league and surfed.
* I worked on some characters and helped the kids with their characters.
* We watched The Hunt for Red October. The kids loved it.
* Fireman time!
* I called the guy, he said it was fine? I'm not convinced. Okay, fine.
* I walked down with the kids; it took quite a while. 
* We went to pickup k0sh3k, but we were too late. 
* We came home, hugged, and we started dinner. Breakfast for dinner!
* We watched an episode of GoT. It is starting soon. I hope we can finish the last season and a half in time.
* Afterwards, fireman time!
* Talked some with ALM. 
* League, chill, and probably some TV before bed.
** There are dozens of us! I actually found a 9k subreddit of people who fall asleep specifically to Futurama. 
Watching the last episode of Season 2 of Rick & Morty. NIN's //Hurt// came on, and it fucking hit me so hard. God damnit!
|customTable|k
|Food|Calories|h
|Apple|100|
|Pizza|500|
|Omelet|250|
|Hashbrowns|600|
|English Muffin|150|
|Brussel Sprouts|70|
|Asparagus|45|
|PB Crackers and Honey|250|
|Wine|200|
|Total|2165|f
* KYS
** https://www.theinquirer.net/inquirer/news/3012791/protonmail-welcomes-eus-google-fine-says-search-giants-practices-almost-put-it-out-of-business
** https://www.youtube.com/watch?v=8QSX9fEDllo&feature=youtu.be
** https://i.imgur.com/f4KtDlW.png
* https://news.ycombinator.com/item?id=14656945
** Lots of technical savvy, but I am always surprised at the number of people who are unable to appreciate the salient ethical problems in power dynamics. 
* https://www.raphkoster.com/2017/06/27/the-internet-as-existential-threat/
** It doesn't have to be. It has been for a long time. Start moving opensource, pushing net neutrality, teaching computer and civics literacy (and all the means to these subgoals), and I think you'll see major shifts. Of course, it won't happen. it is an existential threat.
* https://qz.com/1016900/tracy-chou-leading-silicon-valley-engineer-explains-why-every-tech-worker-needs-a-humanities-education/
** I'm always disappointed in STEM majors who don't study the humanities (and vice versa).
* https://www.currentaffairs.org/2017/06/why-not-have-a-randomly-selected-congress
** Whatever it takes to unroot the aristocracy? This wouldn't work either. 
* https://digg.com/2017/facebook-secret-censorship-rules
** Golem
* https://www.techdirt.com/articles/20170625/02053237659/copyright-office-admits-that-dmca-is-more-about-giving-hollywood-control-than-stopping-infringement.shtml
** You don't say...
* https://www.nytimes.com/2017/06/29/world/asia/hong-kong-china-handover.html
** I want to live on an island.
* https://newrepublic.com/article/143004/rise-thought-leader-how-superrich-funded-new-class-intellectual
** The amount of reason in this article is staggering.
* https://blog.ycombinator.com/thoughts-on-insurance/
** Going single-payer eliminates the need for such a large and complex infrastructure necessary for making money. I'm convinced there are models for distributing risk that capitalism can't offer us. 
** Also, screw those power dynamics. 
* https://www.nytimes.com/2017/06/24/opinion/sunday/men-dont-want-to-be-nurses-their-wives-agree.html
** We are simple creatures. 
I had told my teacher I'd be coming next Wednesday for the test. I'm basically done with the pipefitting course except for studying for this exam. I'm highlighting and studying, and that's it. 

I don't want to pressure my employers today about the tool list. I want to give them the chance to do it without me getting on them. This is a feeling out process, and I also don't want to start it off on the wrong foot. We will see. I'm anxious about the possibility that they won't respect my list, or that it will somehow reflect poorly on me. We will see. If they don't send the letter today, then I'll contact them tomorrow about it. I should call Barry first. 

Getting the car fixed up is the only thing I really must accomplish today. I'm waiting on the landlord's fixer to finish dealing with the light and dishwasher leak, then I can head over to the car shop.
!! Respond to the following quote:

<<<
Man cannot discover new oceans unless he has the courage to lose sight of the shore.
<<<

It is a part of human nature to overselect for things we know, understand, are confident in, etc. in the face of risk, uncertainty, and doubt. We are bad at math in this respect. We are not truly rational utility maximizers.<<ref "1">> This is often a flaw that the aristocracy uses to exploit the working class. It is also a flaw that we as individuals must overcome in our everyday lives as well. 

For me, this issue is wrapped up not only in overcoming the fear of the unknown, and overriding my addiction to the devil I know, but also in the willingness to be wrong, persistance, empathizing with myself, and longer-term utilitarian reasoning.<<ref "2">> I need to take more risks. I need to find the right ones, of course, but I have missed out on many opportunities because of it. Essentially, my risk management still requires tweaking.

I'm not sure how to improve upon this. I think it requires some reading and direct searching.

---

<<footnotes "1" "But, we knew that already, eh?">>

<<footnotes "2" "There are many kinds of marshmellow tests of executive functioning we must pass.">>
* [[Mugeye the Tinkerer]]
** I really did love the spirit of that show. I wish I was that cool.
* [[Tobfub the Pacifist]]
** I think this is such a hilarious character. It constantly breaks the fourth wall into OOC and does genuinely good things for the group. I like it. It's trolly, but not in a terrible way.
* [[Snowball the Myrmidon]]
** I worry this character is broken strong. It is the quintessential tank, and it scales hard.
* [[2017.06.28 -- Carpe Diem Log]]
** It was a good day. I assume I won't usually have days like these very often. That's okay. I will be productive and earning money to stabilize our happiness, to secure our futures, and to improve upon myself.
* [[2017.06.28 -- Prompted Introspection Log]]
** I should stop talking about social media.
* [[2017.06.28 -- Diet Log]]
** God damn, fatty!
* [[2017.06.28 -- Wiki Review Log]]
** I really am eating too much.
* [[2017.06.28 -- Pipefitting Log]]
** The transition is something to behold. I've come a really long way in 6 months. I'm legitimately proud of myself.
* [[Euphemism Collection]]
** They aren't exactly euphemisms. What are they?
* Today has been a great day!
* I woke up, and spanked that monkey.
* I cleaned the house. It was in good shape, so it didn't take long. The kids helped.
* I played some league and surfed some.
* When my wife came home at midday, we did a bit more cleaning. 
* We hit the library, and then we went grocery shopping.
** We found the bulk beef that's super cheap. Yay!
** I hope we have all that we need.
* I put food away and prepared tiny 1 lb packets for the meat.
* I made chili.
* More league of legends and surfing, a bit of writing too.
* L&K came first. It was great to see them. We talked. =)
* My brother came later. We immediately went straight for the school.
** Everything was shutdown, but the machinist teacher left his garage door open. We snuck in that way, and we found that the welder's shop wasn't locked. We then went through the grinding room to get into the pipefitter shop. 
** I showed my brother around. Showed him the simulator. I was glad he got to see it.
** We did some welding and had some visuals of things we had talked about before.
** I was really glad I got to show my brother the shop. It was a capstone to the class for me.
* We headed back home for chili.
* We talked and talked, and then we got ready for DND.
* We played a bit before we went to bed. It was fun. 
* I'm finishing this off right now and watching some TSM v C9.
|customTable|k
|Food|Calories|h
|Apple|100|
|Chili|1000|
|Cornbread|600|
|Lemon Ice|120|
|Beer|200|
|Total|2020|f
Remember: 10am on July 10th. That's when you need to be there.

I called today at 3. I should have called earlier, I guess. My boss, Ben, did not understand what I was asking for. He thought he just needed to approve it (and I didn't receive any word back of approval on it either, lol). I couldn't have been clearer in my explanation. I take this to be a bad sign.

He went back over the letter and called me back. He apologized for dropping the ball. He said he couldn't do it, since we was already away from the office. He was hoping he didn't need to the letterhead, else he could have done it while away. I explained the problem. His solution was to have another worker at the office do it Monday. He clearly did not understand what I had said to him. Today was the deadline. I think he might be partially illiterate. That's okay. He's taking a chance on me, and I need this to work. 

That said, even if I don't have my tools immediately, I can wait. I'll have an excuse. I'll see what I can do. He did just rubberstamp my awesome list though. Woot!
!! Why do you hate me? (Samwise Gamgee)

Alright, I've not read the LOTR series in a couple years. I used to read it every year, but I haven't lately. And, you know my memory isn't what it used to be, by a longshot. All I have left are emotional footprints of the story, a feel for it. I'd need to deep read it again to give you an explicit reason for why you don't deserve to live beyond a shadow of doubt.

You represent humanity, according to that idiot: Tolkien. That might be a good enough reason. 

I think you are annoying, difficult to empathize with, often the problem, lacking vision, and uninterested or lacking curiosity in that which matters most. I think you represent a terrible, anti-intellectual person.
* [[2017.06.29 -- Carpe Diem Log]]
** I'm enjoying the time I get to spend with my family. I know I won't get to see them nearly as much. I need to savor it!
* [[2017.06.29 -- Diet Log]]
** Uh, this feels too low. I went for it, I thought.
* [[The Hunt for Red October]]
** My children don't have the attention spans for movies that I did. I don't mean this in a "these kids...get off my lawn" sense. I'm genuinely worried for them. They do read quite a bit though. This may just be a matter of practicing. I also had a completely shitty signal-to-noise ratio growing up, and so I'm entralled and patient in ways they aren't.
* [[2017.06.29 -- Link Log]]
** The direct Digg article is a rarity. Obviously, they benefit from this article, taking FB down, etc.
* [[2017.06.29 -- Prompted Introspection Log]]
** Edited.
* [[2017.06.29 -- Wiki Review Log]]
** I've been excited to do my monthly audit this time around. I'm anticipating it. So much has happened that I need to think about the course of these transitions. Next month will have quite a bit as well.
* [[2017.06.29 -- Pipefitting Log]]
** I'm proud of myself.
* [[2017.06.29 -- Cry Log]]
** I know that feel, bro. 
* [[Khan the Liger]]
** Hehe. I don't think this character is going anywhere. I think it is an interesting seed of an idea.
* I woke up late. Fireman time. My wife didn't stay. =(
* I got a bite to eat, talked, and my brother showed up.
* We screwed around some, and then we played some DND.
* Eventually it got late enough and everyone was hungry, so we went swimming and grilled out.
** It was nice.
* We came back and played more DND. 
* Afterwards, we chilled. 
* I talked with L&K about Final Fantast 14, and my brother slept. 
* I wrote in my wiki, and I watched some league. TSM got stomped.
* We watched Lucky Number Slevin.
|customTable|k
|Food|Calories|h
|Hamburger|600|
|Brats|500|
|Asparagus|39|
|Mandarins|105|
|Pear|100|
|Watermelon Ice Treat|70|
|Chips|400|
|Pizza|600|
|Salad|250|
|Beer|100|
|Wine|100|
|Total|2864|f
!! Three things you can’t go without...

I'm definitely being thrown a softball. I have company though. That's fine.

# Computers (including the interwebs)
# My family
# Food

"""#rekt"""

Let's be clear, that list was too easy. I suppose the point is to try and dig something out of myself besides the obvious, right? 

Note, I think everything I'd ever put on this list is a drug towards Eudaimonia. 

The modality of "can't" is important here as well. I suppose I might have to give different answers. I took the most common interpretation, I believe.
* [[2017.06.30 -- Carpe Diem Log]]
** It's great to have family over. =)
* [[2017.06.30 -- Prompted Introspection Log]]
** I hate you, Samwise.
* [[Fuglee Joe]]
** My brother's character is now here. He wrote it on my wiki for our game. lol. 
** Tagged it JRE.
* [[2017.06.30 -- Diet Log]]
** Summed.
* [[2017.06.30 -- Wiki Review Log]]
** It is much harder to write the wiki with company. That said, it is getting done.
* [[Unformat Text Without Code Block on Tiddlywiki]]
** Neat trick my daughter showed me. I believe I have a cheatsheet to look at.
* [[2017.06.30 -- Pipefitting Log]]
** Edited.
* Woke up early. I tried sleeping, but I couldn't. I had to pee, and I couldn't because my wife was in the bathroom. My need to pee made it difficult to sleep.
* I whizzed and had some fireman time.
* I didn't use DCK today, but I will tomorrow. We are foregoing our standard Sunday family time since it has been busy.
* I talked with K for quite a while. We got to know each other even better, which was wonderful.
** We went over my substance use and his hangup/history (step-dad) with it. 
* My brother came, and we talked as men for several hours until the rest of the family came. 
** We talked about L's biological donor, relationships, etc. 
** Hell, we talked about a wide variety of topics. It was quite philosophical. 
* They came home, and my wife and I made the sexy times.
* After showering, I made lunch. We had deli sandwiches. It was great.
* We then chilled, talked, etc. 
* We started DND, and it was epic. 
* Afterwards, we made dinner and watched The Boondock Saints.
|customTable|k
|Food|Calories|h
|Donut|250|
|Sandwiches|1000|
|Beer|300|
|Chips|400|
|Indian Food|900|
|Brussel Sprouts|140|
|Brownies|600|
|Total|3590|f
!! What did you most enjoy doing this week?

I had an amazing time with my family. It's difficult to choose anything. If I had to, I would say taking my brother to my shop. We've talked about it for 6 months, and he finally got to see what I've been doing. It was great to bring those conversations alive. It's really great to connect on it in this way.

* [[2017.07.01 -- Carpe Diem Log]]
** Short, but sweet. The game itself was really interesting.
* [[2017.07.01 -- Prompted Introspection Log]]
** I don't know what to say. My introspection is fairly weak when I have company over. I'm spending all my time and energy with them.
* [[2017.07.01 -- Diet Log]]
** Delicious
* [[2017.07.01 -- Wiki Review Log]]
** I'm glad my wife is keeping the DND game on her wiki. It started out slowly, but towards middle and end, it was amazing.
* [[2017.06 -- h0p3's Log]]
** Not much to say.
* [[2017.06 -- Prompted Introspection Log]]
** Not much to say.
* [[2017.06 -- Diet Log]]
** I did eat more this week. I need to tone it down. Hopefully, working will make it easier to cut. I should considering doing a sunday meal prep.
* [[2017.06 -- Wiki Review Log]]
** =) I'm glad I had the chance to do this monthly audit. 
* [[2017.06 -- Pipefitting Log]]
** I had a lot to say here. I have nothing to add now. 
* Fireman time upon a late wakeup.
* I stayed in the room since L&K were still sleeping downstairs. I finished off TSM vs IMT, and I did some reading.
* I received a call/text from AB&T. The tool list is approved. Yay! (Although, I don't think they realize how much it costs...so, tentatively approved).
* I came downstairs, had a bit of breakfast, and we all talked.
* My brother eventually came, and we talked some more. 
* I think I annoyed them all talking about the humanities, yet again. I don't know what to say. I think I'm profoundly right about it.
* Everyone eventually left. As always, I'm happy to receive my guests, and eventually I'm glad to see them depart as well. 
* We immediately got to work. The kids did some cleaning, and my wife and I started working on that list.
* We went shopping for groceries and whatnot.
* We made a bit of food.
* We had our family meeting a day late. I'm glad we did it.
* I'm going to Inform the Men, per an agreement earlier today.
* I will try to finish the rest of my wiki, watch some TV, and then go to sleep. I'm ready to have both my pillows back.
* Watched Split. Fucked up.
|customTable|k
|Food|Calories|h
|Dates|200|
|Country Ham, Biscuits, and Eggs|1050|
|Brussel Sprouts|140|
|Wine|300|
|Biscuits and Honey|500|
|Total|2190|f
!! How has your health been this week?
* 1uxb0x
** Good. Normal. 
* j3d1h
** Stuffy throat. 
** Had a couple headaches.
** Lost a toothe.
** Wakes up earlier than she would have expected without intervention.
* k0sh3k
** Headache
** Chest hurts, which is rare.
* h0p3
** I feel jumpy. 
** I've not had DCK, and I've decided to wait a full two weeks before I use it again. I think it is the wisest choice. I'll manage without it (that doesn't mean I should stop using it).

---
!! What happened last week? Have you been happy this past week? Why or why not?

* 1uxb0x
** Happy because of DND, for being able to create characters.
** He felt embarrassed after dropping his hymnal at church.
** Got to play with his friends a lot this week.
** Seeing his family was wonderful.
* j3d1h
** Homework =/
** L&K + JRE coming was awesome. 
** Loved DND and character creation as well. Feels like she needs to work harder at it.
* k0sh3k
** Had fun DMing this week and developing the homebrew.
** Glad she took the day off.
** Finished the ILL manual. 
* h0p3
** Found a job!
** I have been racing to get everything set.
** I had family over, and we had a great weekend. It was amazing. I was really grateful to see everyone, and I have a good time.

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** You had a difficult time with you character not playing like you wanted it to, and took the time and energy to be a good sport about it. You quietly and privately calmed down, and you came back downstairs with a good attitude. I think it shows maturity and a willingness to grow. I'm glad you participated in the experience with us, even if it didn't go as initially planned for you.
** You made excellent characters for DND.
** You made progress toward controlling your meltdowns and negative thoughts. You quickly recovered when you did have them.
* j3d1h
** You were a good host this weekend. Several times you gave up your seat, made food, cleaned up, and provided hospitality for our guests.
** You were tempted to get pouty during the game, and you controlled yourself and reset your attitude.
** I feel like you haven't been bossy with me, for example, you asked for my help with the trash. 
* k0sh3k
** Thank you for putting in so much effort into our DND game. I really enjoyed it, and I think you made it a very special weekend for the rest of us. We will remember it for a long time to come. I want to thank you for creating this project in your wiki. It really means a lot to me on that front as well.
** You cheered me up at church. I had a meltdown, and you helped me recover from it.
** Thank you for helping me bake this weekend, giving me more time with the family.
* h0p3
** Thank you for getting the car worked on and getting everything in order before you have to go.
** Thank you for getting us the magnetic putty.
** I like how you are honest in your [[h0p3's log]]. It's a good log.

---
!! What will you do this week? Name at least one fun objective and one unfun objective.

* 1uxb0x
** Make a tool.
** Watch a lot of Game of Thrones
* j3d1h
** Find a way to sync dnsmasq.conf
** Befriend's Jojo's sister
* k0sh3k
** Solidify plans with Katherine
** Pull together some slowercooker recipes
* h0p3
** Finish acquiring my tools, study for and take my test, finalize relationship with teacher, find accommodations, reach out to union, prepare bags, etc.
** Bang my wife as much as humanly possible.
* https://www.theguardian.com/technology/2017/jun/28/notpetya-ransomware-attack-ukraine-russia
** I did not anticipate this direction. I think it is an odd move.
* KYS
** https://www.techdirt.com/articles/20170628/10062237687/as-predicted-coxs-latest-appeal-points-to-scotus-refusal-to-disconnect-sex-offenders-social-media.shtml
*** But, the terrorists and children. Yet, another red scare. I hate people.
** https://arstechnica.com/tech-policy/2017/06/appeals-court-public-defender-lacks-standing-in-dispute-over-court-software/
*** I despise willingly illiterate people.
** http://ir.net/news/politics/125737/death-threats-press-already-starting-trumps-violent-tweet/
*** I take no pleasure the "KYS" irony.
* http://www.payscale.com/career-news/2017/06/millennials-are-too-open-about-salary-history
** I'm sure they feel like they have plenty of freedom to do otherwise. They probably have plenty of leverage, experience using people, etc., right? I'm waiting for them to wake up. Let's hope it happens.
* http://fortune.com/2017/06/28/gmail-google-account-ads-privacy-concerns-home-settings-policy/
** Interesting hit piece. Why is Fortune running it? Bloombergian almost.
* Trump
** https://www.theguardian.com/us-news/2017/jun/29/donald-trump-russia-lawyer-marc-kasowitz-jared-kushner
* http://www.goldmansachs.com/our-thinking/pages/blockchain/
** Hype-train or a sign of transnational power grab/drain.
* http://www.zerohedge.com/news/2017-06-29/nyt-journalists-plan-walkout-after-being-disrespected-and-betrayed-management
** I'm not a fan of the NYT, but I'm far left of them in most respects. I'd still be very sad to see them crumble.
* https://github.com/nirvik/iWant
** CLI P2P LAN filesharing application. Neat.
* https://magenta.tensorflow.org/performance-rnn
** Redpilled postmodernism continues to destroy art, ourselves, and a drug-fueled experience machine.
* http://www.atlasobscura.com/articles/manhattan-project-library-charlotte-serber-oppenheimer-fbi
** For my wife.
* https://www.propublica.org/article/vivitrol-opiate-crisis-and-criminal-justice
** The lack of empathy for drug users is profound. Look at the science behind it. It's disturbing. That people continue to side with psychopaths in power blows my mind. I think that makes you all psychopaths. 
* https://www.indiegogo.com/projects/gemini-pda-android-linux-keyboard-mobile-device-phone#/
** Been looking at one of these for my foray back into smartphone.world. I'm not convinced this isn't vaporware. 
* http://www.motherjones.com/environment/2017/06/a-third-of-americans-are-about-to-have-their-drinking-water-deregulated-by-the-epa/
** MJ, I get it. Fine. This is a real problem. The water crisis is still coming for us all. I feel like I don't have much time. I assume my area, which already has a lead problem, is going to have this disadvantage piled on top as well. 
* https://www.cinesift.com/#/
** Nifty tool for searching for movies with high ratings.
* https://www.njhomelandsecurity.gov/analysis/anarchist-extremists-antifa?rq=antifa
** Yikes! Pay attention!
* https://www.reddit.com/r/subredditcancer/comments/6kz846/banned_from_rlatestagecapitalism_because_of/
** While LSC gets a lot right, it gets a lot wrong. I'm continually saddened by this censorship. I'm authoritarian leftist primarily for taxing the wealthy, but this is absurd. I hate to see it.
Today I received a call/text from AB&T explaining they received the letter. They need an accounting for the $200 meant for tools last semester. I never spent the money in the school account. I can't now. The money is in limbo. I actually had hope to buy pipefitter books instead with it since I was so advanced in the course that it would likely be the wisest use of the money. Secondly, I need to generate the pricing lists. That's what I've been working on today, with the generous help of my wife. We'll try and contact AB&T tomorrow, and if we can't, then the next day. 

The item list is quite expensive. If we got the entire list with decent brands, it will cost up to $2,000. Let's hope the money she set aside can be spent on it. I need it. I'm willing to front the money if I would be immediately reimbursed upon receipt. In a way, I would prefer that, since I can get it through amazon prime. If it can't be done immediately, then I can't afford to do it . I'm thinking I will be going without tools for a while until this gets sorted. I'll still do my best to handle it as quickly as I can. I hope it won't cause any trouble at work for me at my new job.

My brother has been extremely generous to me, giving me a gift of $500 for my birthday. It may be the most expensive birthday gift I've ever received, and we need it. It's an extra boost in a heavy-transition, high-risk situation. I'm so grateful. Times have been tough, and he has been a shining knight for us.

Tomorrow I'll be studying for the last exam and preparing a small gift basket for my teacher. I want to thank him and maintain that relationship.
!! Respond to the following quotes:

<<<
The visible world is the invisible organization of energy.
<<<

I must admit, this quote is so poetic sounding that we might take it to be pseudo-scientific. That isn't to say physics doesn't have elegance to it, but rather I'm cautious of unscientific people who employ the word "energy." They are usually retarded. This happens to be true enough though, particularly when we talk about visibility with the naked human eye.

I think it is a highly reductive claim. I think it's meant to inspire people. It's almost spiritual, but it need not be interpreted as such. It seems very meaningful. As long as we don't impart telos to that organization, posit an organizer, etc., then we're still in fairly neutral territory.

Setting aside conversational implicature for a moment, I take "is the" to be a strong indicator of the identity predicate in my translation. Quite a few metaphysicians would take umbrage at this reduction, even those who take themselves to be destroying metaphysics. 

This takes on a particular point of view in ontology. Does what emerges have privilege? "Visibility" just is layers of abstractions upon abstractions, objects from objects upon objects, and so on. How does one provide a reason to this privilege in order to escape the reduction?

I fear we cannot. At best, we give meaning to ourselves, and that's it. There is no meaning which escapes that sphere of our reason-giving. It lacks objectivity in a way. It seems as though we lack access to anything objectively meaning giving outside this invisibly organized energy (physics). 

The post-modern problematic of physics is not solved. The theoretical physicists and celebrity physicists are terrible at even understanding the problem itself, which is sad. 
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖//

<<<
Writing is like driving at night in the fog. You can only see as far as your headlights, but you can make the whole trip that way.

--E.L. Doctorow
<<<

Here I attempt to turn my Husserlian ray of intentionality upon itself. When I am thinking existentially in a recursive manner, I can more decisively align my many orders of Frankfurtian networks of beliefs and desires. Here I directly practice [[metaliving]] by reflecting on where and what I've been focusing on in this wiki. I need to be thinking about the state and nature of the projects I am working on from a more objective perspective. I hope this is an act of mid-term executive functioning. I do it subconsciously and indirectly to some extent, but not explicitly enough. Here I force myself to write it down at least once a month.

Essentially, I need a constantly updating review and gameplan for this wiki and my life. I must hold myself accountable and strategize. I need to consider where and how I spend my time and energy on this lifetool and wisely adjust my behaviors accordingly. I hope to have the material with which to strategize, forecast, and redirect my focus. For now, I've found my logs would be a strong foundation to work from; there is a controlled chaos in them with the feedback loops and structured necessary to progress. Thus, here I generate a list of my currently scheduled projects and foci.

!! [[Wiki: Scheduled Practices]]:

#  Conditional/Triggered:
## [[h0p3's Log]]
## [[Cry Log]]

# Weekly:
## [[Family Log]]
## [[DCK Meditation Log]]

# Daily:
## [[Pipefitting Log]]
## [[Wiki Review Log]]
## [[Diet Log]]
## [[Prompted Introspection Log]]
## [[Carpe Diem Log]]

# Optional:
## [[Link Log]]

!! Vault: 

* [[2017.04.24 -- Retired: 🢔⦗Focus⦘🢖]]
* [[2017.05.05 -- Retired: 🢔⦗Focus⦘🢖]]
* [[2017.06.05 -- Retired: 🢔⦗Focus⦘🢖]]

Lastly, I feel it necessary to point out the infinigress I approach in this log-based introspection. I'm running into classic postmodern metanarrative and autonomy problematics. As a matter of metamodern pragmatism, I will accept there must be a foundational boundary where I stop constantly investigating and deconstructing. I will leave it to my yearly audit/assessment/review to investigate the state and nature of this page in those respects and to push further into that self-reflective frontier. I feel this strikes an appropriate balance between the definitionally impossible logistics of that infinigress and having the integrity to continue my recursive, multi-ordered executive functioning.

* [[2017.06 -- Family Log]]
** This may be something I look upon more fondly long-term.
* [[Lucky Number Sleven]]
** Yay! I really love that movie so much. It is surprising how it is so rewatchable. Knowing the twist doesn't ruin it. You get to see all the breadcrumbs.
* [[2017.07.02 -- Carpe Diem Log]]
** I didn't use DCK.
* [[2017.07.02 -- Prompted Introspection Log]]
** So short. I think I actually "mailed" this one in like my wife does. ;P
* [[2017.07.02 -- Diet Log]]
** Summed.
** I don't feel bad about this one. It was a party!
* [[2017.07.02 -- Wiki Review Log]]
** I definitely felt rushed. That's okay. Our last major visits with family also made for light writing until afterwards for digestion.
* I woke up crazy late. I need to start using my alarm clock again. This past week has thrown my schedule off. I need to get back in the groove, especially before work.
* Fireman time!
* I got the kids started on schoolwork.
* I worked hard today, but I also had plenty of time to read and surf.
* I sent a letter to AB&T, and I felt some anxiety about it. 
* I studied, and I'm still going to study some more.
* We had pancake-berry tacos/wraps. They are delicious.
* I modified a script to make another useful one today. I'm wondering how far I should take this automation. I wonder if I should go just flat texts files. I've read a lot of hackers who ultimately swear by it. I can see why. 
* I've played some league, and I did some fun writing in my wiki.
* Inform the men!
* We watched John Oliver and a GoT episode today.
* My browser somehow just filled up again. It does that. =)
* The audit went by quickly. 
* I've been feeling nervous, excited, and worried about next week.
** I'm think I should do a meal prep.
** I will find a place in the next two days.
** I need to map out/write down locations of important places for my GPS.
* Our first purchase will be phones for the family.
** It is crucial that I can contact my children at will, and vice versa.
* Our second purchase will be a vehicle.
* I'm considering applying the Louisville area as well, since I could live with my brother, assuming his SO would be okay with it.
|customTable|k
|Food|Calories|h
|Pancakes and Berries|800|
|Cherries|90|
|Dates|200|
|Taco Salad|1200|
|Chili|250|
|Cereal|340|
|Total|2880|f
* https://www.nature.com/news/2011/110411/full/news.2011.227.html
** No, no, no. People are ideally rational, right?
* https://youtu.be/dbo1a5WzXX8
** Beautiful, frisson
* http://www.sixthtone.com/news/1000407/turn-off%2C-drop-out-why-young-chinese-are-abandoning-ambition
** Fascinating. The NEET, Hikikimori, whatever you want to call it movement continues.
** It has a splash of romanticism and plenty of despair.
* KYS
** http://www.businessinsider.com/national-rifle-association-ad-call-to-violence-2017-6
* https://www.vox.com/conversations/2017/6/27/15873072/google-porn-addiction-america-everybody-lies
** Didnt learn much, but it is a good reminder.
* https://www.youtube.com/watch?v=ARGczzoPASo
** Also, didn't learn much, but worthy reminder.
* https://www.theexplode.com/cia-track-linux-user/
** They watch linux reading lists too. Literate people are always targeted.
* https://fosspost.org/2017/07/04/linux-marketshare-stats-wrong/
** It is very hard to find accurate information.
* https://newrepublic.com/article/143699/medias-unacceptable-silence-republican-health-care-bill
** Are you surprised?
* Preach, yo.
** https://www.jacobinmag.com/2017/06/private-government-interview-elizabeth-anderson
** http://original.antiwar.com/jwhitehead/2017/06/26/age-no-privacy-surveillance-state-shifts-high-gear/
* https://docs.google.com/spreadsheets/d/1gIRjeB1Y_AMvtmJsZWl_dNMDJ7lPSIxiVUYyEvrP5P4/edit#gid=1458779204
** For my daughter. Programming podcasts.
* https://www.youtube.com/watch?v=MPojltjv4M0&feature=youtu.be
** He sees the outline of postmodernism, but it is clear he doesn't have empathy or understanding of its roots. I agree, postmodernism is problematic, but that doesn't mean they are wrong.
* http://www.focusing.org/apm_papers/conferencereport.html
** An interesting report of conclusions about postmodernism.
** Clearly, I am only fringe metamodern. I'm not sure I can agree to their claims. I'm not optimistic we or they will succeed, but I hope so.
* http://nautil.us/issue/49/the-absurd/ingenious-albert-camus
** It is hard to tell if Camus and I would get along. We might annoy each other a great deal, but I think we would have much to say to each other.
** Nautil.us delivers, yet again.
* https://www.theatlantic.com/politics/archive/2017/06/the-highest-form-of-disagreement/531597/
** It's true, even if The ATL can't live up to it either.
* http://www.newyorker.com/magazine/2017/07/10/americas-future-is-texas
** An instructive narrative.
** I barely have the attention span anymore for this, I hate to say. 
* http://nymag.com/scienceofus/2017/06/how-napping-subway-commuters-know-when-theyre-at-their-stop.html
** Freaky kind-of.
* http://programmingisterrible.com/post/162346490883/how-do-you-cut-a-monolith-in-half
** I love how philosophical programming can be, even if only via instrumental reasoning.
* https://www.theatlantic.com/entertainment/archive/2017/06/the-perils-of-meritocracy/532215/
** Meritocracy requires defining merit. It is almost a truism if you are broad enough in your understanding of merit.
* https://www.youtube.com/watch?v=nlM8Ak2KuYI&feature=youtu.be
** The national educational loan shark industry is no accident.
* http://www.news.com.au/finance/business/weve-raised-generation-hopeless-millennials-who-lack-basic-life-and-workplace-skills-and-its-a-big-issue/news-story/f3256c05c19c356002103eb50e50cee1
** Millenial hit piece. While they raise some good points, there is a bedrock of terrible assumptions here. Also, I think there is a clear agenda.
* https://www.theguardian.com/global-development/2017/jul/02/fight-for-my-daughter-battle-against-backpage-child-sex-trafficking
** You want to stop child prostitution? It's time to legalize, regulate, protect, and tax adult prostitution. 
It took two days to finish it, but I found bids for all the tools. This was harder than I thought. I was supposed to find all the tools from a single retailer for each bid list. After much searching, I found I couldn't. Only Amazon was capable of it. Thus, I had to combined retailers. I don't know if Johanna will find this acceptable or not. It took a while, and it will cost $1900 minimum for the tools. I didn't pickup the most expensive tools, but I did pickup quality tools. I want them to last for at least a few years minimum. I did pickup some tools which make the job easier, more precise, and make it go faster. /fingers-crossed, I hope AB&T will pick them up for me. This is beyond their usual. I'll call tomorrow to find out. What I don't want to see is Johanna badgering my employer in any respect about the list. We will see. 

I studied for the exam as well. I hope tomorrow will be the last day I go to school for a long time. I'm betting I'll have to stop by at least a couple more times to sort things out. Again, we will see. I don't feel prepared for the exam. I'm going to continue studying.

Brownies and alcohol for my teacher.
!! Cats or dogs. What kind of person are you, and why?

I'm not much of an animal person in general. I do like my cats though. I've had pets of different kinds. Cats fit me the best, although aquatic creatures have their own beautiful world that fascinates me.

Obviously, cats are more independent than dogs. They can take care of themselves in some important ways, and I like their personalities often enough. I find the logistics far more to my liking.

I like petting cats more. We stay around each other when we want, and otherwise we leave each other alone. I find it much easier to empathize with a cat.

I've met some excellent dogs in my life (Golden Retrievers have been among the best dogs I've ever had the pleasure of meeting), but the vast majority are not very good creatures, imho. That, I assume, is largely due to the kinds of people who own dogs and the conditioning they give to their pets. I legitimately think that dog-owners tend to be, on average, less ethical, intelligent, and wise than the cat-owners I know. There are, of course, exceptions. Again, I'm talking about the //average// here.

If someone loves dogs, it is a strong indicator to me that I will not like them. It's a red flag. That might sound silly or ridiculous at first. It is a pattern I have noticed though. Dog-owners strongly tend to need their pet to love them, they are devoted to the pack mentality, and they conform to social conventions without appropriate introspection, pause, or critical reasoning. I consider their way of thinking dangerous. 

I think dog-owners tend to be "crazy" pet owners far more often than "cat" owners as well. 

As shocking as it may sound, the moral fabric of our lives are detailed. Even small choices, desires, and beliefs matter. They define who we are, what we think, and what we do. Being an X-person is still constitute of who you are. It is quite likely (overwhelmingly, in my view) this a moral issue. I'm betting you disagree, Samwise. That's because you are a retarded dog-lover, aren't you? Good boy. Go fetch the stick, idiot.

 
* [[2017.07.03 -- Link Log]]
** I'm still not sure why someone would build shitty ransomware. It's bad for the "effective" bad guys though, as it may lower the bar of trust. 
* [[2017.07.03 -- Retired: 🢔⦗Focus⦘🢖]]
** I've noticed that I've been shuffling logs around still. Some seem worth it, and some don't. That's the natural way of things.
* [[2017.06 -- Link Log]]
** I think I should just automate the process of going through my links. Make a python script which converts the bookmarks to something palatable. Perhaps my daughter can write the script.
* [[2017.06 -- Carpe Diem Log]]
** I think the Carpe Diem log is interesting. I'm not quite seeing how useful it is just yet. I'm glad I'm doing it though.
* [[2017.06 -- DCK Meditation]]
** This coming month won't have much in this log. I can't use.
* [[2017.07.03 -- Carpe Diem Log]]
** They are getting shorter.
* [[2017.07.03 -- Family Log]]
** My children are still learning how to compliment.
* [[2017.07.03 -- Prompted Introspection Log]]
** I want to do more art interpretation.
* [[2017.07.03 -- Diet Log]]
** My goal is to have fewer average calories than this last month.
* [[2017.07.03 -- Wiki Review Log]]
** Edited.
* [[2017.07.03 -- Pipefitting Log]]
** I'm extremely grateful to my brother. He has offered to help us with money if we needed it. And, I haven't taken him up on it. I didn't want to unless it was absolutely necessary. He decided to just give us money anyways. I hope I can find a way repay him back.
* [[AB&T Buylist]]
** I'm so excited by even the possibility of owning any of these tools.
* I woke up early, and I was really tired.
* I got the kids up and started.
** Although, my son ended up not doing his work. I'm not sure it mattered for him, but it did for my daughter.
* I did a lot of good thinking while walking at the school today. I also studied more.
* I tried to reach out to the union again. I'm glad I'm not relying upon them at this point. I hope I eventually can though.
* I spoke with Johanna at AB&T, and I realize I can't rely upon them at this point. That's okay; I'll find another way, right?
* I came home early, and I had a delicious brownie with my chilluns. =)
* My brother AIR called me back. It was truly wonderful to hear back from him. We talked at length. He tried the DCK, and it was clearly helpful to him. I'm trying to get him to start writing in his wiki as well. I think that will be very useful to him as well.
* I e-mailed my brother JRE back. I found a strong build for him. The SSD went off sale, unfortunately, hours later. Eh, it's okay.
* I spoke to my teacher.
* I studied some.
* I played some league.
* Fireman time!
* I spent quite a bit of time getting dinner prepared. We had ribs, homemade fries with paprika, and brussel sprouts. 
* I found a roommate/housing, and solidified it. Yay!
* I picked my wife up.
* Dinner and watching EU vs NA League. Awesome!
* I'm going to write, study, watch league, maybe play a game, and fall asleep to Futurama again.
|customTable|k
|Food|Calories|h
|Brownies|500|
|Wrap|300|
|Apples|200|
|Pear|100|
|Ribs|1250|
|Brussel Sprouts|70|
|Fries|500|
|Mandarins|70|
|Total||f
* https://www.nytimes.com/2017/07/01/technology/yelp-google-european-union-antitrust.html
** Fascinating. Search, like libraries, are a public good that the public must own.
* https://www.wired.com/story/a-math-genius-blooms-late-and-conquers-his-field
** Sounds like hardwork and a fuckton of luck. 
* https://www.bloomberg.com/view/articles/2017-07-03/baby-boomers-will-live-long-but-might-not-prosper
** My empathy wanes.
* https://www.washingtonpost.com/local/education/chicago-wont-allow-high-school-students-to-graduate-without-a-plan-for-the-future/2017/07/03/ac197222-5111-11e7-91eb-9611861a988f_story.html?utm_term=.74d4bb6ef948&wpisrc=nl_rainbow&wpmm=1
** I'm not sure how I feel about this. I will watch it anyways.
* https://medium.com/insurge-intelligence/exclusive-documents-expose-direct-us-military-intelligence-influence-on-1-800-movies-and-tv-shows-36433107c307
** It is known.
* https://medium.com/@caityjohnstone/corporate-media-are-not-the-press-and-they-dont-deserve-your-sympathy-dccbab51e14d
** Not entirely correct, but it has its merits.
* https://www.reddit.com/r/worldnews/comments/6l6lwv/brexit_vote_leave_campaign_chief_who_created_350m/djro03a/
** Hilarious run-down
* https://www.franzoni.eu/stopping-the-internet-of-noise/
** Hear, hear! This is on the right track.
* https://www.extremetech.com/computing/248069-unofficial-patch-unblocks-windows-7-8-1-updates-kaby-lake-ryzen
** Sad that it comes to this. What a terrible force.
* KYS 
** https://i.redd.it/pgfczhfzmr7z.jpg
* https://www.reddit.com/r/explainlikeimfive/comments/6leunc/eli5_how_do_rich_people_use_donations_as_tax/
** Yup.
* http://www.reuters.com/article/us-china-internet-content-idUSKBN19O21X
** Not that we are much better.
* https://www.reddit.com/r/subredditcancer/comments/6lbe9e/suprareddit_cancer_cnn_doxxes_and_blackmails_rthe/
** Jesus. It's breathtaking.
* http://anildash.com/2012/12/the-web-we-lost.html
** Exactly! The lack of literacy and historical knowledge have (or helped) decontextualized, hypernormalized, hypnotized, and enslaved the world.
*** His solutions aren't inspiring.
**** http://anildash.com/2012/12/rebuilding-the-web-we-lost.html
My teacher didn't show up. I waited for over and hour, and he didn't come. I studied the chapter more. I actually don't mind. I really need to continue studying this chapter. It has so much information in it, I don't feel confident enough on it.

On the way back home, I stopped by the union center, but Randy wasn't there, as usual. Bad sign, I take it.

I also called Johanna at AB&T. She picked up this time (easier to reach her in the morning). She thanked me for the list, and she said she already submitted for the money. She was instantly denied. Apparently, the massive organizational restructuring also means none of her clients (participants, she calls them) can receive any funds, even though these funds were previously allocated. Johanna sounded desperate and extremely unhappy. She told me she is considering leaving her job. I asked her if she thought it was unlikely I would get my tools. She didn't say anything directly to it, but she said she would know more definitively next week. She appealed the denial, and she hopes to win it. This isn't the first time she has appealed on my behalf. I hope she wins, but I'm pretty convinced she won't at this point.

My teacher called later in the day. He apologized. He said I could take it tomorrow, so I will. He also asked about the tool situation. I explained it. He told me I absolutely must bring some tools to the job, so I will. They might be shitty tools, and I might not have enough or the right ones, but I'll do what I can. What else am I going to do?

I found a $400 room close to my workplace. I called the fellow up. I'm socially awkward, and the phone call went pretty meh. He's calling me back later. I think there is a reasonable chance I'll have it ready for Sunday. My wife's friend's neighbor may be calling me today as well about a room.

I continued studying.
!! Are you afraid of heights?

Yes.

I do not like the thought of falling at all. I've never liked heights. Fear grips me as I grip the rails. Interestingly, I don't feel bad with a harness on in my experience. I feel far more comfortable in that position, at least as experience goes.

I need to empathize with myself wisely (and turn off my feelings if I can when I must). I'm going to be working at heights very often. I should take steps necessary to do it safely, and I think the use of PPE will make me feel a lot better. I've not felt bad going up on ladders so far, but I've not gone up absurdly high.

I have to remember that I do have a good sense of balance (which is surprising for an autist). I can do it!
* [[2017.07.04 -- Carpe Diem Log]]
** I need to make a checklist....Done!
* [[2017.07.04 -- Prompted Introspection Log]]
** It sounds like a folklore psychology question. Heuristics, the soft end of science, and intuition still matter though.
* [[2017.07.04 -- Diet Log]]
** Summed.
* [[2017.07.04 -- Wiki Review Log]]
** It looks like my brother's gift is going to buy tools and rent. I'm really thankful to him. 
* [[2017.07.04 -- Pipefitting Log]]
** I'm actually proud of how much work I accomplish when I'm not directly "on the job." I hope to continue taking this kind of initiative.
* [[ARAM: Janna]]
** I remade her item build. Items have been changing, and my choices as well.
* [[ARAM: Morgana]]
** I adore her so much. I tend to very well on her.
* [[Wiki Script: Tox-2-Wiki Text Formatter for Link Log]]
** Anything which makes my life simpler is nice. It isn't just the time, it's the emotional energy.
* [[Wiki Scripts]]
** I decided I might write more, and it is time to start collecting them.
* [[2017.07.04 -- Link Log]]
** That is a backlog of links.
!! Amazon

* 1 Torpedo Level -- https://www.amazon.com/Klein-Tools-935RB-Torpedo-Billet/dp/B01MF9N8FE/ -- $28.47
* 1 24" Heavy Duty Level -- https://www.amazon.com/Empire-E80-24True-24-Inch-Heavy-Level/dp/B0006FRAKC/ -- $29.61
* 2 Combo Square -- https://www.amazon.com/dp/B005XUHIUM/ -- $12.74 x 2 = $25.48
* 1 24" Framing Square -- https://www.amazon.com/Tools-Framing-Hi-Contrast-Aluminum-1794447/dp/B005XUHH5S -- $20.39
* 1 10" Pipe Wrench -- https://www.amazon.com/31090-Aluminum-Straight-10-inch-Plumbing/dp/B0000224JD/ -- $33.04
* 1 14" Pipe Wrench -- https://www.amazon.com/31095-Aluminum-Straight-14-inch-Plumbing/dp/B0000224JE/ -- $44.53
* 1 18" Pipe Wrench -- https://www.amazon.com/31100-Aluminum-Straight-18-inch-Plumbing/dp/B0000224JF/ -- $56.37
* 1 Screw Driver Set -- https://www.amazon.com/Craftsman-9-31794-Slotted-Phillips-Screwdriver/dp/B007C6LHXY/ -- $29.97
* 1 Line Up Bar -- https://www.amazon.com/Urrea-21003-14-Inch-Straight-Alignment/dp/B0019CHBFK/ -- $39.99
* 1 2-Hole Pin -- https://www.amazon.com/Flange-Wizard-42050-TM-Hole-Pins/dp/B00KRIS4XK/ -- $56.95
* 1 24 oz. Ball Pein Hammer -- https://www.amazon.com/32414-Wilton-Hammer-SAFETY-Securing/dp/B0079GQXSG/ -- $36.99
* 1 Wrap Around 3"-6" -- https://www.amazon.com/Flange-Wizard-WW-17-Resistant-Medium/dp/B00VJ3FVUG/ -- $18.45
* 1 Center Punch -- https://www.amazon.com/Starrett-264E-Tapered-Diameter-Thickness/dp/B0006J4K88/ -- $10.72
* 1 1/2" x 6" Cold Chisel -- https://www.amazon.com/Mayhew-Select-12405-12-Inch-Handguarded/dp/B001AARLPG/ -- $15.40
* 1 Hacksaw -- https://www.amazon.com/Klein-Tools-702-12-Hacksaw-Reciprocating/dp/B0037NBSEY/ -- $25.99
* 1 Wrench set -- https://www.amazon.com/TEKTON-Combination-Wrench-Roll-up-Storage/dp/B0199R9QR2/ -- $49.99
* 1 12" Adjustable Wrench -- https://www.amazon.com/Crescent-AT212VS-Finish-Adjustable-Wrench/dp/B007C6PVFE/ -- $22.99
* 1 10" Adjustable Wrench -- https://www.amazon.com/Crescent-AT210VS-Finish-Adjustable-Wrench/dp/B007C6QZYK/ -- $20.92
* 1 1/2" Drive Socket Set -- https://www.amazon.com/Crescent-CSWS10-3-8-Inch-Drive-Socket-Wrench-Set-52-Piece/dp/B00EFL1M1G/ -- $52.70
* 1 125' Chalk Box -- https://www.amazon.com/Tajima-CR301JF-Chalk-Rite-Free-Chalk/dp/B001TH8DIO/ -- $15.98
* 1 6' Folding Wood Rule -- https://www.amazon.com/Klein-Tools-910-6-Fiberglass-Reading/dp/B00093E03Q/ -- $20.05
* 1 Long Arm Hex Key Set -- https://www.amazon.com/Bondhus-77037-Stubby-L-Wrench-BriteGuard/dp/B01F6PWYWU/ -- $21.21
* 1 Side Cutter Pliers -- https://www.amazon.com/Channellock-338-8-Inch-Diagonal-Cutting/dp/B00004SBDD/ -- $17.97
* 1 Channel Lock Pliers -- https://www.amazon.com/Channellock-430-2-Inch-Capacity-10-Inch/dp/B00002N5JF/ -- $13.47
* 1 Pipe Pliers -- https://www.amazon.com/Strong-Tools-PG114V-Pliers-11-Inch/dp/B003OU85IW/ -- $29.99
* 1 Plumb Bob -- https://www.amazon.com/Tajima-PZB-400G-Plumb-Rite-Elastomer-wrapped-14-Ounce/dp/B000OHHEAI/ -- $39.00 
* 1 Centering head -- https://www.amazon.com/Jackson-Safety-14776-Curv-O-Mark-Centering/dp/B004XNZM0I/ -- $112.68
* 1 Fitting Grip -- https://www.amazon.com/Original-Welders-3rd-Hand-Welding/dp/B00KHB006Q/ -- $124.99
* 1 1-2" Fitting Clamp -- https://www.amazon.com/Sumner-Manufacturing-781130-Ultra-Clamp/dp/B002M805GW/ -- $118.41
* 1 2-6" Fitting Clamp -- https://www.amazon.com/Sumner-Manufacturing-781520-Ultra-Stainless/dp/B00G3JOVBQ/ -- $179.39
* 1 5-12" Fitting Clamp -- https://www.amazon.com/Sumner-Manufacturing-781170-Ultra-Stainless/dp/B001SFJPNO/ -- $258.26
* 1 Radius Marker -- https://www.amazon.com/Jackson-Safety-14782-Curv-O-Mark-Standard/dp/B002FCIB1G/ -- $39.07
* 1 Gangbox -- https://www.amazon.com/International-JSB-3220BK-32-Inch-Site-Black/dp/B00DJQI1EO/ -- $299.99

Total w/Gangbox: $1909.41

Total w/o Gangbox: $1620.90

Free Shipping through Prime.

---

!! Wal-Mart + Gas and Supply + Northern Tool

* 1 Torpedo Level -- https://www.walmart.com/ip/9-Magnetic-Billet-Torpedo-Level-4-Vial-Precision-Machined-Solid-Bille/693058764 -- $44.27
* 1 24" Heavy Duty Level -- https://www.walmart.com/ip/Empire-EM81-24-True-Blue-24-in-Magnetic-Torpedo-Level/338441043 -- $37.62
* 2 Combo Square -- https://www.walmart.com/ip/12-Combination-Square-With-Level-Adjustable-Ruler-Rule/130524549 -- 37.88 x 2 = $75.76
* 1 24" Framing Square -- https://www.walmart.com/ip/Johnson-Level-282-CS9-16-x-24-inch-Professional-Easyread-Steel-Framing-Square/164472368 -- $37.28
* 1 10" Pipe Wrench -- https://www.walmart.com/ip/Ridgid-810-Aluminum-Straight-Pipe-Wrench-10-Tool-Length-1-1-2-Jaw-Capacity/21188943 -- $36.46
* 1 14" Pipe Wrench -- https://www.walmart.com/ip/Ridgid-814-Aluminum-Straight-Pipe-Wrench-14-Tool-Length-2-Jaw-Capacity/21188947 -- $44.53
* 1 18" Pipe Wrench -- https://www.walmart.com/ip/Ridgid-818-Aluminum-Straight-Pipe-Wrench-18-Tool-Length-2-1-2-Jaw-Capacity/21188938 -- $57.25
* 1 Screw Driver Set -- https://www.walmart.com/ip/Klein-Tools-8-Piece-Cushion-Grip-Screwdriver-Set-Cabinet-Keystone-Phillips/21188929 -- $60.73 
* 1 Line Up Bar -- https://www.walmart.com/ip/Mayhew-40023-42-Line-Up-Pry-Bar/41207173 -- $67.58
* 1 2-Hole Pin -- https://www.gasandsupply.com/i/Mathey-Dearman-Stainless-Steel-2-Hole-05-0100-000-_MAT05.0100.000 -- $68.37
* 1 24 oz. Ball Pein Hammer -- https://www.walmart.com/ip/Wilton-HVB-2414-24-Ounce-Ball-Pein-UNBREAKABLE-Sledge-Hammer-with-14-inch-Handle-20030/15160153 -- $40.41
* 1 Wrap Around 3"-6" -- https://www.walmart.com/ip/Wizard-Wrap-Medium-2-to-16-Pipe-Sold-as-1-Each/146753712 -- $19.35
* 1 Center Punch -- https://www.walmart.com/ip/Mayhew-Tools-Mayhew-Tools-Hard-Cap-Center-Punches-1-4X7-Center-Punch-479-66414-1-4x7-center-punch/21368546 -- $55.22
* 1 1/2" x 6" Cold Chisel -- https://www.walmart.com/ip/Mayhew-Tools-MAY-31972-1972-Cold-Chisel-6/49957390 -- $25.99
* 1 Hacksaw -- https://www.walmart.com/ip/Lenox-Hacksaw-4012/37906594 -- $46.10
* 1 Wrench set -- https://www.walmart.com/ip/KTI-Wrench-Set-Combination-13-Piece-Sae/54461631 -- $62.11
* 1 12" Adjustable Wrench -- https://www.walmart.com/ip/Channellock-Inc-812W-12-Inch-Adjustable-Wrench-Each/21928073 -- $31.85
* 1 10" Adjustable Wrench -- https://www.walmart.com/ip/Channellock-Inc-810-Watt-10-Inch-Adjustable-Wrench-Each/21910011 -- $22.37
* 1 1/2" Drive Socket Set --https://www.walmart.com/ip/52-Piece-3-8-in-Drive-Standard-Deep-Socket-Sets-6-Point-12-Point-Sold-As-1-Set/179422709 -- $71.43
* 1 125' Chalk Box -- https://www.walmart.com/ip/Keson-GIANT-CHALK-LINE-REELS-150-feet/174230943 -- $30.50
* 1 6' Folding Wood Rule -- https://www.walmart.com/ip/Klein-Tools-Folding-Wood-Rules-86300-6-wood-rule/17207515 -- $26.36
* 1 Long Arm Hex Key Set -- https://www.walmart.com/ip/KD-Tools-Long-Arm-Hex-Key-13Pc-Set-W-Caddy/21935387 -- $45.09
* 1 Side Cutter Pliers -- https://www.walmart.com/ip/NE-Type-Side-Cutter-Pliers-9-1-4-in-Length-23-32-in-Cut-Plastic-Dipped-Handle-Sold-As-1-Each/182937750 -- $47.34
* 1 Channel Lock Pliers -- https://www.walmart.com/ip/Channellock-10-Tongue-and-Groove-Pliers/22098091 -- $13.91
* 1 Pipe Pliers -- https://www.northerntool.com/shop/tools/product_200342933_200342933 -- $24.99
* 1 Plumb Bob -- https://www.walmart.com/ip/TAJIMA-TOOL-PZB-400-Plumb-Rite-Magnetic-Plumb-Bob-MAGNETIC-PLUMB-BOB/38753444 -- $30.95
* 1 Centering head -- https://www.walmart.com/ip/Contour-Model-7-Jumbo-Curv-O-Mark-Centering-Head/15720717 -- $104.93
* 1 Fitting Grip -- https://www.gasandsupply.com/i/WELDERS-HAND-PIPE-CLAMP-FITS-1-3RD-_WELD3RD -- $114.23
* 1 1-2" Fitting Clamp -- https://www.walmart.com/ip/SUMNER-781510-Pipe-Clamp/48100307 -- $138.86
* 1 2-6" Fitting Clamp -- https://www.walmart.com/ip/SUMNER-781520-Pipe-Clamp-Ultra-Clamp-G6156376/40728614 -- $179.39
* 1 5-12" Fitting Clamp -- https://www.walmart.com/ip/SUMNER-781530-Pipe-Clamp-Ultra-Clamp-G6173422/40751994 -- $322.54
* 1 Radius Marker -- https://www.walmart.com/ip/RADIUS-MARKER/51940429 -- $37.99 
* 1 Gangbox -- https://www.walmart.com/ip/Lund-Int-l-tradesman-Truck-708048-Black-Job-Site-Toolbox/39523458 -- $432.74

Total w/Gangbox: $2454.50

Total w/o Gangbox: $2021.76

Shipping cost for most items will probably be free. 

---

!! Pipefitter.com + Home Depot

* 1 Torpedo Level -- http://pipefitter.com/store/pocket-pro-level.html -- $58.29
* 1 24" Heavy Duty Level -- http://www.homedepot.com/p/Empire-24-in-UltraView-LED-Magnetic-Box-Level-EM95-24/207024874 -- $54.97
* 2 Combo Square -- http://pipefitter.com/store/mul-t-square.html -- $95.99
* 1 24" Framing Square -- http://pipefitter.com/store/pipefitters-square.html -- $119.89 
* 1 10" Pipe Wrench -- http://www.homedepot.com/p/URREA-10-in-Long-Aluminum-Pipe-Wrench-810A/202797944 -- $43.51
* 1 14" Pipe Wrench -- http://www.homedepot.com/p/14-in-Aluminum-Pipe-Wrench-31095/100046894 -- $46.98
* 1 18" Pipe Wrench -- http://www.homedepot.com/p/RIDGID-18-in-Aluminum-Pipe-Wrench-31100/100069585 -- $59.98
* 1 Screw Driver Set -- http://www.homedepot.com/p/Husky-Screwdriver-Set-25-Piece-20210006/204465117 -- $29.97
* 1 Line Up Bar -- http://www.homedepot.com/p/Mayhew-Line-up-Pry-Bar-Set-3-Piece-61306/203761865 -- $46.39
* 1 2-Hole Pin -- http://pipefitter.com/store/product.php?productid=17990&cat=254&page=1 -- $94.50
* 1 24 oz. Ball Pein Hammer -- http://www.homedepot.com/p/Nupla-24-oz-Fiberglass-Handle-Ball-Pein-Hammer-21024/202957173 -- $26.73
* 1 Wrap Around 3"-6" -- http://pipefitter.com/store/big-inch-7-x-240.html -- $48.95
* 1 Center Punch -- http://www.homedepot.com/p/Klein-Tools-5-in-x-3-8-in-Center-Punch-66312/206377457 -- $7.83
* 1 1/2" x 6" Cold Chisel -- http://www.homedepot.com/p/Mayhew-Cold-Chisel-Set-3-Piece-89062/100154880 -- $11.97
* 1 Hacksaw -- http://www.homedepot.com/p/Klein-Tools-12-in-High-Tension-Hacksaw-702-12/202282842 -- $26.63
* 1 Wrench set -- http://www.homedepot.com/p/TEKTON-1-4-1-in-Ratcheting-Combination-Wrench-Set-with-Pouch-13-Piece-WRN53091/207208237 -- $99.99
* 1 12" Adjustable Wrench -- http://www.homedepot.com/p/Crescent-12-in-Adjustable-Wrench-AC212VS/203161636 -- $19.97
* 1 10" Adjustable Wrench -- http://www.homedepot.com/p/Crescent-10-in-Adjustable-Wrench-AC210VS/203161607 -- $14.97
* 1 1/2" Drive Socket Set -- http://www.homedepot.com/p/GearWrench-1-2-in-Drive-Metric-Socket-Set-28-Piece-80709/202739071 -- $78.81
* 1 125' Chalk Box -- http://www.homedepot.com/p/Milwaukee-100-ft-Precision-Line-Chalk-Reel-Kit-with-Blue-Chalk-48-22-3992/207005250 -- $15.36
* 1 6' Folding Wood Rule -- http://pipefitter.com/store/lufkin-flat-read-wood-folding-rule.html -- $16.25
* 1 Long Arm Hex Key Set -- http://www.homedepot.com/p/Capri-Tools-S2-Steel-SAE-Long-Arm-Ballpoint-End-Hex-Key-Wrench-Set-9-Piece-1-3020/301383752 -- $16.99
* 1 Side Cutter Pliers -- http://www.homedepot.com/p/Klein-Tools-High-Leverage-Side-Cutters-with-Ring-D213-9NETT/300496506 -- $45.57
* 1 Channel Lock Pliers -- http://www.homedepot.com/p/Channellock-10-in-Tongue-and-Groove-Plier-430/100056995 -- $14.97
* 1 Pipe Pliers -- http://pipefitter.com/store/pipe-pliers.html -- $21.63
* 1 Plumb Bob -- http://www.homedepot.com/p/General-Tools-32-oz-Brass-Plumb-Bob-800-32/202545183 --$46.09
* 1 Centering head -- http://pipefitter.com/store/digital-centering-head.html -- $149.85
* 1 Fitting Grip -- http://pipefitter.com/store/fitter-grips-tool.html -- $54.95
* 1 1-2" Fitting Clamp -- http://pipefitter.com/store/quik-fit-clamp-1-2.html -- 	$156.27
* 1 2-6" Fitting Clamp -- http://pipefitter.com/store/quik-fit-clamp-2-6.html -- $185.23
* 1 5-12" Fitting Clamp -- http://pipefitter.com/store/quik-fit-clamp-5-12.html -- $330.65
* 1 Radius Marker -- http://pipefitter.com/store/radius-marker-jumbo.html -- $52.50
* 1 Gangbox -- http://www.homedepot.com/p/DEWALT-48-in-Heavy-Duty-Job-Site-Box-DXJB4824/206442793 -- $399.99

Total w/Gangbox: $2492.62

Total w/o Gangbox: $2092.63

Unknown shipping cost. We'd definitely be paying for some shipping.


----

!! The Essential List:

* 1 Torpedo Level
* 1 24" Heavy Duty Level
* 2 Combo Square
* 1 24" Framing Square
* 1 10" Pipe Wrench
* 1 14" Pipe Wrench
* 1 18" Pipe Wrench
* 1 Screw Driver Set
* 1 Line Up Bar
* 1 2-Hole Pin
* 1 24 oz. Ball Pein Hammer
* 1 Wrap Around 3"-6"
* 1 Center Punch
* 1 1/2" x 6" Cold Chisel
* 1 Hacksaw
* 1 Wrench set
* 1 12" Adjustable Wrench
* 1 10" Adjustable Wrench
* 1 1/2" Drive Socket Set
* 1 125' Chalk Box
* 1 6' Folding Wood Rule
* 1 Long Arm Hex Key Set
* 1 Side Cutter Pliers
* 1 Channel Lock Pliers
* 1 Pipe Pliers
* 2 Plumb Bob
* 1 Centering head 
* 1 Fitting Grip
* 1 1-2" Fitting Clamp 
* 1 2-6" Fitting Clamp
* 1 5-12" Fitting Clamp
* 1 Radius Marker
* 1 Gangbox



How are you going to read this? 

I don't know. 

I hope you will read it through many times. I hope you will inspect it from every angle. I hope you will carefully weigh my words. I have faith that you will.

Please take me literally in your reading. I'm convinced I mean exactly what I say in this document. This document has been carefully planned.<<ref 1>> This is the best explanation of my thoughts that I can give. It's the best way I know how to say it.

This journaled wiki-letter is odd.<<ref 2>> I feel like I need to apologize upfront about its oddness. It is often the case that I don't know what I need to say to people or how to say it. I hope you do not take me to be condescendingly preaching to you, snowing you, or acting like you don't know what I'm talking about. You may already know most everything in this letter. I know you are brilliant people. I hope you are not offended by it. Admittedly, I don't know how you are going to respond to this letter, and I take that to be a strong sign that I have a poor [[theory of your minds|Theory of Mind]] in some crucial respects. It is a result of being [[autistic|My Autism]].

Again, this letter is odd, and communicating this way is just awkward. To some eyes, it may even be cringe-inducing. I'm sorry for that oddness and awkwardness. It is the result of quirky (to put it generously) communication and social ineptitudes and underdevelopments in me. In tragic ways: I don't know how to talk to people. It is a deficit that I'm trying to make up for, and unfortunately for us, this is the only way I know how. 

I realize that formality in a letter seems weird and impersonal. I mean zero offense by writing you a formal letter (quite the opposite in fact); if it offends you, then I am sincerely sorry. This is me taking our relationship seriously. I am giving you what I consider to be my best form of communication (that doesn't make it good), where //I literally say what I think as carefully as I can//. I am prone to very poorly express what I think or mean otherwise. 

It must be said that writing often lacks the innate emotional and guttural aspects of speaking in-person (it fails to activate particular faster-acting parts of our brain in the right way). Writing also lacks body language, auditory cues, vulnerability, and even some feeling of authenticity that in-person conversations seem to have. Writing comes off as passive-aggressive and feeling too controlled. And yet, writing is sometimes the most effective, useful, and likely to succeed communication option in many contexts. This may be one.

Reading and writing give us a chance to dwell on the particularly vexxing aspects of the intellectual objects at hand. It enables us to evaluate in an emotionally-detached way, which is sometimes necessary. It gives us the time and safety we need to create hypothetical spheres in our minds to test and prod a theory or concept. It aids in our analysis and bias removal. It gives us the chance to think without having to come up with a response on-the-spot as we must in-person. Reading and writing allow us to be reflective in a necessary way.

Revisions of this letter caused me to formalize it (and move to the wiki). Over the years, I have found formal writing to be my clearest mode of communication (that doesn’t make it clear though) because it gives me the chance to piece together, structure, translate, and nest fragments of emotional and complex thoughts lost in my intuitions.<<ref "3">> I get to ask myself: “Is that saying what I really mean?” 

Tools like wiki-pages, parentheses, and footnotes provide the side-conversations, contexts, and worthy tangents I need to expose in order to express myself. Sometimes, when I say a word, I unknowingly have a lot of specialized meaning packed into it, and the wiki-format helps me see what I need to unpack. Formality allows me to control my emotions, to clarify myself, and to have a better chance of conveying the bare kernel of what I really think. Writing this wiki-letter is the best space for me to draw out my reflections for you.

Ultimately, I am not an innately skilled communicator (this isn't to be uselessly self-deprecating). It is just obvious to me. I know what it feels like to be naturally talented at something, and communicating isn't that for me. In my eyes, there is a huge gap between what I understand/experience/feel/cognize and what I'm able to convey to others. That gap is there for everyone, but I think the proportionality of the gap is simply larger in my case than it is for most folks.<<ref "4">> In my eyes, there are certain kinds of people who can say what they mean, who can explain everything they know, who express themselves in a way that suits others in a fitting way, who don't have a major gap between their innerlife and their outerlife (which includes what they can effectively communicate to others). I wish I could do what they do.

For starters, I sometimes lack the social programming necessary for gutterally-manipulative rhetorical skills used to reach the hearts of people.<<ref "5">> I also have a difficult time connecting the dots (and knowing which dots I need to connect for others), explaining my train of thought (while following a set of social conventions which seem foreign to me), and essentially, providing a detailed and well-organized piece of writing which transmits the representation of my thoughts into the minds of others. Whatever skill I have is not innate and programmed in me, but the result of hard work (I don't have the opportunity to rely upon a fully-functiong faster-acting part of my mind right here). No matter how much I practice it, I will significantly fail to convey the web of my real thoughts.<<ref "6">> I think this is the result of [[autism|Autism]].

I’ve found myself unable to appropriately transmit my thoughts to you. I rely strongly upon my subconscious intuition (which is well-trained in some ways and so poorly equipped in others), and unfortunately, the result is continually failing to make myself explicit to you. I’m hoping that through writing this wiki-letter I will succeed where I have failed in-person, but I recognize that I may still fail. 

So, I'm asking you to give me a chance to show you what I mean. Try to understand. I beg for your emotional and intellectual [[charity|Charity]] because I have taken risk trying to reach out to you. I think having the chance to study my carefully structured communication will give you insight into the theory of my mind and further enable your [[empathy|Empathy]]. 

Finally, I write with love because I’m too much of an asocial animal to effectively communicate what I need to say in-person. I hope you can hear me. I hope this letter makes sense.

---------------------------------------------

<<footnotes "1" "I’m committing what is conventionally an error by having the main body of a letter as the skeleton, and using wiki-pages and footnotes as the meat of the supporting argument. The goal is to have the plainest language essence of what I mean in the main body while affording us the opportunity to clarify that plain language with technical or topical depth outside the main body of the letter.  We can't afford to have a linear conversation at this point, so please bear with the medium. I hope you see the merit of the choice. If there is a left-to-rightness in the reading order of this document, I suggest reading it from top to bottom with footnotes (taking care to read the entire page), then exploring links on that page in the same order, and taking care to understand each link in the context of the paragraph and sentence that linked it. Think of it like having a bunch of side-conversations which branch off the main letter. If this article is the first link you've explored and you have already read the main body of the letter, then you are following the intended order.">>
<<footnotes "2" "I don't want to give you a wall-of-text that feels like a prison (for my writing+thinking style or your reading+thinking style). I also don't want to lose the distinct sincerity and simplicity of the plainly worded main body of the letter. Hopefully, the wiki-letter format helps in these respects.">>
<<footnotes "3" "Unfortunately, sometimes I am caught up in my internal frameworks and systems, and I regretfully don't have the energy or capacity to emerge and/or appropriately explain as is often necessary. I'm deeply inadequate in at least this way.">>
<<footnotes "4" "Again, not meant as some delusional humblebrag.">>
<<footnotes "5" "As an example of this rhetoric manipulation of our 'lizard brains,' I see makeup and dressing-up as obviously irrational (in a particular a way) yet effective in communicating and dealing with others in the world (thus rationally instrumental in another way). I do recognize that some people claim they wear makeup and clothes because they have a personal sense of style, an aesthetic of their own, and they enjoy art and beauty. I do not believe these typical human behaviors, however, stem entirely from a desire for artistic expression. Rather, that is likely a confabulation, and instead people have convinced themselves to do these things because they have subconsciously recognized the social utility and mobility in these behaviors. Crucially, appearance is usually morally arbitrary (i.e. Jesus really wouldn't care, and if we are all being ideally moral, we wouldn't either.). Yet, there are pragmatic (borderline egoistic) reasons to put on your war-paint and dress-up, and that's because people won't respect your personhood (sometimes conceived of as human dignity) if you don't. From a utilitarian perspective, one must manipulate lizard brains (the hearts) of others to get them to do the right thing for you (I still find it gross from a Kantian perspective). In any case, I lack these skills, and I have a justified revulsion to certain aspects of them. I still need them though.">>
<<footnotes "6" "Again, we all have this problem, but I think some experience it to a greater degree than others">>


Hello world. I am [[h0p3]]. I am rebooting my life. Sometimes life feels like an impossible task, the //Non sequitur// of //non sequiturs//. I am not stable, but I feel certain I need hope. Hope must be the zeroth of axioms. Hope is the spark of autonomy. It is who I am and who I will be. There is a fire in my belly, and I am hungry again. I must find the musical signal in the noisy chaos. I am an existential beast, and this is the Cartesian [[nexus|Nexus]] of my gritty unification. ("Bootloader complete!") Welcome to my wiki!<<ref "1">>  

I'm not sure how to define this wiki. This is my tiny corner of the internet. It's basically a semi-formal blog in wiki format that I use as a stream-of-consciousness journal and thought-sandbox. It's a collection of [[projects|Projects on this Wiki]] and narratives of who I was, who I am, and who I think I should be.<<ref "2">> This wiki is an application of those famously axiomatic, aphoristic maxims: "[[Know Thyself]]" and "[[Virtue is Knowledge]]." I'm here to examine my life (and I hope to find it worth living).

Okay, why a wiki? 

Well, the dimensionality and programmability of this wiki medium is well-suited to the way I think (imho, the way we all think [maybe there are better tools]) because:

 
# This wiki allows me to nest the web of my thoughts, beliefs, desires, feelings, definitions, inferences, theories, paradigms, etc. in a non-linear way.
# I can mirror my [[reality map|Reality map]] onto these wiki-pages; i.e. the wiki allows me to reify and consciously object-orientify my reality map. 
# This is an attempt to isomorphically link my reality map to a representative set of words that I can more objectively explore.
# It gives me a detailed and structured self-shadow for analysis and restructuring; it is an existential mirror I can gaze into.
# It's a therapeutic mind-mapping and pattern-recognition tool; it is a vehicle for philosophical meditations. 
# It is existential equipment for me;<<ref "2.1">> it is a lifetool for living a contemplative life.

This wiki has opened up a better way to express myself in self-reflection. While I'm still figuring out how to harness this self-reflection, and I don't yet know the direction of this wiki,<<ref "3">> I do at least know //why // I am learning and using this existential equipment:

The goal of this wiki is to make myself explicit to myself. I'm here to have a conversation with myself. I'm creating an evolving communication feedback loop between myself and this wiki. In an important way, this may be just what [[conscious experience|Consciousness]] is like (although, traditionally entirely in one's mind), and I want to make sure I afford myself the opportunity to think about my thoughts on a higher order and to more objectively inspect the narratives I tell myself. This wiki is where I get to hear myself think. I want to learn from my own writing.

Writing this wiki gives me the chance to openly evaluate my own definitions, feelings, intuitions, and the consistency-levels in my web of beliefs and inferences. In here, I am compelled to serialize my internal data, transfer it onto these pages, run analysis algorithms on it, and rewrite these pages (rinse and repeat). I hope I am writing a "philosophical program" to teach myself the results of my analysis, to hold my analysis accountable by opensourcing it, and to see further in myself. It is an experiment in public consciousness. Importantly, I'm making myself explicit because I'm searching for epiphany, paradigm shifts, and catharsis. Ultimately, in making myself explicit, I hope to shape myself, to empathize with myself, and to make myself happier through reason. This is as much a practical exercise as it is a theoretical one. I desperately need it too.

I'm experiencing severe existential crisis and depression, and I have been for a while.<<ref "4">> I've been thrashing around and drowning at sea while trying to build an existential liferaft from nothing but myself. I hope I have found the right [[metamodern|Metamodernism]] vehicle to save myself from drowning; I think I have. This wiki is a lifetool; it will help me build that liferaft. I have disintegrated, and I hope this lifetool will aid in my reintegration. 

This wiki is meant to be an existential laboratory, a safe space where I freely deliberate with myself, where I peel myself apart through analysis and integrate myself through synthesis. Here I attempt to systematically weave the weft and warp of my intuitions into a consistent and meaningful whole (for myself). I will escape my crisis by consolidating and shaping my personality or reality map into a new (improved, happier) version of myself. I will collect myself, organize my internal structures, focus, and redirect myself. I hope this lifetool will help me existentially reconstitute myself. It sounds grandiose, but I really am in the fight for my life.

So far, I have been living for my children.<<ref "5">> As much as I want to die, I can't do that to them. They need me, and I can't help them if I'm not there for them. I care about their lives. Their happiness is my happiness. I do care about my happiness. I care about my life, and that's why I write this wiki. The hardwork that goes into this wiki is meant to benefit them, and thus as a means to my children as my ends, also the real, authentic me: the "me" identity which persists through time. I am here to empathize with and help that person.<<ref "6">> I need it.<<ref "7">>

Unfortunately, exactly what counts as me is still not clear (to me [lol, no but seriously: [[Know Thyself]]]). Personal identity is a very tricky set of metaphysical and metaethical problems. We all have common sense understandings of it. Of course, from an instrumental perspective, we simply must have at least some common sense intuitions about these matters to be practical and live in the world. Obviously, just because we have a common sense view doesn't mean it is correct or justified (nor have I established anything categorically normative so far). Unfortunately, [[intuitionism|Intuitionism]] is an inescapable quagmire. It is part of our [[human plight|Human Plight]].

From my research and introspection, it is my opinion that human minds are not monolithic, but rather they are the result of multiple minds (or mind-like processes) joined in cooperation with each other.<<ref "8">> In particular, our brains have a strong regional divide in them between what I call the [[Fastmind]] and the [[Slowmind]].<<ref "9">> The Slowmind is found in our frontal lobes. The Slowmind is our primary CPU. That's where the grind happens. The Fastmind is the storage unit of our intuition data (where we store the rainbow tables of our Slowmind's grind). It is where we store, habituate, and train our fastest deep learning neural networks; it is where virtue-data is stored.<<ref "10">> This is the place in the human brain that virtuous experts rely upon; it is the [[submind]] they query to intuitively come up with the right answers in the blink of an eye. We all do this, and I believe I rely heavily upon intuition as an INTJ. 

I am convinced that the Fastmind is composed of different [[Intuition networks]] which may themselves be minds of sorts (or at least contain the content of our reality maps, the gutteral data input to our Slowmind algorithm). These intuition networks can sit in conflict with each other, and I believe at least two of mine are at war. I refer to one of my intuition networks as the [[Redpilled Intuition Network]] (RPIN) and the other as the [[Kantian Intuition Network]] (KIN). My intuitions are deeply incompatible with each other: it's why I feel ripped in half. The cataclysm between RPIN and KIN has been the epicenter of my existential crisis.

I can see the collision between my competing intuition networks; they are the tectonic plates colliding on my reality map. I must find the answer. I must find the antidote. I am in a race with myself to diffuse the bomb inside me before I self-destruct. The core of my computer network is crashing, and I have to hack it back together in this space. I must compatibilize them. I must find peace and agreement between them. Hopefully, I will be able to meet myselves halfway in this wiki. I must find the anchors to which both intuition networks can tether. I need to let the collisions between my competing intuition networks happen on the pages of this wiki rather than in myself. I can feel detached from it, at least a smidgen. I need that space to solve the problem. This wiki is a scaffold around myself, an operating room. Paradoxically, I am the operator(s) and operatee(s). Through self-surgery ("scalpel!"), I must unify myself. I must rewrite my lifestory and stitch together who I was and who I will be with someone I can accept and empathize with.

I hope that having a conversation with myself will be the real fix. In addition to the standard evolving pages of this wiki (and hopefully myself), there will be a unique dialogue in this wiki. I will have an overt philosophical and practical dialogue between myselves; I will engage in the Platonic tradition by animating my [[RPIN the Psychopathic Pragmatist|RPIN]] and [[KIN the Empathic Idealist|KIN]] selves as characters. RPIN and KIN will engage in an existential [[dialectic|Dialectic]]. It is a kind of roleplaying with or in myself, a way to offload myselves into a hypothetical social sphere to inspect. RPIN and KIN are virtual machines that I'm hosting, and I am the penetration tester (I realize the analogy is far from perfect). Sometimes I may need to be an observer, like I would watching a movie or reading a book, and think about these characters from a dissociated standpoint where I learn to empathize with myselves (sounds dangerous, [[Operatoree]]). 

Sometimes I feel like RPIN and KIN are on my shoulders; RPIN is the devil, and KIN is the angel. When I can't resolve the conflict, when they don't agree, then I must choose one. How do I know which one is actually correct though? I don't know. I have to try to find an answer. It is an awful, weird feeling to be so unable to trust yourself. I must identify and empathize with my persisting identity, then I must empathize with these characters, and maybe help them empathize with each other. If I cannot convince them, then I have to empathize with the need for the conflict in myself. I'm hoping this is how I can heal myself.

In my self-reflection, I hope to engage in a process of respectful internal adversarialism which will help me logically, rationally, kindly, and empathically resolve my internal conflict. My competing intuition networks must find peace with each other. My mother says that one mark of a genius is the ability to simultaneously hold two diametrically opposed ideas (despite the irrationality of a literal interpretation, there seems to be a ring of intuitive truth to the spirit of her claim). Unfortunately, I can't hold on much longer (I'm just not that smart). My only hope is to weld these opposing ideas, the //Doxa// of //doxa// and the //Doxa// of //praxis//, together inside the crucible of this wiki. I don't want to be a genius (or even half of one). I just want peace and happiness. Please. So, paradoxically, this is me throwing my gauntlet down at everything, including myselves. I'm going to unify myself or die trying. This is the empathization of my internal war for the sake of self-peace. 

I hope that by mirroring my reality map onto this wiki, I will be able to coordinate my opposing [[intuition networks|Intuition Networks]], find compromises between them, and make them compatible with each other. My goal is to hierarchically re-intregate myself. I must decisively align my many orders of desires and beliefs in a resounding commitment, securing conformity between them, and wisely synchronizing and unifying them. I'm reprogramming myself. I seek to be an authentic, autonomous, unified, and whole person. I hope this wiki is a reforming, healing, cleansing, therapeutic, reifying, rationalizing, and vindicating existential programming instrument or development environment through which I resolve conflicts in myself,<<ref "11">> clear my vision, discover fitting lifepaths over time, and hopefully find happiness. 

Essentially, in my analysis of my first existential axioms, those truisms: [[Know Thyself]] and [[Virtue is Knowledge]], I hope I have taken up two other axioms, namely: [[Empathize with Yourself]] and [[Program Yourself]]. [[Empathize with Yourself]] is the means to employing the [[Categorical Imperative]], a necessary decision procedure engine we rely upon to know what is virtuous. Further, [[Program Yourself]] is the means to long-term happiness. Both my starting axioms are clearly deeply related to these two new ones.

<<<
[[RPIN]]: Whoa. Hold up. By implementing the Categorical Imperative [[Our Dear Programmer]] [[(h0p3)|h0p3]] is clearly begging the question in favor of [[KIN]].
<<<
<<<
[[KIN]]: You get to call me out when I'm being a hypocrite though. We aren't in the liars paradox; you're facing the opposite. You know that if I'm following the method (can I actually directly hide anything from you, from myself? I'm not talking about denial through indirect doxastic voluntarism either), that I must empathize with you. Even if you are psychopathic, I'd need to empathize with you. We have established nothing in the Categorical Imperative otherwise. You know I have to give you a fair shake. I'm worth trusting because you can see how I really feel: you know me. You have to trust me; you have to trust yourself.
<<<
<<<
[[RPIN]]: Call me paranoid. Fine. I have seen true Kant scholars, and not one can clearly defend empathizing with psychopaths. I do not have reasons to believe you will empathize with me. How will you [[Empathize with a Psychopath]]? I will at least admit this: it seems very logical to empathize with yourself. That is clearly what it means to care about your persistent identity. It is clear to me that I am a persisting identity. I buy the [[Program Yourself]] axiom. We can't afford to be impulsive. We must maximize the scope of our utility calculation; we must yet again ("Pinky") engage in long-term planning. 
<<<
<<<
[[KIN]]: It seems obvious to me that you cannot [[Program Yourself]] if you don't at least [[Know Thyself]]. It seems further obvious that to [[Know Thyself]] just is to [[Empathize with Yourself]]. 
<<<
<<<
[[RPIN]]: I am not foolish enough to assume knowledge of a mind is empathizing with that mind. Some psychopaths can have excellent theories of mind but elect to empathize only when it benefits them (because they are empathizing with their future selves). Ultimately, I agree to [[Know Thyself]], of course, but that does not mean we can logically derive [[Empathize with Yourself]]. That is to say to say: you have not established the categorical claim that we ought to feel the emotions and consequent motivations which go along with our knowledge. That is not obviously utility maximizing. Also, don't you know our [[Slowmind]] love's utilitarianism (that's where it is found)? Face it: Kantianism only exists in the Fastmind. You are a slave, you are not the rational, you are epiphenomal, you are not the most rational part of ourselves.
<<<
<<<
[[KIN]]: It is true that I don't care about utility maximizing until after the [[Good Will]]. This is not an accident. It is the only thing which is unconditionally good. But, you are right: the Frontal Lobes problem is huge. I do not know how to answer that. See? I am empathizing with you. You know we agree on the metaethical inferences, you just don't agree to the axioms. 
<<<
<<<
[[RPIN]]: That is correct. So, how about this: [[Program Yourself]] is talking about the only kind of freedom we have. You have seen the neuroscience behind what you call freedom. It doesn't exist.  Your freedom is unjustified faith. It is an axiom, and not obviously one I must take up.
<<<
<<<
[[KIN]]: Ugh, yes. The Categorical Imperative, if it is truly rational, must resolve the problem of freedom to make it axiomatic for you. I grant you that is at least one of the fundamental axioms we must show. I think it is the only way to convince you that [[Empathize with Yourself]] is the logical consequence of [[Know Thyself]].
<<<
<<<
[[RPIN]]: Here's the other half of this deep problem: I'm the one who actually agrees to the axiom [[Virtue is Knowledge]]. Your stutterstepped denial of Hanlon's razor shows  you only kind of do. More problematically, knowledge is not empathy, and virtue just means excellence. It doesn't mean CI-based moral excellence (again, utility seems an obvious possibility).
<<<
<<<
[[KIN]]: We are trying to program each other. I'm glad we are doing it publicly.
<<<

At this point, I feel compelled to explain what may seem like an odd inconsistency in my approach to privacy throughout this wiki. Namely, I care so much about privacy (as an ethical and political right) and yet I am obviously oversharing so absurdly publicly (it is perhaps cringeworthy). Well, this is my outlet, an effective conduit between myselves, and there is a method to the madness. This is me putting my money where my mouth is. There is a reason for transparently and openly shaping myself: sunlight is the best disinfectant.

Of course, I'm not saying anyone but me really cares about this wiki. Importantly, even if I might be speaking out in the dark with nobody there to listen, it would still be a good thing that I'm speaking out in the dark. Whether I'm talking to a void, myself, or other, acting as if someone is reading this or may be reading this somehow puts me in the right mindset. It feels like I'm addressing an audience instead of myself, and that helps me better realize how and when I need to be clearer, more rational, and more empathic. It forces me into a mode of public reasoning where I hopefully more fairly and objectively negotiate, integrate, and reprogram myself. Even if nobody is listening to me, I should listen to myself. I need to empathize with myself.

Essentially, this wiki is an accountability-based, high-transparency, cryptographically verifiable implementation of the [[Categorical Imperative]].<<ref "12">> I have to ask myself in a space of actual public reasoning (not merely the hypothetical possible world or moral courtroom we enter into in our internal implementations of the Categorical Imperative) if this is who I ought to be, if this is what I ought to do, if rational persons //in my position //would agree to my claims, acts, and intentions. Think about it: if we all wrote our journals and shaped ourselves in public, wouldn't the world be a better place and wouldn't people in general be better people? I am no exception. So, while I respect privacy rights (and find them exceedingly necessary for our world), I'm electing to relinquish mine because I feel compelled by practical wisdom.

The practical point is this: I want to construct my narrative, edit my reality map, and shape my personality in a public setting directly because it's much harder to confabulate "reasons" to selfishness (or other mistakes) when people are paying attention.<<ref "12.1">> Intellectual and moral integrity is all about trying to apply standards we believe rational people independent of us would accept and use.<<ref "13">> This is an application of the golden rule, and essentially, of empathizing with the rational, and of loving wisdom ([[Virtue is Knowledge]]).

Even if only for myself, ''I h0p3'':

*I hope this wiki develops into an evolving internet rabbithole, a grounds for me to explore and adapt.
*I hope this self-dialectic blooms into insight porn and footnote paradise.
* I hope I can "get it out of me" here.
*I hope this is a place to get to know me (even if only for me to accept myself).
*I hope this is a place to explicitly see my reality map in words and to see that landscape improve (and my life with it).
*I hope I effectively communicate with myself in open, curious, charitable, and humble self-reflection.
*I hope this wiki is a Living Document.
*I hope this is the place where I wisely mediate and reconcile the differences between my practical ([[RPIN]]) and idealistic ([[KIN]]) [[intuition networks|Intuition Networks]].<<ref "13">>
*I hope I re-invent myself and plan my grind through life and cognitive dissonance in this existential laboratory. 
* I hope to be a jedi metagamer of my life, to be practically "meta" about my existence, to play the game of life like a video game I'm obsessed with, and to more successfully engage in the practice of [[metaliving]]; thus perhaps I want this to be a Metaliving Document.
*I hope I can become a [[eudaimonic lifehacker|Eudaimonic Lifehacker]] who is existentially fulfilled (perhaps in seeking the Dao of Gödel).
*I hope that one day this [[About|About, a.k.a. The Opening of the Rabbit Hole]] page is happier in both appearance and //telos//.
*I hope I am [[h0p3]].

Wherever this hermeneutic circle (or spiral) takes me, as part of this continual existential process of rebirthing and reawakening, I will engage in the practice of programming myself and my reality. My goal is to be [[autonomous|Autonomy]] and authentic. I want to be my own programmer. I want to be the author of my life. I want to be the legislator of my own laws (literally what autonomy means). I want to be free and happy. I'm here to fight for that freedom and to stoically accept in empathy what I can't control. 

Needless to say, this wiki is currently (and hopefully often and always) under construction. Expect wiki-pages to be created, edited, and removed.<<ref "14">> This wiki is a living document (and a document for metaliving; I suppose it sounds weird to call it a Living Metaliving Document). Since I change, so will my wiki. The organization of this wiki is constantly in flux as I try to reposition the jigsaw pieces of my reality map. 

Problematically, I am often wrong. Do you hear me? //''__Listen__''//: ''I am going to be wrong on this wiki because I am often wrong IRL.'' The whole point of the wiki is to help me distinguish what is right from what is wrong. Be gracious! Be empathic! Be understanding! You can't be perfect (no one can), even though you should strive to be. Please understand the wiki as an //evolving// thing (just like our lives). Do your best (paradoxically, who doesn't?).

To only add confusion to the problem: I often fail to say what I really mean, and much of my work looks like a jumble (I'm sorry). I'd like to warn you in advance: I am prone to employ and develop a jargony personal language on this wiki in order to be laconic, unambiguous, and maximize the space and detail of my expressivity (even if only with and for myself). Sometimes I need to be as exacting with myself as I can be.

-------------------------------

<<footnotes "1" "It was initially written specifically for [[2016.10.17 -- Letter to Mom and Dad]]. However, it became clear to me that part of my deep conflict with them is also a deep conflict within myself. This wiki could and should be much more than a letter to my parents. After more reflection, I have realized this wiki was inspired by some other lifetools I've used, e.g. my <a href='h-book.7z'>H-book</a> (with <a href='h-book.sum'>checksum</a> and <a href='h-book.sum.sig'>sig</a>). I'm sure it looks crazy (this //is// the internet). Good luck and godspeed to anyone reading this.">>

<<footnotes "2" "That sounds ridiculously narcissistic. I really don't mean it that way. Unfortunately, journals have to be egocentric in a way, but that doesn't make them narcissistic tools. Really, my statement is an aspiration, not a claim that I've achieved anything worth reading. I'm well aware of the fact that writing an autobiography borders on outrageous lunacy. Admittedly, I want to steer away from that //icky//, ludicrous, lack of humility. I must say it up front: of course, I run the risk of going off the deep end here. At the very least, I don't want this wiki to be a:  rambling vanity trap, public masturbation session, absurd pile of emo-bullshit, diatribe, agitprop, manipulative virtue-signal, popularity contestant, newage holytext, self-defeating piece of self-help, mere language game, delusional confabulation, useless maze, descent into madness, or a tool used for evil things. But, ultimately, I need to take my life seriously at some level. Unfortunately, because I'm a 'quirky' (or insane) mama-jama, I need a very low-level, detailed, highly structured, hierarchical understanding of life and myself, from the ground up. So, I'm not here to convince anyone but myself, but I also don't think I'm doing anything morally wrong by taking my life so seriously.">>

<<footnotes "2.1" "I am not a Heidegger scholar. I am fascinated by what he is doing though. To be as precise as I can (with the caveat of my poor and corrupted understanding of Heidegger), I see this wiki as a unique kind of equipment that serves as a portal between [[ready-to-hand|[[Ready-to-Hand]] and [[present-at-Hand|Present-at-Hand]] modes for me, i.e. a [[RtH-PaH-portal]]. Some things jerk us out of the ready-to-hand into the present-at-hand mode (and some the other direction, and perhaps some in both directions). Not all [[RtH-PaH-portals|RtH-PaH-portal]] have the same destinations (there may be many different instances, aspects, or points of view one can 'arrive at' in either mode). I suspect what things count as portals (and the function-rules which map their destinations) are different for everyone, but there may also be natural portal patterns that arise in a species of creatures with very similar brain structures. In any case, some of those portals bring us into a present-at-hand mode in which Dasein is [[thinking about thinking|Thinking About Thinking]] and [[thinking about existence|Thinking About Existence]]. This wiki is one of those more existentially focused/destined  [[RtH-PaH-portals|RtH-PaH-portal]] which I'm purposely trying to use. I must heighten my self-awareness like Goku with his martial art (/cringe). I need equipment for bringing me into a scientifically (because we can't get Husserl's core: certainty) philosophical mindset about my existentence. I need equipment when I arrive at that destination to do my work in there. There is a ready-to-handedness (RtHness) I'm trying to cultivate in my present-at-handedness (PaHness) towards my existence. I need to make it easier to be self-reflective and existential, to the point that it is a reflex. I need to be a master of it (10,000 hours, they say) to the point that it becomes unproblematic, fundamental, ingrained, and the natural way of doing it for me. I need that RtHness, being 'in the zone,' while I'm being existential. I hope this wiki is that special equipment, acting as an existential portal for me.">>

<<footnotes "3" "If I knew all of 'what' was supposed to be written in this wiki, then I probably wouldn't even need to write it in the first place. I am searching in the desert. At best, I'm both working backwards and building a foundation hoping to find my next real move somewhere in the middle.">>

<<footnotes "4" "I could not have survived thus far if it weren't for my spouse, [[JET]], the rock of //my //ages. In her empathy and love, Christ shines through and cries out from her. I don't have the words necessary to explain my debt to her. All I can say is: I love you. Thank you.">>

<<footnotes "5" "That doesn't mean I'm doing a good job. It just means that is the only reason I'm still alive for now. If I'm lucky, I'll find more reasons to complement this last intrinsic one I have.">>

<<footnotes "6" "Even if only instrumentally for my children for the time being.">>

<<footnotes "7" "No one else can do it for me. No one can empathize with myself effectively enough. This one is up to me, myself, and I.">>

<<footnotes "8" "Just as modern computers are really multiple computers working together, I think our brains contain more than one mind. In a real way, I'm asking myself how I, as a bio-sack computer, with emotions, responsibilities, and existential agency, should program myself given the context in which I find myself.'' [[RPIN]]: Yes, Frankl, I hear you.''">>

<<footnotes "9" "Neuroscience, yo, back me up. Don't fail me now because you know it's true.">>

<<footnotes "10" "I am not a blank slate (//tabulsa rasa//). I come with innate categories built into me by evolution (more like //tabula inscripta//). I have also lived through many circumstances, and I've a habituated/trained my intuitions, which reside in the gutteral, faster-acting parts of my brain. As a corollary to the rejection of// tabula rasa//, I must admit that I'm not engaging in Cartesian solipsism. I hope this wiki is a [[Metamodern]] solipsism, where I cast doubt and generate reason from a non-empty bottom/foundation and perform surgery on myself given what I have, with a changing stance toward what I need.">>

<<footnotes "11" "And possibly with others.">>

<<footnotes "12" "Kant was right on so many levels, but he could not have envisioned every dimension to Dasein's problem.">>

<<footnotes "12.1" "Let us be clear. I'm not saying there aren't good or right reasons to be selfish. I must be open, for example, to the possibility that egoism is not only descriptively accurate but also prescriptively appropriate. Begging the question otherwise would lack integrity. However, it would also lack integrity to simply jump into the egoist pool without having demonstrated fitting public reasons (I realize, I find myself in a paradoxical problem wherein I must define //fitting//, and perhaps this problem is inescapably subjective; I have to at least try to be objective though [Even more paradoxically, I may even discover in my pursuit of objectivity {which is strikingly modern and perhaps post-modern deconstruction} that I cannot or should not seek objectivity].).">>

<<footnotes "13" "As always, so much can be embedded or smuggled in our definition of 'rationality.' It is important to see that when a rational person fully empathizes (which never practically happens, but we should take up the theoretical stance here) with a target person, the rational person may actually change their mind about what the target ought to do. Thus, the Categorical Imperative has a strong theoretical assumption which can never be fully practiced. We can't literally walk up to the virtuous agent and fully describe our circumstances, and thus they can't be certain they have found a universalizable maxim for us.">>

<<footnotes "14" "If that bothers you (and I don't know why, since this is my document), then keep your own records and timestamps (with verification). I do. Missing parts of the chronology of this journal (which seems very un-journal-like) seems odd. Here's my justification: //who I am// and //who I was// should sometimes be different persons (sometimes, not always). Whereas, //who I am// and //who I will be// should not. I'll analyze and make-use-of my past, but I will identify with my current+future self. It's what I need to do.">>
I must accept that my parents lacked empathy in their lives, that they are the result of the [[Adult Children of Alcoholics]] (ACOA) process. Consequently, I am as well. I'm trying to forgive their mistakes, even if they aren't willing to forgive mine. 

I am not convinced they will be able to withhold judgment, to fundamentally empathize with me. They have so much skin in the game, they cannot see clearly. It is already very difficult to appreciate my point of view. I must accept that, to some large extent, they cannot empathize with me. I think empathizing with me would require facing their own demons, which they cannot afford (but, then, why am I expected to afford it?). They are very strong people, but they were not prepared for this (would would be?). 

<<<
[[KIN]]:If you burn me, then you burn me. I simply have to trust you. That's the only thing which can make me happy. 
<<<

<<<
[[RPIN]]: Ah, but trust comes in degrees. To what degree should I trust you? What does it even mean to have degrees of trust? Is it systematically not really trusting if you don't have the right configuration of trusting instances or guiding principles? 

Be wise in your extension of trust. But, that also means be wise in your extension of empathy. You have finite emotional and intellectual resources. How much are they worth spending on? Think of this as a risk analysis problem. 
<<<

I have to recognize that as much my parents want to love me, sometimes they won't. They want to follow the Golden Rule, but they cannot always apply it to me in vital ways (and vice versa). I must accept them as they are. I hate what that means. It means we likely will never be close again (let's fight against this!). It means I'm in defensive mode with them. It means I can't be vulnerable to them like as I used to. I can trust their intentions to a large extent, but I cannot trust their judgment in generating the contextual content of maxims. 

I don't want to lie with them. I want to be myself. I will need to set healthier boundaries with them.

I must accept that we are in a tit-for-tat game of rebuilding our trust and empathy. It is the most successful game-theoretic way to generate trust. It is a sad game to have to play. 


------------------------

Can we accept that we will have differing opinions? Can we navigate that messy affair? Can we really empathize with each other? Can we accept each other? What is a friendship that can't do these things (is that even a friendship)? I want a deep friendship with you.


<<<
An infinite regress in a series of propositions arises if the truth of proposition P,,1,, requires the support of proposition P,,2,,, the truth of proposition P,,2,, requires the support of proposition P,,3,,, ... , and the truth of proposition P,,n,,−,,1,, requires the support of proposition P,,n,, and n approaches infinity.

Distinction is made between infinite regresses that are "vicious" and those that are not.
<<<

How do you know when an infinite regress is vicious? I think it would be hilarious if the answer itself boiled down to an infinite regress. It may require formal question begging.
Addiction desperately needs a definition. It is a weasel word which smuggles moral content into a claim which should be explicated instead of hidden in the nebulous generalized word itself. Careful analysis shows deep cracks in history of how we use that word. Embedded in it is a series of biological, metaphysical, and metathic assumptions which few if any have justified in a systematic way. Let me, again, voice my skepticism about the use of this word which I inevitably use poorly (as well as everyone else, imho).

Addiction, roughly, it is a consistent, impulsive behavior which we judge to have suboptimal enough utility calculations that we collectively call it irrational.

That said, I think we can improve in our conceptual and scientific understand of this phenomenon. 

Let us go with the sanitized and yet loaded Wikipedia definition:

<<<
Addiction is a medical condition characterized by compulsive engagement in rewarding stimuli, despite adverse consequences. 
<<<
My parents see themselves and their family through this lens. While they do not take the time to understand my point of view (and maybe they literally can't), I will try to understand theirs.  

The Laundry List:

* We became isolated and afraid of people and authority figures.
* We became approval seekers and lost our identity in the process.
* We are frightened by angry people and any personal criticism.
* We either become alcoholics, marry them or both, or find another compulsive personality such as a workaholic to fulfill our sick abandonment needs.
* We live life from the viewpoint of victims and we are attracted by that weakness in our love and friendship relationships.
* We have an overdeveloped sense of responsibility and it is easier for us to be concerned with others rather than ourselves; this enables us not to look too closely at our own faults, etc.
* We get guilt feelings when we stand up for ourselves instead of giving in to others.
* We became addicted to excitement.
* We confuse love and pity and tend to "love" people we can "pity" and "rescue."
* We have "stuffed" our feelings from our traumatic childhoods and have lost the ability to feel or express our feelings because it hurts so much (Denial).
* We judge ourselves harshly and have a very low sense of self-esteem.
* We are dependent personalities who are terrified of abandonment and will do anything to hold on to a relationship in order not to experience painful abandonment feelings, which we received from living with sick people who were never there emotionally for us.
* Alcoholism is a family disease; and we became para-alcoholics and took on the characteristics of that disease even though we did not pick up the drink.
* Para-alcoholics are reactors rather than actors.

ACOA principles are so generalized that strict and blind adherence to its hypothesis is equivalent to falling for scams like fortune cookies, psychics, and cold reading. Indeed, my brother [[JRE]] was right about this. Science does not support ACOA, at least not yet.<<ref "1">> Essentially, everyone feels these ways to some extent (some more than others). Perhaps most people in pain or those who come from dysfunctional families (and who doesn't, to some extent?) can find themselves, to varying degrees, on this list.

What does that tell us? Why can we all identify with it? It seems unlikely that it is all wrong. That so many of us feel connected to this laundry list should not be thrown away. I take this list to be specific enough (however general it may be) that we should worry about it. What is it about this list which describes the human condition? This list is compelling, and we need to find the cause of its intuitive appeal. 

I believe I've cracked the ACOA code: the concept of [[empathy|Empathy]] is the key to unlocking this laundry list. People who have systematically experienced a lack of empathy are going to find themselves on this list in various ways. Perhaps that seems reductionist (admittedly, that's what I do in my pattern recognition, and I am often wrong). Think carefully about the list, and be charitable in your interpretation here (don't straw man, instead steel man). 

Let's tackle the list and see why empathy explains it better than alcoholism.

* We became isolated and afraid of people and authority figures.

Why would we be afraid of people and authority? Because they don't empathize with us enough. Because they don't treat us with respect. They don't recognize our human dignity in important ways. When people don't empathize enough with us, they are prone to hurt us, deceive us, extract capital from us, use us, and treat us as mere means; when they //otherise// us, treat us as objects, aliens, or enemies; when they lack hospitality and kindness; when they do not treat us humanely (which comes in degrees), then we are forced to flea and hide from them (or fight, depending on which direction of fight-or-flight fork in the road we take). We're especially afraid of psychopaths (and, as an unfortunate conflation, it's also why atheists are viewed with intense suspicion, since religious people do not understand how morality can make sense without their own personal religious views). We purposely isolate ourselves from those who don't empathize enough with us. Why? If we empathize with ourselves, we will care about not being hurt. When we don't experience empathy, we will become isolated and afraid of people and authority figures (in various ways and to various degrees). It seems very logical to me. It may be the right thing to do, even if it sucks (it's bad that we must, but not wrong that we do). 

* We became approval seekers and lost our identity in the process.

This is a complex claim to unpack. In particular, it requires conceptual analysis of [[approval|Approval]] and [[identity|Identity]]. There is an enormous array of literature on and philosophical frameworks/architectures about these concepts. I can't distill a sufficient answer into a single book for this, let alone a few paragraphs. More importantly, I'm not an expert (but it is my practical plight to at least come up with answers for myself anyways). I'm not convinced that we need to delve far into the concept of identity here, but I believe we need to examine the concept of approval to understand the ACOA claim. I'll try to give a common sense answer that will juice your intuitions.

Approving, roughly, is when we [[like|Like]] something to the extent that we agree to it or condone it, that our liking is a source of motivations for condoning, that our liking provides content to our intentions and perspective for the act of condoning. 

Vitally, //liking //something isn't "up to us" in important ways (unlike [[love|Love]]), since that would require direct doxastic voluntarism. That I like pizza isn't "up to me" in any direct way. I can't choose not to like it. I can, however, habituate or train myself to like or not like pizza (acquiring or de-acquiring a taste), and thus liking may be indirectly up to me. Whether or not we like pizza is the result of training our intuitions (both consciously and subconsciously) through utility calculations and pattern recognition over a series of encounters with pizza. Liking is a gutteral, fast acting response. The process of liking occurs in our [[Fastmind]]. Liking is an intuitive desire+belief about the merits, value, or acceptability of a thing in a given context. 

Approval is an action. An action has two halves, an act and an intention (a maxim, a motivation, a reason for acting that way). What kind of action is it? It seems to be a kind of "condoning," usually in moral contexts. Liking provides the content for the intention half of the condoning act half in an approval action whole. So, as an example approval action, if I approve of what someone is doing, my act may be telling them "That is awesome!" and my reason for that act would be that I like what they are doing.

Seeking approval is seeking an action from someone (because, I assume, only persons can perform actions). It means we seek for them to condone the value of something (e.g. in us, about us, regarding us, etc.) based upon what that person likes (the rewards-based intuitions embedded in their Fastmind). One difficulty in approval seeking is that a person can't change what they like overnight. A person can't fully like what you are doing if they don't understand what you are doing (and why). The like-intuitions aren't there for them to approve.

I take this ACOA claim to be saying we don't approve of ourselves, and instead we seek the approval of something outside ourselves. Basically, this is saying that we no longer care about what we like, but instead care about what other people like. 

Is this a bad thing? Not obviously. It depends on your context. Is it a bad thing for a murderous psychopath to repent, to not like themselves (to not approve of themselves) and seek approval of something external to them? No. It's a great thing. In fact, one formulation of the [[Categorical Imperative]] boils down to seeking the approval of ideal [[Rational]] persons. Asking yourself, "what would the virtuous person (e.g. Jesus) do?" is moral approval seeking. Thus, approval seeking outside ourselves is fundamental to our moral character development, to becoming a good and morally excellent person who does the right thing, at the right time, in the right way, for the right reasons. 

Even friendship appears, at least in large part, to be about approving of each other in important ways and to large extents. It is a kind of mutual social masturbation. You stroke my ego, I stroke yours. We cheer each other on. We help each other accomplish the others' projects (we take their projects to be our own). We do things together because we enjoy mutual social masturbation more than going solo. We're programmed to be social creatures. If you don't care about your friend's approval, are they really your friend at all? Maybe. Often not. It depends. How empathic are you being? 

Alright, how does empathy fit in this picture? Approval of someone requires liking someone. Liking someone requires understanding, such as developing a theory of mind about how someone thinks, how they understand the world or context, why they do what they do, etc. Liking someone is fundamentally entangled with empathizing with someone. Thus, approval is fundamentally about empathizing with someone. 

Now, of course, we can disagree with and disapprove of someone while still empathizing with them to some degree. And, of course, perfect empathy is impossible for us (we can't magically transfer our complete minds to each other). But, it seems obvious that there always remains the possibility that when you are disagreeing with someone that you don't fully understand what they are thinking and why. It is here that I think my parents are prone to dismiss my view as a confabulation (and I'm done taking it: they will get the exact same thing back).  

In any case, I think the causal chain goes something like:

empathy => like => approval

As to how empathy relates to the ACOA claim: people who can't empathize with themselves enough to approve of themselves will seek empathy and approval from external sources. Sometimes we shouldn't like aspects of ourselves. We have be more objective about ourselves while maintaining our empathy for ourselves to make the changes necessary for us to like ourselves. This is a necessary thing to do. Clearly, the way we approach the ACOA claim requires us to bring the issue of empathy to the center stage.

Okay, I'm not satisifed with my answer here. I need to come back to it. There is so much packed into this issue. I'm still convinced that empathy is the core of the issue, not alcoholism. I think alcoholism and addictions (and all other causes) which replace our empathy for others is the real source of the problem, and the reason for the confusion people have with this ACOA list.

* We are frightened by angry people and any personal criticism.

This is the parallel of the previous point about approval, simply coming from the other direction. They are corollaries of each other. I also think it is much easier to understand how empathy fits into this direction of the equation. 

Criticism is very rarely done perfectly. Constructive criticism is about delivering the right message to a person. That message requires empathy. In order to correctly criticize someone, you must craft a message that effectively changes their point of view. You can't change their point of view without understanding it. You have see the world through their shoes, to see why they think the way they think, in order to provide them the means to find the right path. You have to empathize with them to criticize them. Without empathy, criticism tends to become a strawman, to border on fallacy. Without empathy, criticism is a personal attack. 

How do we know when someone is constructively criticizing us and when they are attacking us? It isn't always easy to distinguish. It seems that the receiver must also engage in the practice of empathy. There has to be a mutual trust between the two parties. They must believe they want the best for each other, in a way. 

Frankly, that's not the way the world works. We suck at empathizing. Of course most criticisms are so imperfect that they have attacks in them. At some point, people are just going to be frightened and hurt by failed criticism that demonstrate a lack of empathy. Someone who hasn't experienced enough empathy and correspondingly who themselves lack empathy (our ability to empathize has biological limits in the our brain's rTPJ, but is also a muscle to be trained) will of course be frightened by people. They will see criticism as lacking empathy. You can only take so much of it.

* We either become alcoholics, marry them or both, or find another compulsive personality such as a workaholic to fulfill our sick abandonment needs.

I think this is a rhetorical scarecrow in its wording. What it should really say is something like: People who haven't experienced empathy may seek others who haven't experienced empathy so that they can empathize with each other. Oh, you mean people are seeking empathy? No doubt. We need empathy; it's part of our being social creatures. It's like food and water at a social and existential level. Man cannot live on bread alone.

* We live life from the viewpoint of victims and we are attracted by that weakness in our love and friendship relationships.

Like the previous point, this is another facet to the empathy seeking gem. We live life from the viewpoint of victims because we are victims. All of us, to varying degrees, are the victims of not receiving empathy. Sometimes people don't empathize with us on purpose, and sometimes they don't empathize with us by accident. The "man-up" mentality is about discarding our need for empathy (even empathy for ourselves). Victim-blaming is about disregarding someone's need for empathy and making it all the victim's fault ("they deserve that pain; I'm glad they have that pain; I'm a good person who doesn't need to feel their pain because I wasn't stupid like they were"). 

Of course, victims are attracted to other victims. Victims need empathy, and other victims can empathize with them. Other victims understand what it means to be a victim. This isn't wrong, it's just sad and a bad thing that it must occur.

* We have an overdeveloped sense of responsibility and it is easier for us to be concerned with others rather than ourselves; this enables us not to look too closely at our own faults, etc.

This is a very poorly worded claim. Can you overdevelop a sense of responsibility? No. Can you be addicted to moral responsibility? Yes. Can you think about being responsible to the detriment of actually being responsible? Yes. Can you see the flaws in others without seeing your own flaws? Of course. What is the core of this enabling?

My hypothesis is that when we see the failures of others over and over again, when we see they do not live up to their responsibilities, when we see their psychopathy, when we can no longer empathize with them, we become habituated in our lack of empathy. We fail to empathize with the world, and eventually we fail to empathize with who we really are as well. We stop looking inwards, and why should we when nobody else is either? At best, we create a false narrative of ourselves that we empathize with, but no longer can see who we really are. At worst, we see the futility in empathizing altogether.

What is odd about responsibility is that it is innately about being empathic. When we are responsible, we are empathizing with our future selves or with others (and their future selves). It is only through a terrible turn on that righteous path that we become psychopathic, that we colloquially "judge," that we fail to remove the log from our own eye so that we can see clearly enough to remove the speck from our brother's eye. 

It is empathy that starts us on the right path in the ACOA claim, and it is the lack of empathy takes us down the wrong path. Unfortunately, I'm not even sure I can blame someone for lacking empathy anymore. I can see why they don't. Ah, but this is part of my struggle to understand our freedom (which I'm failing at, and I guarantee, we all are). So, let me set this aside and say: empathy is clearly the key to understanding fundamental moral judgement problems brought up in this ACOA claim.

* We get guilt feelings when we stand up for ourselves instead of giving in to others.

This one is interesting for me personally. I definitely feel this way with my parents. I don't know how to stand up for myself instead of giving into them. This is in part because I can't communicate effectively enough, but also because what I need to communicate to them would really hurt them. It would be painful for them, and I really don't want to cause them pain. It would be painful for us. 

I need to stand up for myself and communicate these issues though. I need to empathize with our future selves. It would be better for us in the long run to experience the short term pain (that said, my reality map conflict is strong enough that it makes me suicidal). Would you tell someone something that could make them suicidal if they actually understood it? That really wouldn't be empathic. But, it may be our only option.

I must say, I don't think my parents are capable of empathizing with me. A foolish, uncharitable part of me worries that in some ways they lack the intellectual integrity and capacity. That my real vulnerability is that I worry they choose not to empathize (definitional psychopathy). I don't feel guilty here, but I feel like I must protect myself. Putting myself out there is not a risk always worth taking.

Back to the claim directly, why would we feel guilty? Guilt is an experience that only occurs with empathy. Psychopaths don't feel guilt because they don't feel empathy. As to standing up for ourselves, there seem to be so many reasons one might not. At least part of the problem rests upon empathy here. Presumably, when we don't stand up for ourselves when we ought to, it is because we haven't empathized enough with ourselves. We don't take ourselves to be valuable enough in some way. 

* We became addicted to excitement.

[[Addiction]] needs a definition. Roughly, it is a consistent, impulsive behavior which we judge to have suboptimal enough utility calculations that we collectively call it irrational. 

Addiction demonstrations one's lack of executive functioning. That is to say, it shows an inability to appropriately empathize with one's future self. Boredom is a classic psychopathy personality trait, and it may be the case that addiction to excitement is a psychopathic expression.

* We confuse love and pity and tend to "love" people we can "pity" and "rescue."

[[Love]] needs a definition. It is easy to bandy that word about. Let us assume that love is a choice to be empathic. To love someone is to choose to empathize with them, and to be moved to seek the best for them after standing in their shoes (obviously, all of these come in degrees). 

Of course love and pity have enormous crossover. Those who are pitiable, in need of rescue, are those who need our love the most. 

Someone who desperately seeks empathy, who needs it, who systematically or crucially failed to receive empathy in appropriate ways will empathize with others who they perceive to be in a similar position. It seems to be part of empathizing with ourselves when we vicariously empathize with others in similar shoes. Surely the person who lacked food growing up will become adults keenly aware of the hunger of children. To some extent, it seems very healthy to be moved in this way. It's not obviously the wrong thing to do. 

* We have "stuffed" our feelings from our traumatic childhoods and have lost the ability to feel or express our feelings because it hurts so much (Denial).

Call it a confabulation if you want, but I think we've evolved to undergo the 5 stages of grief, and it might actually be rational. It is not obvious to me that we should aim to go through all 5 stages. There may be many cases in our lives which are best dealt with by remaining in one stage. Acceptance is not obviously always the most adaptive answer (or, we at least need need better reasons to agree to such a generalization).

Being able to "tune out" the thing causing us grief is sometimes the most practical option. We may not have the resources to do anything about it. We may not even have the intellectual and emotional resources (let alone the financial and social freedom) necessary to achieve acceptance (which may just be stoicism). Again, this is the difference between good and right. Being unable to accept, while being stuck in an earlier stage is not a good thing (that doesn't it make it our fault though), it may still be the right thing (assuming it is even a choice).

Dealing with grief is a process of empathizing with ourselves, making crucial transitions in our reality map and identity. Empathizing with ourselves is hard work. Some people may be so damaged they can't.

* We judge ourselves harshly and have a very low sense of self-esteem.

This is another normatively loaded claim. Answering it is logically equivalent to answering fundamental questions in metaethics.

Maybe the world would be a much better place if we all judged ourselves harshly and had less esteem for ourselves. Is it a bad thing that me do? Sometimes, yes. Is it wrong? Not obviously.

<<<
[[KIN]]: I want us to see the difference between what is adaptive for us and what is morally right for us to do. They are not the same thing. This is the nature of justice. 
<<<
<<<
[[RPIN]]: Morality is not practical. At least your obsession with doing the right thing, being virtuous, is not normatively required. Even though you know you can't achieve it, you still almost blindly aim to be virtuous. There is hope there that I recognize, but it is unwise. Come to the darkside of "practical wisdom," brother. Find a middleway to be "moral enough" while still happy. Everyone else is doing it, so why not you? Can't you empathize with sinners like this? =)
<<<
<<<
[[KIN]]: To not aim for the right thing is literally to not aim for the right thing. Moral law is moral law by definition. It really is an all or nothing thing in a sense. That isn't to say we will achieve what we seek (as you charitably point out), but it Maybe Hursthouse is correct; maybe we are Marred.
<<<

I'm almost sick of how redundant I'm being. This is obviously about empathy. Presumably, appropriate judgment is deeply empathic. Having a low self-esteem is a failure to empathize with yourself because, presumably, in empathizing with yourself you appreciate your dignity and self-worth.

* We are dependent personalities who are terrified of abandonment and will do anything to hold on to a relationship in order not to experience painful abandonment feelings, which we received from living with sick people who were never there emotionally for us.

Is this telling me to abandon my parents? Are my parents abandoning me for this reason? Lol. How are we supposed to deal with the psychopaths in our lives? There are competing interests, priorities, and values here. 

<<<
[[RPIN]]: To me, this is saying, don't be dependent when you can choose not to be. Be independent of others, and avoid making major sacrifices. Or, essentially, play a game where you acquire as much empathy as you can for the least cost (even a Kantian cost). 
<<<

My parents can't sufficiently empathize with me. Sure, they know what it is like to raise children while struggling financially. Sure, they understand vocation. Sure, they are struggling with a lack of empathy in their lives and the world. They do not have the tools or inclination to empathize with me though. They are mix of inept+fallible humans and psychopaths, to some degree, toward me. 

What they have earned in our social bank-accounts through our tit-for-tat game of generating trust and empathy with each other is spent. That account is empty (arguably, in debt to me). 

How can we empathize with each other? Maybe they can understand me enough in the wiki to empathize. I don't think they can though. Odds are high they won't. The risk does not seem worth it in that respect. I don't know how. Maybe I should just accept that we aren't compatible in this way. 

If there is hope, I believe it is through my mother.

Maybe I shouldn't try to hold onto the relationship, or maybe the relationship is just going to be us maintaining social capital with each other (i.e. using each other).

<<<
[[KIN]]: How noble of you. /s
<<<

This ACOA point requires more attention, no doubt.

* Alcoholism is a family disease; and we became para-alcoholics and took on the characteristics of that disease even though we did not pick up the drink.

This should read: Psychopathy is a family disease (a memetic virus which spreads through social conditioning, particularly to those with genetic predispositions). Those are the "characteristics" ACOA are trying to point out in both alcoholics and "para-alcoholics." I.e. This isn't about alcoholism; this is about a lack of empathy.

* Para-alcoholics are reactors rather than actors.

<<<
[[RPIN]]: My god. The sheer ignorance in this sentence is extraordinary. Define [[Freedom]]. Your common sense definition is going to fail. Freedom is epiphenomenal. We are all reactions, and none of us are actors. The appearance of being an actor is confabulated. You are the consequence of a detailed circumstance. A genetic and memetic story fully explains your actions (you are reducible and not emergent in a strong enough way). 
<<<
<<<
[[KIN]]: So, para-alcoholics aren't responsible for their actions? They aren't persons. They don't have dignity. What an ugly claim. It is the end of being a moral agent, it seems.
<<<

I'm not really sure what this ACOA claim is saying. It is obviously a very strong (strong doesn't mean justified; I just mean that the point of view has a rich set of assumptions) metaethical claim. 

I do find it at least offensive. The presumption is that para-alcoholics do not have meaningful lives, and that further, others are somehow "more autonomous." It's the absurd hypocrisy of calling someone a "reactionary." I have bad news: everyone is a reactionary. 

Charitably (perhaps too much so), I take this ACOA claim to apply to me in this way: I am obsessively empathic or autistic, that my decision procedure appears so "black and white" that it seems obvious to others that I am a reactor. Hilariously, just because someone's decision procedure is less clear (although, I don't think mine is ultimately very simple) in this respect does not make them any more of an actor than me. 

ACOA solves nothing in the metaethical region. It points out a set of empirical rule of thumbs about the nature of human interactions. It is a descriptive tool (and a very poorly conceptualized one at that). Prescriptively, it either begs the question, providing no justification, or it doesn't even actually prescribe. That said, I'm glad to have thought about it (and I will continue to do so). There is obviously something compelling about it, and I hope it will aid me in my philosophical investigations and existential healing. 

































----------------------------------

<<footnotes "1" "Scientists can be wrong (and they know that; anyone who understands the Scientific method or has even glanced at the history of science knows that). I'm not an expert in the philosophy of science, but I have enough under my belt to see the cracks. I'm not an empiricist. I don't take science to be my religion. I don't take science to be the sole or best method of inquiry in every context. There are other valuable and important ways to achieve justified beliefs. However, we should still take the scientific community very seriously in both negative and positive claims, since we have overwhelming evidence to do so.">>
* Most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you’re probably being too slow.
```
#IfWinActive ahk_class ahk_class LaunchUnrealUWindowsClient
F1:: Suspend, toggle
#NoEnv
#SingleInstance force
SendMode Input
 
 
 
#IfWinActive ahk_class ahk_class LaunchUnrealUWindowsClient
LButton:: ;
while( GetKeyState("LButton", "P") )
{
Send {Click Down} ;
Sleep, 30 ;
Send {Click Up} ;
Sleep, 30 ;
}
return
 
 
 
#IfWinActive ahk_class ahk_class LaunchUnrealUWindowsClient
$MButton:: ;
{
   Send {Click Down} ;
   Sleep, 200 ; Let the user let up the mouse button
   Keywait, MButton, D ;
   Send {Click Down} ;
}
return
 
 
 
#IfWinActive ahk_class ahk_class LaunchUnrealUWindowsClient
$e:: ;
while( GetKeyState("e", "P") )
{
Send {e} ;
Sleep, 30 ;
}
return
 
 
 
#IfWinActive ahk_class ahk_class LaunchUnrealUWindowsClient
$f:: ;
while( GetKeyState("f", "P") )
{
Send {f} ;
Sleep, 30 ;
}
return
 
 
#IfWinActive ahk_class ahk_class LaunchUnrealUWindowsClient
$z:: ;
while( GetKeyState("z", "P") )
{
Send {z} ;
Sleep, 40 ;
Send {Click Down} ;
Sleep, 10 ;
Send {Click Up} ;
}
return
```
It works, however irrational it may be. Be prepared for the world, even when you aren't going anywhere.
//I dedicate this work both to GFD, who showed me the way (lulz), and to H. Sarkar, whose interpretive style I can only hope to imitate. //

<<<
The term “Daoism” is highly amorphous, as there is no unitary phenomenon to which it unambiguously refers.<<ref "1">>
<<<

To some extent, I have the same problem with Christianity and any other body of significant existential thought. It is difficult to call it a monolithic thing. That said, there are core aspects of it that I think we can point to. If you can't do that, then what is it that you are pointing at at all?

<<<
While there is no fixed essence of Daoist thought, I find several related notions close to its core: a shift in emphasis from the human to the cosmic, from the artificial to the natural; cultivation of natural life and tranquility; embodying natural spontaneity by diminishing artificial interference (wuwei); and an appreciation for the deeper productive value of emptiness, nothing, retreat, and reversal.<<ref "2">>
<<<

Essentialism is a serious problem in ontology and epistemology. I am not an expert, but as a journeyman, I am worried. Of course, the analytic western tradition fails at the root. Despite the elaborate floating machinations we have built on top of our foundation, we have not solved the initial paradoxes presented to us thousands of years ago. Therefore, I have no right to complain. I must keep an open mind.

I know I cannot but help view this through my western lens. It is the framework I have: //tabula inscripta//. This list, no doubt, is tantalizing. The classic problem of defining "natural" will obviously show up in this inquiry.

<<<
Daoism is often explained as the philosophy of The //Dao//—an absolute and transcendent substance, the utterly unspeakable ground of all existence that lies beyond the world of experience.<<ref "3">>
<<<

I am very willing to accept metaphysics. Transcendence, unspeakability, and ground of human-experiencable existence I may take issue with. It depends on how you define these terms. There is plenty of room for agreement so far.

<<<
...there is a sense in which obsession with a transcendent and unspeakable dao is misguided. If we focus on dao only to say that it is ineffable, then we have understood nothing of Daoism, or dao, except perhaps that there is nothing to say about it.<<ref "4">>
<<<

Exactly. It is why we can "box" God in with adjectives (e.g. God is good, etc.). The transcendent cannot be truly ineffable, for even that sentence demands intelligibility and effability.

<<<
[The] concepts that are central to understanding Daoist
thought... include //tian// 天 “nature/cosmos,” //wu// 無 “nothing,” //de// 德 “potency,” //fan// 反 “returning,” and //zong// 宗 “the ancestral,” among others. What makes the Daoist //dao// distinctive is that it is the //dao// of nature, of absence, of potency, returning, and the ancestral.<<ref "5">>
<<<

You have my attention, despite the orientalist feelings which arise in me. Importantly, I do not understand the locution of "dao of." Presumably, "the way of" or something like that. We will see.

To be clear, I think "the way" comes off as seeking the //right// way. It is about being right. Obviously, it's emphasis on syncretistim, particularly the adaptive acceptance and encompassing of all best practices without taking up their flaws, seems to be a mark of intellectual virtue in some ways. Nothing is more philosophical sounding to me than that. 

<<<
The Daoist texts demand instead that we broaden our perspective, expand our understanding of who and what we are as humans, our awareness of our existence in relation to all that surrounds us. We extend the boundaries of our self-identification until we encompass “heaven and earth” and “the ten thousand things.” That is, our
awareness must shift from the restricted perspective of the human point of view to the all-encompassing “nonperspective” of the whole cosmos. Now the search for the way becomes a search for a cosmic way, whose significance extends far beyond the familiar boundaries of human life and human society.<<ref "6">>
<<<

Okay, this sounds really mystical (and I've been burned before) and "far out" man. Forgive my skepticism of //tiandao//: the way of the cosmos.

What does this it even mean to take on the //cosmic viewpoint// and identify as the cosmos? Do we mean the cosmos has agency? Likely not. Does it mean we need to be as objective as we possibly can? Perhaps. 

Going back to the absolute, transcendent substance, the ground of all experiencable existence: can we takeup a cosmic viewpoint at that level? If so, what does it even mean to have a trascendent cosmic viewpoint? If not, why not? If there is difference between //dao// and //tian//, what is it, and why should we accept the distinction? How is the transcendent not natural? We are deep into the "natural" problem yet again.

Further, how is it possible to take on the cosmic viewpoint? We are finite creatures. Perhaps we can only "do our best." Further, here we encounter a //de se, de re// subjectivity/objectivity problematic. Let us, for the sake of argument, ignore that problem and say it is possible. 

To the real question: why should we take up the cosmic viewpoint? Of course, it is clear that such a demand appears to be //a normative requirement//, and then I want to know the source of this normativity, why it should bind me, and what makes it authoritative, etc. 

I want to know how the master Daoist would interpret radical individualism. Why is that //not// "the way" to go?

<<<
In the absence of explicit definitions, one must look for associations of important terms; this method can be thought of as a kind of “textual phenomenology.” The associations of terms give hints
regarding what is thinkable and not thinkable in the original language: they help us plot the conceptual or semantic boundaries, which may be more or less clear depending on the concept and on the amount of context and associations available in the texts. 

Of course, attempting to understand these linguistic associations does not mean that we are recovering the original intentions of the ancient writers. As Gadamer has pointed out, it is simply not possible to extricate ourselves from our own social and historical contexts and unproblematically adopt the discourse of the ancient texts. We cannot avoid imposing our own presuppositions or interpreting the texts through our own contexts. But we can aim to interpret as responsibly as possible, that is, to approach the ancient concepts open to the possibility of deep and philosophically
significant differences, and to struggle to identify and think through concepts from our own discourse that impose what appear, in our best and evolving judgment, to be the least inappropriate of available meanings.<<ref "7">>
<<<

Perhaps I do not understand the meanings of the term "phenomenology." I find this to be an odd use of the word (the author often uses it in places that I would not). 

Regardless, this description is part of the [[Hermeneutic Circle]] (which does fit in the phenomenology wheelhouse). It is the charitable quest of philosophical interpretation, the curious and open acceptance of the results of steelmanning an argument. 

Unfortunately, I am wary of Straussian, gnostic interpretations. At some point, after we've exhausted a sufficient space of possibilities, it is only practical to see that we can't make an argument work. Or, perhaps the destination doesn't actually require that particular beginning in our interpretive work (despite our gratitude for how it led us). Sometimes we must admit an argument is no better off than the other options (or worse). We will see if this text survives.

<<<
The word “//dao//” is often said to be the most basic concept of Chinese philosophy. It might be thought of as having the same philosophical status as “Truth” or “Reality” in Western philosophy. Literally, it means “path” or “road.”...A //dao// is the path one takes, the path one makes, and the path as it guides those to follow...it
implies not only the way the world is but also the way it should be...It appears to name a unique thing, often described
as static, unchanging, and eternal: the underlying ground or Substance, the ultimate Reality behind the appearances. However, this conception of //dao// as transcendent turns out to be a presupposition of the reader or translator rather than implicit in the text...the fundamental status of //dao// cannot be taken to be that
of a ground or substance beyond the world of appearance. It is an integral aspect of the way the world is that remains firmly embedded within those natural processes themselves, not standing mysteriously aloof and beyond them as an absolute ground of Being.<<ref "8">>
<<<

Dao is surely a pregnant word. I must pay close attention to its delivery. I worry we are only taking up metaphysics when it suits us here. To say the least, I'm not pleased with this definition. It doesn't say anything to me yet. I think the goal is to avoid problems similar to that of transcendent yet paradoxically personal God/substance interacting with, integrating into, and permeating the natural world. Dao must be "natural," but so far, we have not escaped buffet ontology.

<<<
Moreover, when “//dao//” is used verbally in early texts, it is more often used to mean “to guide” and “to lead.”...the way is formed by being walked: the process of walking the way is the coming into being of the way itself, suggesting that the way is understood not as a static object but as a process...it can refer to an explicit explanation or statement of the way, and eventually even takes on the meaning “to say.”...//Dao// is guiding discourse: a way of understanding the world, of dividing, characterizing, and evaluating it that will function as a guide for our behavior. Different daos make competing claims about the best way to divide the world and the best way to engage in it successfully...claims about dao are actually claims about the ability of different systems of distinctions to capture the way the world is and function as guides for behavior.<<ref "9">>
<<<

I feel I must continually ask the timeless question: is there normative content here? If yes, I have a flurry of standard follow-up metaethical questions (which I am skeptical can be answered to my satisfaction). If no, then what is meant by guidance?

I worry the word //Dao// means whatever we want it to mean. Do you see a tough problem? Apply the word //Dao// to it, and voilà, you've done it. You've solved the mystery. Congratulations! Oh, you don't like that "way"? Great, try another Dao. There are many manifestations. So, if not The Way, then The Ways, its all the same thing in some sense. What about "The Way of the Ways?" Is there a decision procedure or explanation for which is best? What is that "Way?" Ad infinitum. 

I fear the //Dao// says nothing new to me. In fact, I worry it only ambiguates and detracts from the models I already have (which, admittedly, do not work either in important //ways// [ha]).  

That said, I must be charitable. This could still easily be right. Maybe //Dao// just means: being practically philosophical or engaging in the practice of metaliving. Or maybe the //Dao// is to be located at the very intersection of normativity, ontology, and epistemology.

Ugh, but, I can't let it go. As previously stated: 

<<<
Philosophers such as Huizi, who had a tendency to get
lost in abstract paradoxes and contradictions, were criticized dismissively and remained relatively uninfluential precisely because their philosophies lacked, or were believed to lack, pragmatic relevance.<<ref "10">>
<<<

So he wasn't influential. That doesn't mean he was wrong. But, if we are to say, well, that isn't //really// Daoism, then I take it that the //Dao//, by definition, is about coming to terms with the absurdity of the world in a constructive, peaceful, organic sense. It is as though we are attempting to be stoic about the paradox of life, as if the foundationlessness of philosophy is its foundation. Perhaps it sounds metamodern. It is ultimate pragmatism, truth be damned. But, what if eternal wrestling is actually //The Way.//

Part of me is deeply annoyed by the indeterminacy, definition-resistance, nebulousness, and borderline intrinsic relativism of the concept of Dao. Why should I not think this is a bunch of bullshit wrapped up in mystical, scamlike intangibility, an ever-shifting decoration of thought-terminators with no actual substance? It feels like vaporware philosophy, like there is nothing to actually hold onto.

Of course, I must go back and remind myself: "remember your charity, h0p3." Doubt is always the splinter in my mind. Perhaps I just need to "chill," "let it go," and "let it come to me."











-----------------

<<footnotes "1" "Ibid., vii">>
<<footnotes "2" "Ibid., ix">>
<<footnotes "3" "Ibid., 1">>
<<footnotes "4" "Ibid., 2">>
<<footnotes "5" "Ibid.">>
<<footnotes "6" "Ibid., 4">>
<<footnotes "7" "Ibid., 15">>
<<footnotes "8" "Ibid., 21-24">>
<<footnotes "9" "Ibid., 25">>
<<footnotes "10" "Ibid., 22">>
<<footnotes "" "Ibid., ">>
You might often find legal access to your content, but when you can't, then you may have to pirate it. I've tried a lot of tools, sites, and communities. Few of them are worthwhile. For every item on this list, there are probably 10 replacements, alternatives, and complements I've tried which aren't listed. This is what I think is worthwhile, permissible, and practical. 

*Books
** I highly covet my book sources. It's //so fucking hard //to find worthy, long-lasting book sources. Ultimately, if I'm in deep need, I search through every piracy tool/site/network on this wikipage for books. You should try these first though, since they have the highest success rates for me.
** ebooks.wtf: https://ebooklogin.com
***Previously, https://ebooks.farm. I believe this is the lesser version/remake of https://library.nu (the best library I have ever used in my entire life [a modern Library of Alexandria]; I literally shed tears on its takedown). 
***This site clearly exists to make money. Someone makes a very good living off this site. Too often, it is the only place I can find a copy of a book though.
***They seem to have a working model for acquiring content. This is obviously far closer to what a morally acceptable version of book publishing model should look like (although, I think this is exactly what taxes should be paying for).
***It used to be a much more hidden community. They may not be able to hide their operation well enough, I fear.
**Imperial Library of Trantor: http://xfmro77i3lixucja.onion/
*** Tor hidden site. 
*** Relatively small collection, but uniquely curated and catalogued.
*** Seems highly respectable to me.
** Libgen: http://gen.lib.rus.ec/
*** The distributed, open Library of Alexandria community right now.
*** It is also the longest standing of these services due to its model.
*** This is the first place you should check.
** Mobilism: https://forum.mobilism.org/
*** I've had an account with them for a long time. I don't care for it. I would only search here if I were desperate. Shady AF.
** Myanonymouse: https://www.myanonamouse.net
*** Only Bibliotik might compete in the private tracker world, but this is easy to get into, extremely easy to maintain a good account, very friendly (perhaps the friendlist tracker community I've ever been in), and has significant content. 
**IRC
***Undernet
****Bookz
****ebooks
***~IRCHighWay
****ebooks

* IRC
**This classic isn't going away for chat, and it may never. It just works. Small, realish-time communities pop up all the time. The protocol is very common. I lack the social skills (or at least the will power) to penetrate the darker parts of IRC social networks. I believe darker communities are moving to more appropriate tools though. All of that said, IRC piracy has been slowly dying for decades, but it still isn't dead.

*P2P (in the standard sense)
** For the truly desperate. If walking through sewers is necessary, then it's necessary.
*** You should see this as a collection of networks which different tools access. Some tools can access multiple networks. Some tools make their own networks, etc.1
9661

The objectively best combination of Void and Rainbow (i.redd.it)
submitted 4 hours ago by whatcouchman (390,592) 1491062850.32
**aMule
*** Clean program for eD2k and Kademlia network families. Not as automated as I'd like.
**~ApexDC++
*** This is my favorite client.
*** I'm very inexperienced with these networks. Most are foreign, there are significant requirements to participate in many communities, and it looks like there are social ladders to climb (and perhaps some actually worth climbing). Protect yourself. My gut tells me there are some dangerous people on these networks. I would not hunt here unless I was truly desperate.
**Ares
*** Shady AF. Any fucktard can use it though. It has its own fairly large network, so it's worth at least having access. 
**Shareaza
*** Piece of shit software in many ways. Fairly configurable though. It hits the major gnutella networks (plus eDonkey). 
** Soulseek
*** It has its own network. The best 'standard' P2P network out there right now. Amazing for music. 
*** Try this one first!

*Piracy Source Curation
** The piracy landscape is always in flux. It is an arms race. It is an ever changing set of distribution, organization, and incentives models. A good pirate must constantly be on the lookout for new sources, maintaining their current sources, and shittesting.
**Torrent Forums
***Every private tracker will have a forum. If you aren't a regular user, you should still periodically sweep through. You may find the keys to new private sources.
***

*Streaming
**Music
***Not actually illegal. You can rip if you want. If you don't stream, I suggest ripping from official hosting services (e.g. Youtube), SoulSeekQT (of the self-contained P2P networks), torrenting, "filetype:" searches on Google, and file search engines. Music is everywhere. As a sidenote, there is no https://what.cd anymore, but we may eventually see a successor.
***Due to a tragedy, my redpilled postmodern view on aesthetics, and my evolving understanding of the nature of music and the human brain, I've stopped giving a shit about carefully curating music in a way. That isn't to say I don't listen to music. I listen to it all day, everyday. I just can't be bothered to rebuild after my tragedy: I had saved my music since 1997 on my computers+devices, and I eventually lost (despite RAID) a 500GB mp3 collection (nobody used FLAC back then, so this was a huge, hand-picked collection). In a way, it was a good thing. I feel far less defined by my music collection. I do save some music, but not much anymore. I have some music around just in case I don't have the interwebs, but when don't I have interwebs? At this point, I want automated curation. I don't have the time or heart to find my own music anymore. Streaming services which automagically develop playlists are perfect in this way.
***Use uBlock Origin, and consider browser extentions/scripts for decrapifying the streaming experience
***Pandora: https://www.pandora.com/
**** I have almost 7,000 hours listened on Pandora. They really make it absurdly simple. You participate in the curation process in a very minimal way. I adore it.
***Spotify: https://play.spotify.com
***Soundcloud: https://soundcloud.com
***Audiosplitter: https://audiosplitter.fm/
**** Interesting model, no doubt. It's basically a wrapper on Youtube.


*Torrenting
**Methodology Preferences
***Build and use a seedbox on a VPS in another jurisdiction. I still prefer ruTorrent to Deluge (except for certain kinds of ratio building).
****Use the following bash script (with lftp), [[ for constant one-way multi-threaded, multi-segmented syncing from your seedbox to your HTPC/NAS. 
**** If you can't have or don't want a seedbox, then a VM with a VPN that has been properly firewalled, automated, and locked down is the next best option.
***Do the minimum to keep your accounts in goodstanding. Make sure you don't get kicked out for inactivity. 
*** For a tracker worth having, rent a seedbox for a month to build insane ratio. 
*** For a tracker you could afford to lose, consider cheating your ratio. It can be hard to find good cheating tools, and it's important that do you it intelligently. I've yet to be caught. Make sure your accounts are completely compartmentalized just in case.
*** I strongly suggest automating your entire process.
**** Automate the generation of ratio (a number of considerations here)
**** Automatically grab content you want.
**** Make it one-click from browser to seedbox to your library. Seriously. 
**Public
***As usual: give back. I have 2 Petabytes uploaded, so I'm good for a while (my ratio should be good for a decade or two, I assume). Also, I'd like to give you a friendly reminder to protect yourself. You need to use an internet condom (VPN, seedbox, or other proxy) at all times when using these sexy pirate holes. 
***Torrent Project: https://torrentproject.se/
**** At this point, a classic. It's on the order of what isohunt had achieved many years ago. 
**** As usual, use adblockers and privacy tools. 
***Zooqle: https://zooqle.com/
****If your internet bullshit-detector sucks, this seems a reasonable place to find safe/verified content.
****High-coverage public indexes with reasonable RSS options are rare. 
**Private:
***What counts as being private? Is it requiring registration? Is it requiring a certain degree of effort? Is it in the countermeasures the community/owner takes to hide users or avoid being taken down? I don't know. Consider these semi-private or borderline public if you need to.
*** I've had a ton of private trackers. Dozens. Most are ultimately not worth the effort. I honestly don't want to put in the work to get into any of the conventionally "top" private trackers. It requires socializing I'm not interested in doing. I realize they offer better organization of their content, they can sometimes have nicer encodes (or at better at weeding out the bullshit), and they have niche and very hard to find content when they are specialized. This is generally replaceable for me though. The only niche content I ever really need access to is software and books though. When it comes to video and music, I'm far less picky. There comes a point where the human ear and eye can barely tell a difference, at least for uncultured swine like me.
*** IPT: https://iptorrents.com
**** I've used them for around 7-8 years. They have a well-earned terrible reputation amongst the drama-oriented piracy scene. Ultimately, like most people, they are incredibly shady and not a nice group of people on the internet. Their scam-generated community does result in one of the largest content libraries I've ever seen on the internet though. Nothing even comes close.
***TL: https://www.torrentleech.org
****This place has only become shadier over time. It may just go the way of IPT. It obviously makes a lot of money off the leechers. It has a fairly large content base though. Generating ratio isn't too hard, but it isn't braindead easy either (although, they've made a it easier over the years). I can't blindly download a TB here though like I can at IPT.

* Usenet
** You can acquire free access. 
** It's old school, but also seems to poorly compete with torrent communities. 
** Use this when you are desperate.

* Web File Search Engines
** You should technically use an internet condom (a proxy of some sort) for these. Because they are indexes and highly centralized, I believe attackers are more likely to go for a takedown than go after users though. In time, this may change (we'll see what Trump does).
**FTP
***Napalm FTP Indexer: https://www.searchftps.net/
***Filewatcher: http://www.filewatcher.com/
** Filediva: http://www.filediva.com/
*** Search many major freehosting services.
** Filechef: http://www.filechef.com/
*** Broad index.
** Google
*** Google-fu will once in a while net you something that just can't be found anywhere else. I've found their ranking algorithm has made this less effective with each passing year though. I've not found a standard search engine to replace them though. They have a monopoly on the human capital (and likely the political and logistical capital) necessary to provide relevant search results. 
** Special filetypes
*** PDF-Giant: http://pdf-giant.com/
**** Magazines
In a way, I should see each year as having been another draft of this wiki. I should give myself a month to review my life on this wiki at the end of the year. My primary project in December will be to reëvaluate the wiki as a whole.<<ref "1">> I want to see how far I've come. I must digest it. I want to clarify, restructure, and even fix the details that annoy me. I'm going to make something beautiful of my life on this wiki. I should not simply throw my work into the attic to collect dust. I need to clean this work annually. There is an upkeep cost to pay, but there is also much more to gain from such deeply systematic reflection.

Eventually, there will be too much content here to remember. I will only be able to commit swathes of it to short term memory as I interpret and wrestle with it. I do not have a word count yet, but I imagine it is fairly large at this point. After 6 months of use, it weighs 5.8MB. A blank one is 1.9MB. That's about 4MB of text (including the necessary metadata data structure specific to the text) is very sizeable. I'm doing very fuzzy math here, but I just need a very rough estimate. I've not actually measured it or imported a wordcounter yet, but if 1KB = 512 words, and 75% of the 4MB text was my actual writing (not metadata), then I have 1,536,000 words written. To put that in perspective, there are roughly 250 words per standard page (be it book or scholarly paper), and that means I've got 6144 pages. I have written many books worth of text.<<ref "2">>

Ultimately, I would like to have people I trust review, edit, and comment on this wiki. Perhaps commentary should be separate? It isn't clear exactly what I want their contributions to be. I want this to be my work, even though I may have feedback from others.<<ref "3">> How do I integrate and use the information? I could literally pay for editors. Do I trust someone paid to do it? I really want someone who is interested in it, not just for the money. I have zero qualms about paying someone for their time though (they would deserve it). In a weird way, I would be paying for someone to have a conversation with me.<<ref "4">> That strikes me as being very sad. But, it may be necessary.

---

<<footnotes "1" "I've decided that syntactic diaeresis hits the right spot for me.">>

<<footnotes "2" "Which is not the claim that what I've written is worth reading.">>

<<footnotes "3" "In the language game we play, nothing is ever truly new. We all borrow from each other. It is the core of communication, rule-following, and learning.">>

<<footnotes "4" "My wife joked with me that I want a whore. Lol. That may be true.">>
What do you get when you cross a highway with a flock of sheep?

A flock of dead sheep.

--------------------------------------------

Like most people my age, I’m 29.

--------------------------------------------

What is a vampire’s favorite dessert?

Vampires aren’t real.

--------------------------------------------

Haikus are easy, 

But sometimes they don’t make sense. 

Refrigerator.

--------------------------------------------

How many dead babies can you fit in a standard-sized bathtub?

17

--------------------------------------------

So this guy walks into the doctor’s and says, “Doctor, it hurts when I poke my leg like this.”

The doctor says, “Yes, you’ve shattered both your kneecaps. You’ll never walk again.”

--------------------------------------------

Why do black people like fried chicken?

Because it tastes good.

--------------------------------------------

What did the homeless man get for Christmas?

Nothing.

--------------------------------------------

What did one lawyer say to the other lawyer?

“We are both lawyers.”

--------------------------------------------

What did my grandpa say just before he kicked the bucket?

“How far do you think I can kick this bucket?”

--------------------------------------------

Why did Sally fall off the swing?

     She has no arms.

Knock, knock.

     "Who’s there?“

Not Sally.

--------------------------------------------

A teenage boy is getting ready to take his girlfriend to prom.

First, he goes to get a tuxedo, but there’s a long tux line at the tux shop. It takes forever, but he gets the tuxedo.

Next, he has to get some flowers so he goes to a florist, and there is a huge flower line there. It takes forever, but he gets the flowers.

Next, he heads to get a limousine. Unfortunately, there is a long line at the limo rental office. It takes a long time, but he rents the limousine.

Finally, the day of the prom comes, and the two are dancing happily and having a good time. When the song is over, she asks him to get her some punch. So, he heads over to the punch table, and there is no punchline.

--------------------------------------------

A grasshopper hops into a bar. The bartender says, “Hey! We’ve got a drink named after you.”

The grasshopper says, “What? Bruce?”

--------------------------------------------

What did the boy with no arms and no legs get for Christmas?

Cancer.

--------------------------------------------

What is green, fuzzy, and would kill you if it fell from a tree?

A pool table

--------------------------------------------

The Brit throws out a bag of tea, explaining to the confused others, “We have so much tea in England, we can just throw it out.”

The Mexican proceeds by throwing a bag of peppers out, explaining “We have so much peppers in Mexico, we can just throw it out.”

The American proceeds to throw the Mexican out of the plane.

“Why did you do that?!” exclaimed the Brit.

The American turned around and said, “He killed my wife.”

--------------------------------------------

Why did the chicken cross the road?

In search of a society where he can live in peace without having his motives constantly questioned.

--------------------------------------------

A man walks into a bar.

He’s an alcoholic, and it’s destroying his family.

--------------------------------------------

What did Batman say to Robin before they got in the Batmobile?

“Robin, get in the Batmobile.”

--------------------------------------------

What’s red and smells like blue paint?

Red paint

--------------------------------------------

A horse walks into the bar and the barman says, “Why the long face?”

The horse, unable to speak English, shits on the floor and causes substantial damage before it can be removed.

--------------------------------------------

How do you get a clown off a swing?

Hit him in the face with an axe.

--------------------------------------------

Do you know the reason Michael J. Fox makes really good milkshakes?

Because he uses the best ingredients.

--------------------------------------------

A gorilla walks into a bar and asks the bartender for a drink. The bartender finds this very peculiar and realizes he is dreaming. He then wakes up and tells his wife about the ridiculous dream he just had. His wife just ignores him. 

He rolls over and starts to sob because he knows his marriage is in shambles.

--------------------------------------------

How do you make a plumber cry?

Kill his entire family.

--------------------------------------------

What’s funny about four black guys in a Cadillac driving off of a cliff?

Nothing. They were my friends

--------------------------------------------

A horse walked into a bar.

Several people got up and left because they spotted the potential danger in the situatio

--------------------------------------------

Knock, Knock.

Who’s there?

Dave.

Dave who?

Dave proceeds to break into tears as his grandmother’s Alzheimer’s has progressed to the point where she can no longer remember him.

--------------------------------------------

I like my coffee like I like my slaves.

Free

--------------------------------------------

What do Santa Claus and David Cameron have in common?

They’ve both got beards, except David Cameron.
//Feel the angst, ennui, and kek of an edgelord. It burns. //


I'm sensitive to these aphorisms, so I keep them here. I am not claiming that I agree to every detail of these quotes (although, for the most part I do). Even in those I disagree with, I think there is something worth exploring.

Aphorisms are a poor-man's philosophy. They are the fortune-cookie messages we treasure. Admittedly, few things can or should be expressed in aphorisms. With that caveat in mind, I think we all adore the precision, wit, and efficiency of aphorisms. They are snappy, powerful shortcuts in our reality maps. I think they are useful to collect and reflect upon as well. They aren't meant to be dogmatic mantras, but instead rules-of-thumb with which we test ourselves and the world. 

For the record (lol), I don't give a shit about attribution. None of these quotes are mine, so don't feel like I'm lying or plagiarizing (that would be absurd). Also, my categorization is oversimplified and has much overlap, but it does a good enough job.

!! Philosophy Definitions

<<<
Knowledge is knowing a tomato is a fruit. Wisdom is not putting it in a fruit salad. Philosophy is wondering if that means ketchup is a smoothie.
<<<



!! Metamodernism

<<<
Reconstruction must follow deconstruction
<<<

!! Responsibility

<<<
A lack of planning on your part does not constitute an emergency on mine.
<<<
<<<
Not my circus, not my monkeys.
<<<



!! Relationships

<<<
Care about people's approval, and you will be their prisoner.
<<<
<<<
Friends deserve my honesty; strangers deserve my courtesy.
<<<



!!Computing

<<<
AI has by now succeeded in doing essentially everything that requires ‘thinking’ but has failed to do most of what people and animals do ‘without thinking.'
<<<

<<<
You are not expected to understand this.
<<<

<<<
You can't code away their wealth.
<<<



!!Empathy

<<<
We hate some persons because we do not know them; and will not know them because we hate them.
<<<
<<<
The friend is the man who knows all about you, and still likes you.
<<<
<<<
I don't like that man. I must get to know him better.
<<<
<<<
It is a wise father that knows his own child.
<<<




!!Epistemology

<<<
You can't reason someone out of a position they didn't reason themselves into.
<<<
<<<
That which can be destroyed by the truth should be.
<<<
<<<
Those who begin by burning books will end by burning people.
<<<
<<<
An expert is a man who has stopped thinking - he knows!
<<<
<<<
We are drowning in information but starved for knowledge.
<<<
<<<
Knowledge is no guarantee of good behavior, but ignorance is a virtual guarantee of bad behavior.
<<<
<<<
Intuition is the supra-logic that cuts out all the routine processes of thought and leaps straight from the problem to the answer.
<<<
<<<
Intuition becomes increasingly valuable in the new information society precisely because there is so much data.
<<<
<<<
Virtue is an angel, but she is a blind one, and must ask Knowledge to show her the pathway that leads to her goal.
<<<
<<<
Virtue is knowledge
<<<
<<<
If you don't read the newspaper, you are uninformed; if you do read the newspaper, you are misinformed.
<<<
<<<
It is impossible for a man to learn what he thinks he already knows.
<<<
<<<
All schools, all colleges, have two great functions: to confer, and to conceal, valuable knowledge. The theological knowledge which they conceal cannot justly be regarded as less valuable than that which they reveal. That is, when a man is buying a basket of strawberries it can profit him to know that the bottom half of it is rotten.
<<<
<<<
Education is learning what you didn't even know you didn't know.
<<<
<<<
Science is organized knowledge. Wisdom is organized life.
<<<
<<<
Knowledge is of the past, wisdom is of the future.
<<<
<<<
The eye sees only what the mind is prepared to comprehend.
<<<
<<<
It is wiser to find out than to suppose.
<<<
<<<
Truth passes through three stages: first, it is ridiculed. Second, it is violently opposed. Third, it is accepted as self-evident.
<<<
<<<
I do not believe in ghosts because I have seen too many of them.
<<<
<<<
The foolish and the dead alone never change their opinion.
<<<
<<<
The man who dares to tell the truth is called at once a lunatic and fool.
<<<
<<<
 If you’re going to tell people the truth, be funny or they’ll kill you.
<<<
<<<
Write drunk, revise sober.
<<<
<<<
History is a set of lies that people have agreed upon.
<<<
<<<
If you think education is expensive, try ignorance.
<<<
<<<
Thinking is the hardest work there is, which is probably the reason why so few engage in it.
<<<
<<<
The cost of sanity in this society is a certain level of alienation.
<<<



!! Existentialism

<<<
Doubts are the most intimate thing about us.
<<<
<<<
Death is just as meaningless as life, so just keep living.
<<<
<<<
After a while nothing kills you on the inside.
<<<
<<<
When you know who you are you are freer to be who you are not.
<<<
<<<
We are all broken. That’s how the light gets in.
<<<
<<<
Life is hard and then you die.
<<<
<<<
Don’t cry because it’s over; smile because it happened.
<<<
<<<
The two most important days in your life are the day you are born and the day you find out why.
<<<
<<<
If the path before you is clear, you're probably on someone else's.
<<<



!!Mental Health

<<<
Depression lies.
<<<



!!Morality and Politics

<<<
Systematic benefits in a society are dispersed from the top down, and its sacrifices emerge from the bottom up.
<<<
<<<
The class which has the power to rob upon a grand scale, also has the power to control the government and legalize their robbery/
<<<
<<<
Do unto others as you would have them do unto you.
<<<
<<<
Be excellent to each other.
<<<
<<<
First they came for the terrorists, but I didn't stand up because I wasn't a terrorist. Next they came for the pedophiles, but I didn't stand up because I wasn't a pedophile. Then they came for the privacy conscious and I didn't stand up because their foot was on my back.
<<<
<<<
Socialism never took root in America because the poor see themselves not as an exploited proletariat, but as temporarily embarrassed millionaires.
<<<
<<<
I am somehow less interested in the weight and convolutions of Einstein's brain than in the near certainty that people of equal talent have lived and died in cotton fields and sweatshops.
<<<
<<<
Justice will not be served until those who are unaffected are as outraged as those who are.
<<<
<<<
Knowledge is power. Information is power. The secreting or hoarding of knowledge or information may be an act of tyranny camouflaged as humility.
<<<
<<<
The 'trickle-down' theory: the principle that the poor, who must subsist on table scraps dropped by the rich, can best be served by giving the rich bigger meals.
<<<
<<<
Privilege is the greatest enemy of right.
<<<
<<<
Justice is never given; it is exacted and the struggle must be continuous for freedom is never a final fact, but a continuing evolving process to higher and higher levels of human, social, economic, political and religious relationship.
<<<
<<<
It is not fair to ask of others what you are unwilling to do yourself.
<<<
<<<
Deviation from the norm will be punished unless it is exploitable.
<<<
<<<
Many groups that have the power to make life decisions for others don't ever have to live out the consequences.
<<<
<<<
He who allows oppression shares the crime.
<<<
<<<
It is no measure of health to be well adjusted to a profoundly sick society.
<<<
<<<
Hunger makes a thief of any man.
<<<
<<<
The mass of mankind has not been born with saddles on their backs, nor a favored few to ride them.
<<<
<<<
Find out just what people will submit to, and you have found out the exact amount of injustice and wrong which will be imposed upon them; and these will continue until they are resisted with either words or blows, or both. The limits of tyrants are prescribed by the endurance of those whom they oppress.
<<<
<<<
When you’re accustomed to privilege, equality feels like oppression.
<<<
<<<
An appeaser is one who feeds a crocodile — hoping it will eat him last.
<<<
<<<
The most common way people give up their power is by thinking they don't have any.
<<<
<<<
A man who stands for nothing will fall for anything.
<<<
<<<
All misery on Earth is a business model.
<<<


!! Media, Rhetoric, Influence

<<<
Journalism is printing what someone else does not want printed: everything else is public relations.
<<<


!!Work

<<<
I would rather die of passion than of boredom.
<<<
<<<
Those who wait until circumstances completely favor his undertaking will never accomplish anything.
<<<
<<<
Either write things worth reading or do things worth the writing.
<<<
<<<
If you want to increase your success rate, double your failure rate. 
<<<


!!Virtue
<<<
We first make our habits and then our habits make us.
<<<
<<<
We shape our tools, and thereafter our tools shape us.
<<<
//Shakespeare, Nietzsche, Laozi, Twain, Franklin, Chesterton, etc. seem to be doing something right. We must collect, investigate, prune, and wisely apply terse rules of thumb and insight.//

I take aphorisms, epigrams, maxims, one-liners, kernels of thought, and compact intuitions to be bits, nuggets, and essences to not only immediately enjoy but also to inspect, germinate, and unpack. They are gateways to walk through with exceedingly complex thought trees emanating from those doorsteps. There is a special beauty to them, like the fabled aesthetic elegance of mathematics, e^^iπ^^+1= 0, or the beauty of fundamental equations in physics, e = mc^^2^^, or "ought implies can" in metaethics, etc.

Intuitionism, the use of our fastminds, is the motivator and decision procedure in casuistry. Intuitions pose a conflict of interest and force us into circular reasoning, but they also pose an opportunity to simplify and clarify, to hold our theories in check and ground ourselves. Ultimately, effective systematic philosophy must explain what is right, wrong, coherent, or incoherent about common sense, wit, and the cleverness stored in brevity.<<ref "1">>

* [[Advice]]
* [[Aphorisms]]
* [[Common Sense]]
* [[One-Liners]]
* [[Irony, Absurdities, Self-Reference, Contradiction, Necessarily Impossible, Circularity, Regress, and Paradox]]
* [[Words, Phrases, Definitions, and Concepts]]
* [[Homemade Musings, Maxims, Phrases, etc.]]
* [[Evolving Words, Buzz, Corruptions, and Neologisms]]
* [[Summations, Brief Explanations, and Valuable Paragraphs]]

-----------------

<<footnotes "1" "Or maybe that's just what my intuitions are on the matter, and I can't escape it.">>
I want to apologize for what I said in our last meeting and for not staying in contact with you until Christmas. I was not being as empathic as I want to be. My goal is to be deeply empathic, especially with those I love you. I'm really sorry. I hope you can forgive me. I'm doing the best I can with what I have, even though it hasn't been sufficient. I hope I can undo the damage I've done. 

I thought I was allergic to you. I realize that much of who I am is a reflection, reaction to, and consequence of who you are. My crucial mistake: I didn't like myself, and I took that out on you. I saw in you what I saw in myself. I've been allergic to myself. I need to adapt. I've been working really hard to reintegrate myself and put my life back together. I'm sorry I said what I did. There are times where we would sacrifice a great deal to take our words back, and I'm incredibly sorry that I can't unsay it to you. I lacked the empathy in that moment. That is not who I am trying to be. I'm very sorry. 

You may be asking, what about the other stuff we spoke about in those two days? Are you going to apologize for all of that? You may not like this part: I apologize for the way I said it, the place I was coming from when I delivered the content to you. A suicidal man with no sense of purpose is not always in the state of mind he wants to be in. I felt like a trapped animal in fight-or-flight mode, and I did not kindly and carefully explain myself. Unfortunately, I still agree with the vast majority of the content of what I said. I wish I said it in a way that generated mutual understanding instead of anger. I'm sorry that I've been a poor communicator with you. 
When say you aren't going to "revolve" around me, I'm convinced you mean you aren't going to take the time to empathize with me.
//Like Santino Rice from Project Runway S2, I couldn't stop myself from endlessly embellishing.//

* Abilities
** Quad Flurry -- At-Will Type
*** I throw a strike, and if it lands, I instantly throw another strike, and so on, for a maximum of 4 strikes.
** Feign Death -- At-Will Type
*** I've studied death and its imitations. I appear to die and/or be dead. I'm quite practiced, and it tends to be fairly realistic looking. My eyes are wide open and vacant, mouth half-open, and maybe my tongue hangs out.<<ref "1">>
** Fade into Shadows -- Daily Type
*** I instantly teleport up to 10 feet in any direction while becoming completely invisible for 5 minutes.
** Divine Mend -- Conditional Type
*** Whenever I read or write, I have a chance to heal or cleanse myself.
** Lifetouch -- Innate Type
*** I heal myself and allies adjacent to me for a portion of all damage I deal to anything or anyone.

* Appearance
** I'm a 5' human female with exceptional breasts and an ass that just won't quit.
** I wear a "Dressed to the 9's" Gothic flowing dark hooded robe that covers every part of me except my fists and sandaled feet.
*** "I just hate my toes; they're so ugly, don't you think?....Like, I wish I had feet as beautiful as yours."
** I have cenobitic markings on my face, palms, and tastefully around my good parts. 
*** My "crazy" eyes and markings glimmer beneath my hooded robe.
** Skull-shaped wisps of dark smoke swirl around and emanate from my deadly life-giving fists.<<ref "2">>
** I look darkly monastic with a touch of schizophrenic demonic possession. 
** I like to meditate, read, write, and silently chant. I'm generally quiet. I'm a monk who deals in life and death.
*** Silent chanting: I noiselessly move my lips. Normally, with my hood up, people have difficulty seeing me chant. Those who can see it sometimes find it disturbing.

* Items
** Non-Magical<<ref "3">>
*** A dark leatherbound notebook
**** I love to draw "<3" emoji and write haikus. 
*** An extremely bright pink, girly pen
**** I sometimes perform a silent death-giggle when I use it.<<ref "4">>
*** A lodestone cut into a sphere<<ref "5">>
*** A square, absorbent, yellow, and porous bird-call whistle<<ref "6">>
*** Convex glass bound in an iron casing
** Magical
*** Golden Grill Rebreather -- Allows me to breathe in contexts I otherwise couldn't.<<ref "7">>
*** Time-Gate Glass Shard

* Weaknesses
** Double-Edged Lich -- Attackers are healed for a portion of the damage they deal to me.
** Epilepsy -- Recurrent, unprovoked seizures or unconsciousness. I can feel them coming on, but I only have a few seconds of consciousness before they hit me<<ref "8">> 
** Mute -- I can't talk, but I communicate through gestures, drawings, writing, etc.




---

<<footnotes "1" "I generally won't elect to shit myself though.">>

<<footnotes "2" "Thomistic Edginess comes in shades of Dusky Black, Pitch-Black, and Blacker than Black.">>

<<footnotes "3" "KYS Samwise Gamgee, I'm not taking rope.">>

<<footnotes "4" "/wink, /wink">>

<<footnotes "5" "Fucking magnets, how do they work?">>

<<footnotes "6" "It doubles as a Sponge-like Moon Cup for my perilous red tides. Don't worry, I clean Bobert before using him as a whistle.">>

<<footnotes "7" "So gangsta'!">>

<<footnotes "8" "Long enough to hand off a baby I'm holding to someone else before I collapse.">>


* [[ARAM Compositions]]
* [[The Perfect ARAM Champion]]

I love poking. I love the constant teamfighting. I love constantly dodging skill shots. I love the itemizations. I like how the objectives are clear. More importantly, I like how I can focus. I'm terrible at reading a very large map. I enjoy seeing the full map right in front of me. It's honestly just more fun, even if the strategy isn't as deep. I've even touched greatness, having had a couple masters players and even one challenger in my games (and I'm a plat-5 player on SR). People tend to be nicer on ARAM too. It's wonderful.

I generally hover between 1600-1700 rating (roughly top 5-10% of the ARAM population).

* Champions to get on ARAM account:
** Nami
** Jhin
** Caitlyn
** Malzahar

General Theories:

*Pre-Game
** Use an ARAM-only account with champions that are either fun to play (even when you are losing) and/or boast incredibly high winrates. If you can play tanks well, then do so. Find a style that fits you and round out from there. The more champions you own that you want to play, the more likely you'll end up with something you'll want to play. 
** You should have runes, masteries, and item builds prepared for all your owned champions and an idea of what you would do in general for free-to-play champs.
*** You shouldn't have to spend time thinking about these things or waiting in the fountain.
** Be absurdly conservative with your rerolls. Try to trade whenever you can. Otherwise, call "rr" for appearance's sake, and cross your fingers. I suggest waiting for at least 20 seconds to reroll, since someone may dodge (if they really dislike the comp) or they may reroll into something they would trade to you. If you don't like the composition or your champ, you can always dodge. I don't suggest dodging after a reroll (since you lose it if you are the dodger). When I don't have rerolls, I am far more likely to dodge. Wait to dodge until the last 5 seconds, as someone else may dodge before you (so you don't pay the penalty).
*In-Game
** Mana and hp regen are really fundamental to outlasting your opponent. A champion with 10% health is often effectively removed from combat. They are just waiting for the most opportune, highest-utility method of killing their character off. Winning the wars of attrition in trades/poke are key before many all-in initiations before pushing for objectives is the name of the game.
** Scaling runes, Armor and MR, are obviously best. Choose your penetration. Done.


Remember:

* 1400g starting gold


I suppose I should discuss particular builds and champions.

* [[ARAM: Annie]]
* [[ARAM: Janna]]
* [[ARAM: Miss Fortune]]
* [[ARAM: Morgana]]
* [[ARAM: Sona]]
* [[ARAM: Soraka]]
* [[ARAM: Swain]]
* [[ARAM: Velkoz]]






```
* Summoners
** 
** Flash
* Build
** Items
*** Start
*** General Build
```
What makes an amazing ARAM composition?

* Wins attrition wars
** Healing and shields
** Poke and invisible sources of damage
* Seiges turrets effectively
** Strong zoning
** Safe turret damage
* Strong CC, catch, and wombo potential

!! Tier 1 Compositions:

* Perfect
** Sona -- Heals yeah, but broken shields. Damage and CC. The whole package. Wins unwinnable fights and is obscenely oppressive while ahead.
** Ziggs -- Best combination of wave clear and seige tools. Plays amazing while you are ahead and almost as well when you are behind
** Swain -- Frontline draintank mage with solid wave clear. Build defensively and consistently bait teams. 
** Sion -- The only AD tank worth playing in ARAM, initiation, amazing wave clear for a tank, he has enormous flexibility in his build and playstyle for whatever the context may be, and he can abuse death.
** Kog'Maw -- The premier hypercarry, hybrid options to boot, comes online before all the other hypercarries (pure tempo), extreme reach, and he can abuse death. 

* Tank for Days -- Imagine facing the all AD or all AP team. In this context, we will have gods. Strong enough they could arguably 4v5. 
** Maokai -- Soon to be nerfed, sadly
** Sion -- Need dat AD
** Galio -- Amazing before his remake, amazing after his remake
** Illaoi -- Imho, more annoying than Teemo. Pure cancer.
** Swain -- Not traditionally conceived of as a tank, but clearly plays that role when built correctly.
Annie is a burst damage initiation mage. She ultimately doesn't do a ton of damage, imho. With impeccable timing, she can begin fights or turn the tide of a battle. AoE stun with good damage problematic. Furthermore, there are very few champions who can pick a squishy and just kill them outright. As long as your positioning is good, you can either zone a champion or combo them out almost entirely. 

* Summoners
** Snowball -- The fact is that she desperately needs gap closers
** Flash -- Duh
* Build
** Items
*** Start
**** Catalyst of Aeons
**** Refillable Potion
*** General Build
**** Rod of Ages -- I'm not sold on this for Annie. She desperately needs CDR. She is also incredibly squishy. This is a strong early game item, and it gives her just a pinch of survivability, which an initiator often needs.
**** Sorcerer's Shoes -- You are a burst mage who doesn't seem to scale very well.
**** Morellonomicon -- The CDR is really the key here. You are an ult-bot. 
**** Hextech Protobelt-01 -- Getting in range to Ult is that important. She also wants to drop as much damage as possible and get the fuck out while she builds towards another stun.
**** Banshee's Veil -- I think this is one of the stronger items in ARAM. It has CDR, and Annie is completely an ult bolt. Against most teams, I value the magic resist.
***** Otherwise, pickup Zhonya's Hourglass, which is amazing post initiation.
**** Void Staff -- There's usually some magic resist you need to punch through. This can be so valuable that you want to build it early, and it even makes me rethink Rod of Ages.
* Summoners
** Flash
** Clarity -- She's a mana whore who shouldn't build Morellonomicon.
* Build
** Items
*** Start
**** Catalyst of Aeons
**** Refillable Potion
*** General Build
**** Rod of Ages -- Almost always the correct choice in ARAM for AP users, imho.
**** Ionian Boots of Lucidity -- A fine choice in a game where you need to hit the CDR cap asap (minus the starting item). 
**** Ardent Censor -- Amazing stats, heals, and dirt cheap.
**** Redemption -- Heals are always key. It's highly abuseable. The unique pass unstackability sucks, but it's still quite strong..
**** Zeke's Convergence -- Seems like anti-synergy, but group effects are strong. 
**** Locket of Iron Solari -- You are a support in a game mode where you teamfight the entire time. It's strong.

!! AP MF

* Summoners
** Clarity
** Flash
* Build
** Items
*** Start
*** General Build

!! AD MF

* Summoners
** 
** Flash
* Build
** Items
*** Start
*** General Build
* Summoners
** Flash
** Snowball -- Clarity is quite strong on her, but Morellonomicon does the job.
* Build
** Items
*** Start
**** Catalyst of Aeons
**** Refillable Potion
*** General Build
**** Rod of Ages -- Hard to beat. With her passive and Rod, she is very strong in trades.
**** Sorcerer's Shoes -- MR is ubiquitous 
**** Morellonomicon -- All around solid stats. 
**** Zhonya's Hourglass -- Sick with her ult. It's strong enough on her, given the way her ult works, that even if isn't AD damage on their team, you may still want it.
**** Banshee's Veil -- Both offensive and defensive stats. 
**** Rabadon's Deathcap or Void Staff -- Depends on the enemy team.
Sona is the undisputed queen of ARAM. She skips the laning and roaming phase of SR and just teamfights the entire time. More importantly, she gets to engage in the consistent war of attrition of ARAM, where she shines the most. She pokes, shields, and has an excellent ultimate. 

* Summoners
** Clarity -- As usual, mana whore. It's about out-sustaining your opponents.
** Flash
* Build
** Items
*** Start
**** Lost Chapter
**** Amplifying Tome
**** Health Potion
*** General Build
**** Morellonomicon -- Given her ability to reach the highest CDR levels in the game due to her ult's passive ability, Sona is a true spam bot. This makes her, arguably, the most mana hungry champion in the game. Even if Morellonomicon only healed mana on kills/assists, it would be worth it. 
**** Ardent Censor -- Play defense and work your way into offense. It is an item tailor made of Sona. It's literally perfect. The only reason Morello's is better is because mana regen, especially early, is just that important. 
**** Boots of Swiftness -- You will be the primary target. You have to kite. Abuse the speed in your kit hard. Morello's is so strong that it's often better to go for it before boots.
**** Lich Bane -- Sona also abuses this item better than the vast majority of casters because of her damage combo and spamming.
**** Luden's Echo -- Excellent spam and speed
**** Rabadon's Deathcap -- Make your shields amazing. Go Void staff if you are facing heavy magic resist. You can go Sorcerer's Shoes as well if necessary.
Soraka played correctly is a health battery which abuses Warmog's armor from the backline to keep her teammates alive. She pokes just fine early, but she should not go for AP. Her role should be utility, and often she should be the further in back in the backline, lest she be focused down. That said, she must build survivability. 

* Summoners
** Heal -- There aren't any great choices here. I think burst healing might be best. 
** Flash
* Build
** Items
*** Start
**** Catalyst of Aeons
**** Refillable Potion
*** General Build
**** Rod of Ages -- Amazing on her. She needs the HP, she needs the regen. 
**** Ionian Boots of Lucidity -- CDR is key. You are a spambot.
**** Warmog's Armor -- The regen is straight up broken. You'd get it before the boots, except it wouldn't be active that early. This is the earliest it will be active, and even then, you may be a few hundred HP shy. You want the passive effective literally ASAP though.
**** Redemption -- CDR, Healing passive, and strong healing active. If you were lucky enough to hit Warmog's before the 2750hp mark, then this will also have the necessary HP to hit that floor.
**** Locke of the Iron Solari -- It doesn't have CDR, but the active is incredibly powerful. It's cheap mitigation for you, and makes your teamfighting all the more dangerous.
**** Spirit Visage -- MR is generally the primary mitigation stat, making Warmog's even more broken, CDR, etc. All good stuff. Survivability is really the key.
***** If you don't need MR, I suggest Zhonya's Hourglass.
I adore Swain because I love draintanks in general. Swain is particularly well-suited to ARAM. He's an excellent teamfighter with amazing sustain. Early game you are short-range mage (so be careful), but post-6, you can very effectively heal yourself. Played correctly, you are a nearly unkillable tank with far too much damage. At some point, people stop even trying to kill you. I tend to build tankier than many. 

* Summoners
** Clarity -- Because Swain is a fucking mana whore. You'll be glad you have it in the middle of team fights. It enables you to sustain your ult for absurd durations.
** Flash -- Was there any doubt?
* Build
** Items
*** Start
**** Catalyst of Aeons
**** Refillable Potion
*** General Build
**** Rod of Ages -- Just fucking Godly on him
**** Boots -- Whichever mitigation stat matters most. Make your heals count for more real survivability.
**** Spirit Visage -- Premier Draintank item. It's so strong, I'd still buy it even if there were only facing one AP champ.
**** Zhonya's Hourglass -- Pop with ult on, and heal while you are invulnerable. Mitigation stats are godly
**** Banshee's Veil -- CDR, AP, MR, and a defensive passive. Yes, please. Let me draintank. Obviously, if are facing a heavy AD comp, you go Thornmail.
**** Liandry's Torment or Thornmail -- If you need damage, go for torment, and if you need to tank AD more, then Thornmail.

Velkoz is a shitty version of Lux, but even a shitty version of Lux is strong on ARAM. I very much like the placestyle. His Ult is literally the weakest part of his kit. 

* Summoners
** Clarity -- He's a mana whore, and you basically don't give a shit otherwise.
** Flash
* Build
** Items
*** Start
**** Catalyst of Aeons
**** Refillable Potion
*** General Build
**** Rod of Ages -- His pre-6 game is incredibly strong. You basically want to extend his pre-death "laning" phase for as long as possible. Healing your mana and hp up while poking them down allows you to attrition them out.
**** Ionian Boots of Lucidity -- CDR is key. You basically want to spam the entire game.
**** Morellonomicon -- The CDR and mana regen are incredibly valuable. 
**** Banshee's Veil or Zhonya's Hourglass -- 10% CDR, AP, Mitigation Stat, and a Defensive ability. It rounds you out. 
***** If you want both, then go for Sorcerer's Shoes.
**** Luden's Echo -- I think the Passive is quite strong on a poke mage. It adds up.
**** Rabadon's Deathcap -- You have a shit of AP. Might as well make it huge.
//See: [[Trying to Be Right]]//

I remember a kid in my second logic class (when I was in school, not when I was teaching) who went super "deep" on the nature of logic. He roughly asked why we should think logic is objectively true? This is actually a great question: it spawns many valuable problems. Whether or not this kid was smart in how he asked his question and what he thought he meant by his question are irrelevant; the fact is that his question is a crucial one near the foundation^^tm^^ of the intersection of epistemology, ontology, and ethics. What makes logic normative? Even more importantly, what makes reason normative?

Even if we wanted to deny the Categorical Imperative (the "right" maker), we would still have the Hypothetical Imperative (the "good" inference maker). If B is necessary for A, and if you want A, then you need B. It's a maxim-container, the instrumentalizing part of our ethical reasoning, and deeply intertwined with what it means to be rational, reasonable, and logical. It is what being instrumental is all about. You are irrational when you don't take the means to your ends. Is being irrational immoral? Well, that's a question for the CI (which hilariously, by definition, claims it is moral: "Reason" is the ultimate weasel word in Kantian thought).  Is the HI normative if there is no CI? Eh, no, not really. But, I think very people would deny the normativity of HI in much of their lives. Logic has the same thing going on.

Of course, how can you but beg the question of a=a to even begin to say or infer anything? These are hardcoded, genetically-based, innate memes we are born with, and the seem independently true of us as well (I realize I'm running over philosophical landmines here). Even to attempt to argue against logic requires logic.

Similarly, whatever counts as reason requires reason. You can't argue against reason without already assuming reason as the foundational differentiator, the decider, the standard we should measure, make, and understand arguments by.

I fear people who argue against reason itself though. As far as I can tell, it takes a technical argument in prudential epistemic normativity (and unique contexts in which the utility calculation results in an ignorance is bliss principle and unexpected exploitations of the placebo effect) to justify the confabulation that reason can be normatively overridden (and even then, I think we are simply redefining and opening the scope of Reason). I don't think most people mean anything like this when they argue against reason though. 

Why is reason not the standard? What do you mean by reason? Why should I think your definition of reason is better than mine? Of course, I don't see how I can conclude you are right about the nature of reason without employing my own standard of reason (and vice versa). We all think we are right, and we all have to be convinced on our own terms. It's a postmodern problem. There may be ways to escape it, but I don't see how reason isn't the fundamental cause of escaping it.

In any case, I am certain of this: if we are to successfully argue against reason, it must be upon the back of reason. We must start with reason, and only while employing reason through a hermeneutic circle recognize  the limits, futility, fundamental problematics, insufficiencies, or non-normative status of reason.
* [[ASCII & Unicode Art]]

* [[Books]]

* Comics
** [[Online Comics]]
** [[Graphic Novels]]

* [[DIY Art]]

* [[Games]]

* [[Humor]]

* [[Music]]

*Video
** [[Stand-up Comedy|Stand-up Comedy Collection]]
** [[Documentary|Documentary Collection]]
** [[Television Show|Television Show Collection]]
** [[Movies|Movie Collection]]
*** [[Recent Movies]]
** [[News|News Video Collection]]
** [[Psychedelic|Psychedelic Video Collection]]
** [[The Youtubes]]

* [[Weirdcore]]
I suppose this is a placeholder. I'm in no position to write it. I know it when I see it though, right? Lol.
```
؋ $ƒ₼៛¥₡₱£€₾¢₹﷼₪₩₭₮₦₽฿₺₴₫
```
```
Nᴉƃƃǝɹ
```
```
⨈Һ𝘢ʈ ╤ћᘓ 𝔽ᵁʗꗪ
```
Blue pills

Meritocracy. It feels like a redpill, but it's coming from a weird direction.

The reason we should favor meritocracy is because we want to maximize our utility. We should give the most credit and power to those who deserve it most. What makes us all happier? That's the merit, right? Veil of Ignorance your way into it. 


------------------

When I'm high and I have a lower IQ, am I training myself while having a lower IQ? Does it affect my the faster acting parts of my brain in negatively permanent ways that I'm not aware of? Is this training worth having? Sometimes, yes. It wakes us up. Maybe we learn to not trust our opinions so much while high. We understand that feeling happy while we have an opinion formed doesn't mean that opinion is a good one. 

Beyond my obvious genetic predisposition (it runs in the family), my abnormalities and inabilities to effectively form theories of mind at a gutteral level in my rTPJ, my systematizing abilities and proclivities, my difficulties in communication, my oversensitivities, and a lifetime of very odd quirks demonstrate my autism. 

I am lucky enough to be able to intellectualize my social life to the point that I'm high-functioning. To some minimal extent, I can "blend in" and be normal with others and even to some extent feel normal myself while doing it. But, upon any minimal investigation, it is clear that I do not fit in almost anywhere or with anyone (barring rare exceptions) with enough depth or integration.<<ref "1">> 

Every single friendship that has lasted required someone who was highly empathic and intelligent enough to understand me, which is necessary to empathize with me. It's why my wife, [[k0sh3k]] is the One, my truest friend. My wife was raised with an autistic savant (and she might be a milder one herself; she's certainly on the spectrum, see: [[k0sh3k's autism]]), and she has always spoken my language fluently and effortless at every turn. In fact, I seemed normal to her in ways that don't make sense (and probably vice versa). I get along with her because she gets along with autistic people (which is also an explanation for how she has long 

It's why MB is one of "the others" to me, a real friend. She gets me, and that's because she is: intelligent, comes from a similar background as mine, and her brother is a diagnosed high-functioning autistic person. We click because she speaks my language, because she is capable of empathizing with me, and I with her. She doesn't judge me. Contrast this to my father (whom I love deeply; I want to repair our relationship).

When my dad says he won't "revolve" around me, I think it's because he has a hard time empathizing with me. I don't think this is due to lacking any standard intelligence (he is a brilliant man in my eyes). I have seen his intellectual prowess, his triumphs and mistakes;<<ref "2">> both require impressive intelligence.<<ref "3">> He is obviously incredibly smart and works hard to understand the world. He's a contrarian and a traditionalist at the same time; he is someone who tends to make me think there are still a handful of conservatives who are neither evil nor fools (a diamond, no doubt).

I think he doesn't understand me though. This may have to do with my autism. It is also obvious that he has serious problems empathizing with others (but not everyone; sometimes he is a very deep empathizer; it depends on a number of factors). He could easily be on the autism spectrum. I am strongly convinced he isn't significantly psychopathic (we are all literally on that spectrum; that's what it means to be a sinner), despite mixed abilities to empathize with me. I think [[Adult Children of Alcoholics]], particularly about having not received empathy himself in much of his life, is one of the keys to understanding who he is though. 

Outside of the the basic homo sapien mammalian stuff (are you experiencing hunger pain?, do you enjoy the feel of the music?, and other fundamental emotions and feelings which we all tend to experience) few empathize with me, and I think that's because they do not see what I see, they cannot step into my shoes, they do not and often cannot make the abnormal kinds of inferences I make (even as they attempt to intuit or gutterally-hypothesize my theory of mind). Sometimes its abnormal for intelligent reasons, and sometimes it isn't. This isn't me stroking my ego; I think it is autism. I am very abnormal (deviant in the normatively-neutral sociological sense). Of course it will be difficult to empathize with someone who is really different. 

I think it is as difficult for for autistic people to empathize with others as it is for others to empathize with autistic people. Our rTPJ's just activate differently. I implore you  to not commit the Humean naturalistic fallacy here: Is does not imply ought. Unfortunately, a charitable interpretation of the Humean Guillotine is true, as far as I can tell (it is an important philosophical tentpeg in this discussion). The myth of normalcy is best understood by this Humean Law. Normal and Normative are obviously not the same.

Admittedly, I don't make it easy to empathize with me either. If EQ were a real thing, or whatever part is real, (the science does not verify the self-help + business literature, but I still think there is something right about the kernel of it [I think Emotional Intelligence is a real thing; it is simply very poorly described in the sciences for a bunch of reasons {but that is changing}]), mine has enormous variance. I'm underdeveloped in my social programming in ways that do not make sense outside of autism. On the Autism Spectrum, I believe I'm somewhere between Asperger's and possibly a mild form of PDD-NOS.

-------------------------------------------------

''What can't I do because I am autistic?''

Being a eudaimonic lifehacker requires being an empathizer, right? That's going to be pretty hard to accomplish when you aren't a good empathizer. I often fail to empathize with myself (see executive functioning problems) and others for many reasons, and I think autism is a significant reason. I do not form theories of mind in the way others do. 

I must still strive to be as empathic as I can. And, at least initially, we should see that the autist empathizes with the wrong representation of someone's of mind, but not that, of course, is that the same thing as saying they don't empathize.

Further, I must accept that I am not a talented empathizer as is standardly conceived. That doesn't mean I don't empathize, but I do it poorly in significant ways. This thing that I seek, I'm genetically (and perhaps memetically-conditioned) to suck at it in important ways (thankfully not all ways!). My failure is not always up to me. It isn't always on my shoulders. I must stoically accept those things which are outside my control. That doesn't mean I'm blameless (although, if you saw what I did in philosophy, you would like take that position up for all human agency). Nobody is perfect. 

------------------

<<footnotes "1" "I can hear my dad now complaining about those who empathize with themselves. He lacks empathy for himself. I must empathize with him. How else can I accept him?">>

<<footnotes "2" "I mean this word without judgment. My goal is to be charitable in my interpretation of his life. Honesty may even be the wrong word. It slopes for me.">>

<<footnotes "3" "Don't get me wrong: this pot-kettle-black + takes-one-to-know-one a millions times over. I'm in no place to even delusionally condemn him for something that is obviously a deeper flaw in myself. It's clear I do listen when my dad talks (and mom as equally), although they may not think I do. I have paid very close attention to his arguments, closer than he suspects, imho. I think it is rare that I listen to people, but I do listen to what my parents say. I could not be as hurt by them as I am unless I did (I'm not sure if it goes the other direction, it may). Sometimes I don't want to listen because it hurts. I'm asking them to see why it hurts and empathize. I don't think they will be able to see it. What do I ascribe to this inability to empathize: malice, ignorance, or a lack of moral responsibility? It feels like those are my only options here. One could claim I am in a false-trilemma, but I want to deeply understand the answer which eludes me because it will solve crucial philosophy problems for me (a fundamental source of disunity in me). I don't like any of the options in the trilemma, and I want to be wrong about it.">>
One interesting thing about discovering my autism has been the relieving ability to freely admit to myself that I barely understand social communities on the internet. Their network topologies and basic technical use I often understand quickly enough, but the influence of that topology on the social patterns of its members, the power dynamics in these communities, the way in which technology is social, is now understandably foreign to me in some ways. I'm very developmentally challenged in this respect. It's as bad as the fact that I can't remember lyrics to songs in a way that even children and senile people can.  
This is perhaps an odd exercise. Much like a [[Bucketlist]], I hope to have a notion of what I want my hypothetical eulogy to read. What would I want said of my life after I'm gone? Of course, I think the pursuit of fame is ridiculous. Likewise, I doubt I'll have much of an actual eulogy (unless that's part of what I want?). What would I want to remember of myself as having accomplished? What kind of person would I want to be remembered as? What would I want said at my own funeral? Even if this is only for myself, it is ultimately a good question to answer.

This is something that requires thought. I'm not there yet. 
* [[AHK: Tribes Ascend]]
I always feel more intelligent after speaking to you.

-----------------------------------

You are very modest, and rightly so.

-----------------------------------

Wow, you don’t even look like a Mexican.

-----------------------------------

Your man titties are so perky.

(So are your back boobs.)
```bash
#!/bin/bash

# Fuck you, crontab!
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:~/bin

# logfile timestamp
date +"%Y.%m.%d-%T"

### Backup of your.file

# Vars
TIME=`date +20%y-%m-%d`
FILENAME=$TIME-h0p3.xyz-index.html
SRCDIR=/foo/bar       
DESDIR=/stuff/things

# Copy and compress
cp -f $SRCDIR/your.file $DESDIR/$FILENAME
cd $DESDIR
bzip2 -f -9 $FILENAME

```
//Notes on Bayesian Confirmation Theory - Strevens//

The epistemic agent assigns what we will call credences or subjective probabilities to different competing hypotheses which explain or predict a phenomenon. These credences are probability values between 1 and 0 (where 1 is certainty the credence is true and 0 is certainty it is false), and they reflect one particular person’s views on the probabilities of hypotheses, events, or their corresponding propositions, however rational. A credence is a psychological property which all epistemic agents have; it is a person’s level of expectation for a hypothesis or event. An agent's attitude to a hypothesis encapsulated in a level of confidence, or credence, that may take any of a range of different values from total disbelief to total belief. 

Credences are thought to account for gambling/betting behaviors in a mathematical way. Presumably, there is little to no space between the probabilistic prescription of these credences and our choices and actions, at least in betting (excepting fallibility, even akrasia must be accounted for by credences). Admittedly, it is odd to "go Bayesian" on ethics. Ultimately, there is a learned, trained, virtue-theoretic set of utility equations we've stored in our fastminds which I take to be credences. It is our slowmind, our frontal lobes, which provide the reasons to think otherwise, to modify our credences.

Agents are assumed to learn from evidence by what is called the Bayesian conditionalization rule. This rule updates your credences in the light of new evidence. As long as you have some particular opinion about how plausible each of a set of competing hypotheses is before you observe any evidence, the conditionalization rule will tell you exactly how to update your opinions as more and more evidence arrives.
One criticism I hear about cynicism is that it's a cheap way to feel smart about one's self. Right back 'atcha.

I think it borders on saying: "realizing something is wrong makes you feel smarter than the person who still believes it, in that respect." Duh. Be cynical where it is appropriate (which is damn near everywhere.
I have so many things to be grateful for.

I have to enjoy what I have. 

As dad says, I must suck the marrow out of life.
After moving to Tennessee, while cleaning out my books and notebooks, I actually threw away my college work. My college work sucks. Seriously, I had an awful primary and secondary education. It was a miracle I learned anything living in Kentucky as a boy. 

I first attended Elizabethtown Community College (renamed to ECTCS a long time ago), and there I actually read books that mattered and developed my writing voice.<<ref "1">> However immature that voice was (and still is), better late than never. I've never really learned to write extremely well (except for a few technical things), but my lack of skill and knowledge shows very strongly in my work at Berea. That's okay. The college transformation takes time to digest.

Unfortunately, I did not keep copies of everything I wrote at Berea. I literally only have a single semester saved now (my second to last semester). 

* [[2004.09.07 -- Chocolate]]
* [[2004.09.07 -- Candide]]
* [[2004.09.13 -- Summary of Rationality]]
* [[2004.09.21 -- Economics Homework]]
* [[2004.09.22 -- Suffer and Believe]]
* [[2004.09.26 -- Leibniz]]
* [[2004.09.26 -- Job]]
* [[2004.10.01 -- Women of the Old Testament and Euripides’ Plays]]
* [[2004.10.01 -- Mind of the Prisoner]]
* [[2004.10.12 -- A Feminist’s Critique of Nozickian Entitlement Theory]]
* [[2004.10.26 -- The Trial of G-d]]
* [[2004.10.27 -- Seneca, Stoicism, and the Symposium]]
* [[2004.12.01 -- Plantinga: The Free Will Defence]]
* [[2004.12.07 -- Silence]]
* [[2004.12.08 -- Paul and Dante]]

I made a lot of mistakes at Berea, as you can see in the above work, but I also made some incredibly wise choices as well. I met and married my wife at Berea, for which I will be forever grateful. I also studied philosophy which eventually enabled me to rationally escape the faith I was brainwashed to have. 

As you will see, I've found the opiate of religion to be an incredibly addictive meme over the years. Like billions of homo sapiens in human history, the Great Abrahamic Meme was deeply rooted in me, and it has take monumental effort to deracinate it.<<ref "2">> The power of gnosticism and confabulation coupled with a search for meaning (of my past and life in general) kept me imprisoned for a long time.

I look back on these works, and I see why I took the path I did. I feel like I've been a man of incredible integrity. Others do not see it that way, but they really have never stood in my shoes and seen my life through my eyes. 

--------------------

<<footnotes "1" "I regret not saving my work. I kept them for a long time, but eventually disposed of it. I didn't think it would matter. What a shame!">>

<<footnotes "2" "I'm still unbrainwashing myself. It's a process. I still have [[Residual Christianity]] which lingers to this day and a web of inferences that I've not retested effectively enough since my deconversion. It takes years to deconvert, especially for someone who found as much reason as he possibly could for his faith.">>
She was a good woman and a mother to many.
They are classists. I've noticed this trend. Those who are concerned with "class" as an appearance are themselves seeking to be classy. Even if they don't fully understand what they are saying, this is ultimately what they mean. It is the root of their point of view.
* [[Curse of Knowledge]]
* [[Club Unlimited]]
* [[WASM Tiddlywiki]]
* [[Decentralized WeChat]]
* [[Cryptocurrency Casino]]
We have complex lives. Ha. Yes. It's true. It is such a simple and obvious sentence that I can barely type it out.<<ref "1">> 

That complexity, the continuous complexification of our lives, is a core existential problem. It is a unique kind of factor in our life equation. Every step we take, a zillion doors open and close. 

Our complexity, our conflict shows itself as a bifurcation. But, this// just is// what problem solving is about. 

Welding our practical and theoretical selves is necessary for unification, but it isn't always possible. We have to accept that we aren't naively monolithic creatures at times. That's what self-conflict is all about.



--------------------------------

<<footnotes "1" "Oh, shit son! That is so deep. /s Snap back to reality.">>

2017:

* Oryx and Crake
* The Stack: On Software and Sovereignty
* [[An Introduction to Daoist Philosophies]]
* A Guide to the Good Life: The Ancient Art of Stoic Joy
* Systems Thinking: Managing Chaos and Complexity: A Platform for Designing Business Architecture
* The Foundations of Geopolitics: The Geopolitical Future of Russia
* Polar Bears
* NCCER
** Core Curriculum
** Pipefitting Level 1
** Pipefitting Level 2
** Pipefitting Level 3
** Pipefitting Level 4
* Infomocracy
* In Over Our Heads: The Mental Demands of Modern Life
* Travel to each continent.
* Morphine/Heroin OD as the way to go out. It's apparently the best. Go out with a bang I'd never touch while hoping to live.<<ref "1">>
* Take my children on a long-term camping trip. 
* Sail a long distance.
* Write a memoir that I'm proud of. 
* Two girls at one time, amiright? 

---

<<footnotes "1" "In case I'm deeply wrong about the future of the world, and if the futurologists and transhumanists were to be right about living on inside computers (or being converted into longer-lasting machines which didn't succumb to cancer), and assuming it were democratized to the point that I could feasibly do it, then I'd choose that life, obviously.">>
Special Offsets (always start in the box on the ISO):

* R = Radius = TO90 = ~NominalSize(1.5)
** TO45 = ~NominalDiameter(5/8)
* .5(OD) = .5 * ~OuterDiameter
* TL = √ ̅(Set^^2^^ * Run^^2^^ * Travel^^2^^)
* °Roll = TAN^^-1^^(Set/Run)
* °Rise = SIN^^-1^^(Rise/TL)
* °BF = Bottom Fitting = COS^^-1^^(COS(Roll°) * COS(Rise°))
* Heel = ~FittingDegree(.017453(R+.5(OD))
* Throat = ~FittingDegree(.017453(R-.5(OD))
* Takeout = R(TAN(~FittingDegree/2))

|customTable|k
|Raised Face (RF) Weld Neck Flange|||||h
|Size|OD|150#|300#|600#|
|1/2"|13/16"|1-7/8"|2-1/16"|2-5/16"|
|3/4"|1-1/16"|2"|2-1/4"|2-1/2"|
|1"|1-5/16"|2-3/16"|2-7/16"|2-11/16"|
|1-1/2"|1-7/8"|2-7/16"|2-11/16"|3"|
|2"|2-3/8"|2-1/2"|2-3/4"|3-1/8"|
|3"|3-1/2"|2-3/4"|3-1/8"|3-1/2"|
|4"|4-1/2"|3"|3-3/8"|4-1/4"|
|6"|6-5/8"|3-1/2"|3-7/8"|4-7/8"|
|8"|8-5/8"|4"|4-3/8"|5-1/2"|
|10"|10-3/4"|4"|4-5/8"|6-1/4"|
|12"|12-3/4"|4-1/2"|5-1/8"|6-3/8"|


|customTable|k
|Ring type Joint (~RtJ) Weld Neck Flange|||||h
|Size|OD|150#|300#|600#|
|1/2"|13/16"| -- |2-5/16"|2-5/16"|
|3/4"|1-1/16"| -- |2-1/2"|2-1/2"|
|1"|1-5/16"|2-7/16"|2-11/16"|2-11/16"|
|1-1/2"|1-7/8"|2-11/16"|2-15/16"|3"|
|2"|2-3/8"|2-3/4"|3-1/16"|3-3/16"|
|3"|3-1/2"|3"|3-7/16"|3-9/16"|
|4"|4-1/2"|3-1/4"|3-11/16"|4-5/16"|
|6"|6-5/8"|3-3/4"|4-3/16"|4-15/16"|
|8"|8-5/8"|4-1/4"|4-11/16"|5-9/16"|
|10"|10-3/4"|4-1/4"|4-15/16"|6-5/16"|
|12"|12-3/4"|4-3/4"|5-7/16"|6-7/16"|

This is a place to window shop, to spend wisely, to maximize utility. It's fun!

* Bose Noise Canceling Headphones
** Preferably OSHA compliant
*** http://www.hearingreview.com/2008/06/attenuation-values-of-a-noise-cancelling-headphone/
** Wireless may be the best option
** Another option would be earbuds underneath the earmuff protectors

* Wireless earbuds
** https://store.digg.com/sales/homespot-airbeans-x-true-wireless-earbuds?utm_source=digg.com&utm_medium=referral&utm_campaign=homespot-airbeans-x-true-wireless-earbuds_061217&utm_term=scsf-235772

* A secure, worksafe phone

* No pandas

* Self-Sustaining, Closed Ecosystems (just add sunlight?)
** https://www.amazon.com/gp/product/B005IZOB5M/ref=as_li_tl?ie=UTF8&tag=animal0e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B005IZOB5M&linkId=fa0e17240a0c85bbf19154af67525b5c
//Counting my chickens...I still must have a goal and plan for the future.//

We have a budget. We need to stick to it. We should live fairly Spartanly. We can nearly live off k0sh3k's salary already. The first money we make should go towards getting phones for everyone and a work/travel/living vehicle for me. After that, it is savings gravy. We can do it. We must be disciplined. We have a goal: to be happy. That is a goal that takes time to achieve. We have to build towards it.

We're still near the bottom of Maslow's hierarchy in some senses. I don't mean we are starving or anything like that (far from it). But, we could not accept a single serious catastrophe. Our lives are not secured enough to deal with fundamental emergencies. We have depleted our reserves. That's what I'm going to fix first. Emergency savings is the first step. 

Immediate safety savings goals (in this order):

*5k Checking
*10k Savings
*5k Cash
*5k Cryptocurrency
*5k "Crisis" commodities
** Physically portable, highly liquid, and low price-elasticity.
** These are likely the kinds of goods which sky rocket in value during the worst of times.
**//Prima facie//, I think gold is mistakenly thought to dwell here
*** There are times when we take the jewels, and there times when we leave them behind; this is not crisis proof.
*** There are more functional options.

If the political winds continue to even more rapidly become violent, I may need to find even more fundamental shelter. I could easily see us spending the next 5k prepping. Beyond that, I think it is unreasonable. 

One final point about Safety Savings: it must scale with inflation. This is the only smart way to gauge our emergency position, to not be surprised, and to pay the upkeep cost of aging with our wealth.

Basically, after our initial safety margins are met, we can enter into actual savings to build towards our future beyond merely having the resources to handle the emergencies of the present. It's hard to plan far into the future. There are so many variables to consider, so many risks, unknowns, etc. The major problem at the moment is that we don't actually have our own property/house.<<ref "2">> Finding a place of our own would obviously be the next step.

I want to own a house by 2022. I'm going to work my ass off. I want the stability, comfort, privacy, and emergency readiness of a house. I want a base to work from. I want it before I even start saving for retirement (I'm not convinced we will ever retire [so many moral and political problematics], but if we do, it will be through a very unique combinations of tricks). I want this before I even pay off students loans.<<ref "1">> I see it as a matter of practicality that I secure my family's life before everything else. That is the goal.
 
It is very possible that I will bring in between $40-100k a year gross (large range, I realize, but projecting this far fuzzes my accuracy, and I've not adjusted for inflation yet). By 2022, I should make $160-400k gross, and while I can't project tax rates (particularly with Trump), I will conservatively estimate a 40% tax rate (may also see school loan-based garnishment). Thus, I think $64k-240k is a reasonable possibility. This means I range from just spinning my wheels all the way to banking $160k. Clearly, I will need to push very hard and scrimp like I would in a video game.<<ref "3">>

Assuming the stars aligned, I can outright buy a house (especially if the housing bubble bursts again, assuming rent-seeking capitalists don't eat us alive), and if not, at least provide a very reasonable down payment. 

At this point, we might consider the lateral possibility of nomadic living done correctly. Who else is better prepared besides the nomad? There is something gutteral and Maslowian about owning your own house.<<ref "4">> So many scenarios make the most sense when you have your own place and a place in a geographic community. Roots and relationships are useful (although, Crisis defeats that as well). Perhaps the goal is to have a bit of both. The person with the "go bag" and the base is in the best position. Know what you value, actually be prepared, and protect it.

I should add cosmetics, such as braces for the kids, and other social lubricants. There is money to be spent to make my children appear acceptable to the world.<<ref "5">> Class, status, self-advertisement, one's brand, reputation, Face, how we project ourselves, what it is that others gutterally and instinctually value in us, etc. cannot be written off. We must prepare for this lizard demon. We must respond with the right tools in the right ways at the right time. We must be scientific in our empathic endeavors to enable others to bypass their lizard brains and empathize with us for the right sorts of reasons. This is the only practical option. Unfortunately, at least for now, this is not a fixed cost that I can easily project. I don't know enough. That doesn't mean planning isn't worthwhile. We must think!

In any case, I believe Trump's presidency is a danger to us (I'd think the same for Hillary as well, it would just be a different kind of threat). I would not be surprised by WWIII or other kinds of more complex conflicts that we don't have the ontic+epistemic categories to nicely describe. I need to secure my family while I still can. Prepare for the unknown. I don't mean to lash out in fear or curl up into Red Scare isolationism. I need to find the right balance, the golden mean. I would love an injection of actual practical wisdom^^tm^^ right now. I must train continue to train my empathy muscles for the Crisis, since that is exactly when I will need them most.

Okay, so...hope for the best, prepare for the worst. We see the law of diminishing marginal utility. Wield that principle! It does look odd, I must say. So, I do want an apocalyptic-ready house of sorts (not zombies, but instead ready for a nosedive deeper into economic depression and who knows what else, yes). Admittedly, I've got a spot of "prepper" in me. I think anyone paying attention should be very worried in this way though. Eventually, I'll need safe places to save and invest my wealth (oh, Silas Marner).  

I'm completely open to unconventional housing. I don't give a shit what other people find to be a beautiful house. We can go into the Mac-resale value argument for houses, but it is an important question of whether or not we are here for the longhaul. k0sh3k loves her job. That said, if my previous years are any indication, I will be highly nomadic. So, do I aim for walled-garden Utopia house or comfortable mobility?

We should consider very odd kinds of housing which can be more price efficient, even if it is unconventional and less desired by average people. There are many questions to ask, e.g.: how sustainable, independent, off-the-grid, protectable, secluded, internet-accessible (I've got a lot of neat technical tricks up my sleeve, as long as I'm within a couple miles of a connection) will it be? 

Super-Ideally:

* We will live in the woods, preferably at the top of a hill.
* Trees are nice.
* We will live next to a source of fresh (or filterable) water on or adjacent to our property that would survive global warming effects (not sure how to judge that).
* We will have excellent internet access (while it is there; we can also just build our own networks). 
* We will have an all-in-one greenhouse (complex ecosystem with tilapia farm, etc.) to at least produce a significant portion of our food.
* Solar power generation.
** Moving water or wind may also be small sources of electricity in a pinch.
* Very powerful insulation and resource conservation attributes.
* Gated/Fenced
* A workshop
* A parking lot
* A minimal or non-existant lawn (automated caretaking if we do)
* A pool (as convenient as possible if so)
* Barracks for storing my entire extended family.

Dreaming:

*A hobbit home would be sick. 
**Certain aspects of it would be very energy efficient. There are lots of logistical problems. The stars would need to align.
* A true analogue library (printing, binding, cataloging, storing, etc.)
* Hidey holes, mass storage protected beneath the ground.

Realistically:

*We get whatever price-efficient 3-bedroom place we can find nearby.

In any case, I should avoid the rat race when possible, and when required, engage in it cleverly. I might not have what it takes, but I've succeeded in other microcosms. Let us hope I can scale up when the stakes matter. I will find the cracks in the system, the boundaries of the world. Do not use people, but protect your family. That is why you are alive for now.

--------------------------

<<footnotes "1" "I think everyone is obviously entitled to free education and healthcare from taxes alone. It is obvious we can do this; the various kinds of reasons people give for why it isn't possible tells us something crucial about who they are.">>

<<footnotes "2" "I suppose it depends on the rate of acceleration of the political turmoil we in and heading for. My worry is that one day it will take but a whisper of powerful people to eliminate my supposed legal claim right to property.">>

<<footnotes "3" "I am pushing against enormous economic inertia against the global poor, but I am near the top of the tide and I have the raw intellectual resources to climb out of the chaotic pit. Let us hope my ascension is done morally; I want to be a person of integrity.">>

<<footnotes "4" "Consider multiple shelters and nomadic options be very future planning then. It is always a possibility that we do them all.">>

<<footnotes "5" "We cannot escape our lizard brains, at least not yet.">>
I found a reason to live: my children's happiness. Once their happiness is secured, I really don't want to exist. Now, it would make them sad for me to die, but they can live fulfilling and happy lives without me. I just have to get them there. Afterwards, I will have earned the right to end my life. That is my intention (barring the possibility that I find other reasons to live). I'm hoping that after 13 years, I can generate sufficiently good lives for my children (assuming the world doesn't end before that time) and take my life. I have a goal. I can do it. Now I must plan and work hard to reach it.

To be clear, suicide can be a method of empathizing with yourself. It depends on your positon/context. Sometimes ending your life just is maximizing your utility. For some of us, it's the best marred life you can achieve.

The conditions aren't clear. I should set those out. 
There are no plugins for Tiddlywiki that allow you to run a functional Calendar. That's fine. I'll just keep a ghetto one here for now. I'll think about it.

* 2017.05.12-13: Family Gathering at [[JRE]]'s 
** Brings presents for your brothers. 
** Bring the RPi
[[Cannabutter Recipe]]
* Decarboxylate Cannabis 
** Pre-heat oven to 220° F  
*** Use oven thermometer 
** Course grind cannabis  
*** Don’t grind it too finely 
** Evenly and thinly line pan/dish with cannabis 
** Air-tight seal pan with aluminum foil 
*** I just make a sealable envelope of foil.  
** Bake for 60 minutes 
*** More time for fresh (wet) product, less time for old and dry 
** Remove from oven, and let it cool  
*** Do not unseal until after it has cooled 
* Clarify Unsalted Butter 
** You want 16 ounces of clarified butter (32 ounces unclarified) for each ounce of cannabis 
*** Clarification will reduce 2 sticks to 1 
** Melt your butter at the lowest possible temperature. 
** Repeatedly scrape off the top layer (thick white, almost foamy semen-like substance) and dispose of it.
** You should have transparently clear yellow butter liquid left.
* Cooking the Cannabutter 
** Add Clarified butter, Water, and Decarb’d cannabis to crockpot 
*** Use 1 cup of water for each pound of clarified butter. 
** Cook for 5-hours on low (make sure it doesn’t get too hot) 
** Stir occasionally 
* Finalize 
** Strain product from crockpot with cheesecloth 
*** Strain remaining pulp with a press 
** Store and cool cannabutter+water liquid in a covered container in fridge 
*** Allow the butter to fully harden 
** Separate the solidified cannabutter from the water 
*** Discard the water. 
** Store your cannabutter 
*** Might be useful to cut into specific portions 
**** 1/8th a teaspoon is a reasonable hit for +6 hours of effect
**** Freeze butter that won’t be used within days. 
//Play Life like a video game!//

The maxim //carpe diem// is an abbreviation of the Horacian phrase //carpe diem, quam minimum credula postero//, which can be translated as "Seize the day, put very little trust in tomorrow." 

We should squeeze every drop of utility out of every moment. We must make the most of our time because we don't don't know how much we have left and our time is a resource we can never renew. We must spend our lives wisely, efficiently, and with joy. We must at the same time empathize and identify with our future selves while still living in the moment.<<ref "1">>

Here I count my blessings, talk about how I spent my time in general each day (not just my occupation), and perhaps reflect upon plans and make to-do-lists. I hold myself accountable to this log's namesake, a maxim which we all hope to live by.

!!! Vault:

* [[2017.06 -- Carpe Diem Log]]

!!! Current Month:

* [[2017.07.01 -- Carpe Diem Log]]
* [[2017.07.02 -- Carpe Diem Log]]
* [[2017.07.03 -- Carpe Diem Log]]
* [[2017.07.04 -- Carpe Diem Log]]
* [[2017.07.05 -- Carpe Diem Log]]

---

<<footnotes "1" "I'm not contradicting the Epicureans here. Horace would have agreed with me, and I take us to be saying roughly the same thing.">>


Wikipedia says,

<<<
In philosophy and rhetoric, the principle of charity requires interpreting a speaker's statements to be rational and, in the case of any argument, considering its best, strongest possible interpretation.
<<<


I fear I'm forced to claim that so easily dismissed cliché: “you don’t understand me.” Before you write it off, my suggestion is this: when someone tells you “you don’t understand me,” and you have strong evidence to think they are as intelligent as you are, then maybe you have good reason to explore.<<ref "1">> In any case, I believe you need to understand my point of view if we are going to be friends (something you choose) of any serious degree of depth and not merely family (something you don’t choose).

There are those who dismiss the inarticulate. I can see reasons for such an approach. I think this is misguided though. I appreciate the desire for selecting and grading people's perspectives based upon the evidence they can provide in communication. It's a strong inductive force, and a meme that exists because it often generates the best results for individuals sifting for good epistemic signal through the noise. But, even rules of thumb can be wrong. There are exceptions to inarticulacy in our search for knowledge and knowledgeable people.

Unfortunately, when faced with someone’s inarticulacy, we may lack the necessary empathy and charity in our interpretation and exploration of their view. Since I think you don’t have the whole picture, I hope you have the integrity, humility, and wherewithal to temporarily refrain from playing these kinds of fallacious cards:<<ref "2">> 

* You are playing semantics.
* You are simply justifying your behavior.
* You are rationalizing.
* By asking me to understand your point of view, you are asking me to revolve around you.
* Being philosophical doesn't really matter.
* Be practical.
* Get over it.

If this is all you have to say, then the conversation is really at an end. 

In being charitable, you have to 

I'm not asking you to revolve around me. I'm not even asking you to be Straussian towards me (I'd like to think I'd be worth the time still). But, I do need your charity.

I hope you take my inarticulacy with you seriously, and I hope it inspires continued patience and charity in your interpretation. I'm doing my best. That may not be enough. In any case, I believe you have often been patient with me in this respect, and I hope you will continue. At this point, I take us to be engaging in a classic tit-for-tat strategy; a theory I admire because of its empirical strength in generating utility. Patience for patience; charity for charity. If relationships are like bank accounts, we need to make similar deposits to rebuild equity and trust in each other. 


Carnegie-Mellon university professor, empathy for those with depression, who aren't neurotypical. We can't have empathy. 


<<footnotes "1" "There are exceptions.">>
<<footnotes "2" "That isn't to say I'm not guilty of any of them, but I don't think you are qualified (nor anyone else) to reliably distinguish when and where I've made these mistakes in such a large context. It's an intractable postmodern and Matthew 7:5 kind of problem.">>
I have nothing from this time period except a handful of artifacts, such as my fabled bunny blanket (which I still use from time to time). All I have are my and others' memories about it. My goal here is to give an explanation of my childhood. A sketch of my past would be useful. It can be filled in drop by drop.

Like Dennis Reynolds of IASIP, I fear I'm forced to compose dossiers of my family in order to give context to myself.

* My First Family
** [[h0p3's Dad]]
** [[h0p3's Mom]]
** [[JRE]]
** [[AIR]]



* 1985-1989 -- Chicago, IL
** I was conceived because my mother is allergic to latex. 
** We lived in the ghetto Humboldt park region. Apparently, it was very rough. 
** My parents finished up at Moody Bible Institute. We eventually moved to Louisville, KY so that my parents could attend Southern Baptist Seminary. 
** My dad found a job making good money as a problem-solver/maintenance/fixit man at an IP-rights violating manufacturing facility.<<ref "1">> Many years later, he would regret not having stayed at the job to save money. Their financial planning was poor, and my mother was never very good with money until much later in life.
** My brother, [[JRE]], was born in the same hospital as I was about 17 months later. He apparently didn't breathe for a full minute after birth. It was the longest minute of my parents' lives.
** I don't remember anything of Chicago at this age. I passed through it many times growing up, and I have fond memories of the ethnically divided areas of town. The food was always amazing.
 
* 1989-1991 -- Louisville, KY
** We technically had lived in Tennessee for a month (and possibly Texas too) before this. I do not know the timeline.
** I remember a bus that my evangelical grandparents (from my dad's side) left to us or something.<<ref "2">> They went to convert those poor USSR communists in Russian during the 90's, lol. 
** I remember my mother's mother visiting on my 5th birthday. We had a slip'n'slide.
** I remember finding needles in the dumpster behind our house.
** Our car caught on fire; the neighbors took us in to watch Bambi while the firefighters took care of it. We had a Yellow Ford Escort and $500 run down blue Toyota with 200k miles on it. 
** I attended a private school for a short time. It was the last serious education I received until college.
***  I puked creamcorn there, and I could never eat it again without being forced to.
** I befriended my bully, and we went to McDonald's. I came back with a happy meal clear bucket that I used to catch fireflies that night.
** I remember being chased around the bed peeing my pants as my dad came to hit me. This happened several times.
** I remember my dad working late at Holiday Inn as a maintenance man of some sort. We'd pick him up very late at night. 
** My parents thought they escaped evangelicalism, but really they were just moving to less insane variants of it.<<ref "3">>
** My youngest brother was born here. The tubes were tied.

* 1991-1992 -- New Haven, KY
** My dad got a job as a pastor of a Baptist church. I don't think he appreciated that they could vote him off the Island (hence part of our move to Methodism).
** My mom was finishing school. She slept very little.
** We lived in a parsonage close by. The church was small. I remember candles and drinking a Pepsi that had cigarette ashes in it. 
** We were right next to a train station of sorts, and our next door neighbor was a conductor I believe. We got to see the inside of the train once. 
** Our neighbors were our babysitters after school. 
*** I saw my first tit on a poster in their house (a young man's room that I wasn't generally allowed into). 
*** I tried to make pop-tarts, but left the foil wrapper on. Sparks in a microwave.
** I remember a very serious bike accident there.
*** I had serious anger issues with my bike and legos, IIRC.
** My teacher would put on lipstick and kiss kids on the lips if they misbehaved.
** I was a badass who wore shades and a Michael Jackson glove going to the chalkboard to solve math problems. I wrecked everyone, punk. ;P
** They had me do the morning announcements (which they normally didn't let first graders do).
** I remember being told not to touch any stamps in the area because someone had been lacing them with LSD. It's a damn shame I never got a hit. 
** I felt those weird chest pains at this age.
** I remember going to someone's house without permission after school. It freaked my parents out. I didn't understand why.
** There were serious parties in the lot/field in front of our house (right next to the train station) every weekend.
*** Speaking of which, I've always lived at least within earshot (if not line of sight most of the time) of a train.


* 1992-1997 -- Mannsville, KY
* 1997-1998 -- Red House (Richmond, KY) & Wilmore, KY
* 1998-2003 -- Elizabethtown, KY


----

<<footnotes "1" "I'm sure this is part of the reason for my dad's inability to accept that standard IP legal rights are ultimately immoral.">>

<<footnotes "2" "I am quite aware of the irony and similarity between the [[Pipevan]] idea I have an what my grandparents did. It's the nature of people who don't fit in. I think there are plenty of relevant differences and goals here too though.">>

<<footnotes "3" "Oh, Poisonwood Bible, you were a tough read.">>
These are childish pranks and vandalism. 

* For those who still have desktop icons or apps (loo-uh-zers ;P), screenshot, wipe it clean, replace. Watch them click on what only appear to be icons. Lulz.
* Modify sounds clips/files. It is incredibly annoying. 
* Fake dialogues, menus, popups, warnings, etc. are also useful.
* Spam of any variety is hilarious.
* Switch input devices or displays.
* Macro, extensions, or mods which replace text or images with preset trollspam (messaging apps, writing tools, browsers, etc.)
* Ctrl + Alt + direction arrow to flip the screens different directions (rotation in graphics card software works too)
* Tape over mouse sensor, or partially breaking the functionality of input devices.
* Scripts in startup to do something silly; scheduling works too.
* Rickrolling
* Switching buttons on keyboards to spell bad words
* Settings passwords on screensavers, logins, or anything...good times.
* Change a BIOS setting or two. Be nice.


I'm strongly convinced that any kind of computer which duplicated the human brain will experience the things I'm experiencing. It is obvious that it will have a mind like ours, a consciousness like ours, etc. Androids built perfectly are fundamentally no different. Sci-fi Redpilledness knows this. See the experience machines, especially [[The Matrix]] and [[Westworld]]. I believe the China Brain obviously shows us that we consciousness is having the right kind of neural network; the right kind of computer and programming. That's it. Daniel Dennett is correct. 

Beyond that, we should see that reality simulations, like The Matrix, are completely plausible explanations of our existence. For now, we have to be agnostic about them. It may be possible to test The Matrix though. If it is just a computer program, and we're living in it, we are each just data representations and numbers being crunched by the Theory of Everything Laws of Physics algorithms which comprise the simulation, then we must at least be open to the possibility that the program is not well made. 

If the program is not well-made, if it not perfectly designed, it could be insecure. The universe, as a program, may actually have the ability to be hacked. Maybe there are physical buffoverruns, maybe there are various memory hacks or ways to fuzz ourselves into escaping the virtual machine. Perhaps we can hack our universe and machine running it. Maybe there is a "transcendental" to be hacked. If we live inside a giant VM simulation, maybe we can escape that sandbox.

Having a programmed world, of course, does not mean there is a programmer. Thank you philosophy of religion.

Of course, only physicists could get there (except the fuzzing part, which, in a way, anyone with sufficient power might bruteforce [but that would be a very weird religion]). Who else would have the means to hack the universe? You'd need to fundamentally understand it at that level.
An example redpilled, Darwinian view of the evolution of a Christian meme would be the pressure on girls (but not really boys) to remain virgins until their wedding night. Obviously sexist, but obviously has a utilitarian algorithm in it for modifying behavior that is successful enough that it continues to replicate itself as a meme through the minds of those who call themselves Christians (and otherwise). 

What is the redpilled reason for the addictive nature of these memes? 

In this case, it is obvious that some women have historically agreed to the meme "Why buy the cow when you get can the milk for free?" This redpilled meme has existed (and still does) in various Christian meme networks for millenia now. It is about understanding human nature at its core. It is an acceptance of the fact that we are all, to some degree, on the dark-triadic spectrum (which, to me, just is the psychopathy spectrum). It is a way to be utilitarian even in faith. 

It is interesting to see the Redpilled nature of the Bible. I'd love to see a redpill interpretation of the Bible, actually. I'm certainly not qualified to do that, and I doubt anyone is.

Those things which didn't add up to me growing up, which didn't make sense, there are good explanations for them, generally redpilled explanations. 

-----------------------------

One of the reasons Christianity has been so successful as a memetic network living through the societies over time (evolving only when it faces extinction), is that it had this ultimate trump card in Christian action. When one followed through on Christ's call to turn the other cheek, when one forced the executioner, oppressor, enemy, or sinner to face their victim so thoroughly, one had a non-trivial chance to affect change, to convert others, to force mirror-neurons to fire off in empathy for the victims. Essentially, love and empathy from the victim is so unexpected that it forces the human adversary to see The Other as human for even the briefest of moments (at least in some cases). Empathy begets empathy at least 1% of the time, and it does so in places you wouldn't expect. 

Christianity is a mental virus (I've long thought "Viral Christianity" would be a good book title). It is incredibly potent. It is why it spreads so effectively under oppression. The [[Christian Memetic Network Organism]] thrives as a parasite in the poor. It really is the opiate of the masses. It fits the conditions just right.

The "Body of Christ" is literally the persistent identity of the Christian Memetic Network that has parasitically lived for thousands of years through human societies and individual hosts. As a crucial philosophical belief I take up: I think viruses are living creatures, but that means memes are living creatures. Thus, the Body of Christ is literally a living thing to me. Neat, huh?

Modern victims are silent victims though. Truly silent victims in the face of hardcore psychopathy cannot effectively transmit the meme. When you had to face your oppressors in person, when punishment was handed down in person, when the pain on your face could be seen, when it was obvious and direct, the Christian empathy transmission method had a chance to succeed. As we race toward a Solarian-like  world (Asimov), as "The Stack" complexifies our world until no one understands even the outline of what it is, as we approach whatever Transhumanist singularity there is, as the [[Hyperclass]] continue to insulate themselves out of reach, it becomes less and less likely that anyone will actually really see our suffering. We aren't turning our cheek to anyone IRL anymore. The machinations and middlemen and processes which draw and quarter us are automated, done silently and privately, are too difficult to comprehend by the human mind. The source and causes of human suffering are too far removed for the Christian Meme to actually revolutionize anything. 




//See first: [[About, a.k.a. The Opening of the Rabbit Hole]]//

Both occasional and first time readers should pay attention to this page. Note that much of wiki functions with or without KIN and RPIN. This is a specialized narrative.

This is the chronology of the major dialogue between KIN and RPIN on this wiki. Imho, KIN and RPIN form a decision procedure and motivate progress. Perhaps they are an internal form of A/B Testing for me. Here I hope to capture the major movements in my to-and-fro philosophical positioning over the course of time. I should document what feels like the right timeline to me. This is not guaranteed correct, but it is close enough. Sometimes the dialogue is embedded as tags, otherwise as quoted dialogue, and sometimes (unfortunately) embedded in the standard writing and organizing of the wiki itself. Nothing is ever simple, and this is an obvious oversimplification. It represents my long-term train of thought and wrestling. Of course, we could programmatically see the changes as well. But, this is my philosophical metanarrative on this wiki as I see it in broad strokes:

# [[2016.10.17 -- Letter to Mom and Dad]]
# [[About, a.k.a. The Opening of the Rabbit Hole]]
# [[Meditations and Deliberations: 1]]
# [[Adult Children of Alcoholics]], [[Self-Medication]], [[Live Each Day Like It’s Your Last]], [[Residual Christianity]], and [[Arguing Against Reason]]
#[[2017.01.10 -- Letters with R]], [[2017.01.16 -- Letters with R]], [[2017.01.17 -- Letters with R]], [[2017.01.23 -- Letters with R]], [[2017.02.05 -- Letters with R]], and [[2017.02.06 -- Letters with R]]
# [[Realpolitik Speculation]]
# [[Meditations and Deliberations: 2]]
# [[Socialism]]
# [[2017.02.12 -- Letters with R]]
# [[Social Darwinism]]
# [[Metamodernism]], [[Positive Nihilism]], and [[The Ring of h0p3]]
Your nails have gotten nastier than usual since you've been working in the shop. You keep cleaning them, poorly. It's time to amp it up. Try to make you nails something you are vainly proud of, even if you think vanity is stupid. You are vicious, and you must overshoot the golden mean, to other side of virtue into the excessive vice. Only then will your akratic will hit the mark.
```xonsh
#!/usr/bin/env xonsh

# You can set an alias: 
# echo 'alias alarm="~/alarm.xsh"' >> ~/.bashrc
# source ~/.bashrc

from time import strftime

while True:
    try:
        # Take them inputs, biatch
        print("")
        z = input("Your name: ")
        print("")
        x = int(input("In minutes, how long should the timer be? "))
        print("")
        y = input("What are you timing? ")
        print("")

        # Generate the text to speech string
        string = '"' + z + " set the timer for " + y + " on " + str(x) + " minutes."  + '"'
        print(string)
        print("")

        # Check Kodi, then make HTPC talk
        kodicheck = $(curl -s --data-binary '{"jsonrpc":"2.0","method":"Player.GetProperties","params":{"playerid":1,"properties":["speed"]},"id":1}' -H 'content-type: application/json;' http://192.168.1.100:8080/jsonrpc)
        if kodicheck == '{"id":1,"jsonrpc":"2.0","result":{"speed":0}}':
            espeak -s 120 @(string)
        else:
            curl -s --data-binary '{"jsonrpc":"2.0","playerid":"1","id":"1","method":"Player.PlayPause","params":{"playerid":1}}' -H 'content-type: application/json;' http://192.168.1.100:8080/jsonrpc
            espeak -s 120 @(string)
            curl -s --data-binary '{"jsonrpc":"2.0","playerid":"1","id":"1","method":"Player.PlayPause","params":{"playerid":1}}' -H 'content-type: application/json;' http://192.168.1.100:8080/jsonrpc

        # Record log of this action
        current_time = strftime("%Y-%m-%d %H:%M:%S") + " -- " + string
        echo @(current_time) >> .alarm.log

        # The Timer + Console messages
        for i in range(x):
            sleep 60
            print(str(i+1) + " minutes on the " + y + " timer has passed.")
        print("Times up!")

        # Generate the text to speech string
        endstring = '"' + z + "s timer for " + y + " is up" + '"'

        # Check Kodi, then make HTPC talk
        kodicheck = $(curl -s --data-binary '{"jsonrpc":"2.0","method":"Player.GetProperties","params":{"playerid":1,"properties":["speed"]},"id":1}' -H 'content-type: application/json;' http://192.168.1.100:8080/jsonrpc)
        if kodicheck == '{"id":1,"jsonrpc":"2.0","result":{"speed":0}}':
            espeak -s 120 @(endstring)
        else:
            curl -s --data-binary '{"jsonrpc":"2.0","playerid":"1","id":"1","method":"Player.PlayPause","params":{"playerid":1}}' -H 'content-type: application/json;' http://192.168.1.100:8080/jsonrpc
            espeak -s 120 @(endstring)
            curl -s --data-binary '{"jsonrpc":"2.0","playerid":"1","id":"1","method":"Player.PlayPause","params":{"playerid":1}}' -H 'content-type: application/json;' http://192.168.1.100:8080/jsonrpc

        # Record log of this action
        current_time = strftime("%Y-%m-%d %H:%M:%S") + " -- " + endstring
        echo @(current_time) >> .alarm.log
        
        break
    except ValueError:
        print("Oops!  That was not a valid number.  Try again...")




```
People realized I was autistic as they read my posts, that I was obsessive about it too.

I'm actually proud of the way I played that game. I did it really well. 



//[[AIR]] and I should do this.//

* Unlimited bar
** We make our own alcohol: beer and liquor
*** We charge for mixed drinks
** Free cheap food
*** We still charge for premium food
*** Soda, alcohol and nice semi-disposable washable cups are cheap.
*** Celebrate grain alcohol!
* Members only (but anyone can join)
** Third-party arbitration clause
** Sign a permanent and complete liability release waiver to join the club
** They can lose membership for any reason with no recourse.
** Sign a contract which enables us to escort them off the premise for any reason whatsoever
** Setup legal financial accounts when joining the club
*** If they are charged a fee, then they legally owe us that money
*** Users must still earn the right to have a tab/credit-line
*** Background checks to make sure we think they can pay
**** This requires a waiver too
* How we make money:
** One-time Membership Fee (Joining Deposit Insurance fee)
*** This fee could just be folded into the entrance fee. Much thought will need to be given. 
*** Calculate a reasonable max cost they would owe. They have to deposit it as a form of trust. If they are ever removed as members, this deposit covers it. 
** Upfront Entrance fee
*** We need to know average costs of each night. We can chart and calculate this. It will be adjustable or scale. 
*** Loyalty bonus. The fee costs less each time you come. 
**** This offsets costs going up.
**** Linear ride into an exponential curve bottoming out towards the "at cost" line (or at least a minimum profit line)
*** Perhaps we can stagger how their credit-building works in a tit-for-tat trust building game.
** Clean-up fee (contingent/conditional)
*** If you puke, defacate, or must be escorted off the premise (for any reason), then you must pay a very serious fee.
*** For anything you break, you are financially responsible for paying for its replacement.
** Take-your-drunk-ass home service fee
*** We can have our own designated driver taxi service.
*** We make the final call on whether or not you are too inebriated (to have more to drink or to have enough to drive).
*** We will test you with a breathalyser. 
**** Need cheap consistent breathalyser methods.
* How do we make cheap entertainment?
** Video games are retarded cheap. Have a free arcade. 
** Computer and Desk Cafe
*** Multi-seat computers
* Do we have different sections? 
** Arcade Room
*** Users could pay for accounts on the computers.
** The Blast Room
*** Loud, danceable.
*** Sound proof rooms.
** The Analogue Lounge (hipster and luddite af)
*** Modern art and books
*** No devices allowed (They must be given to the host), or faraday cage the room. 
** Tabletop Room
*** MTG, board games, DND, etc.
*** Jenga, Twister (permanent), 3D-printed games, Cards Against Humanity, Actual playing cards (with rules available)
** Dining section (quiet)
* We need an aesthetic. What will it be?
* We need a schtick. What will it be?

Of course, we need to consider to how to build moral business structures first. The socialist worker cooperation corporation model.


Who do we need to run this?

* We need someone who handles legal, financial, executive planning, etc. Someone who implements the will of the people.
* We need muscle, bounce, and man-handlers; these should also be our designated taxi drivers.
** We have a cage to take the shitty ones home
** We need handcuffs
* We need hosts, cooks, drink-makers, and clean-up staff.
* We need someone who plans and executes the culture, entertainment, the technical components, the social atmosphere, the aesthetic, the culinary aspects.

Staff should be cross-trained as much as possible. We should have designated training during each day. Everyone should learn to do as much of everyone else's jobs as they possibly can. Make it easy for people to be replaced (even if only temporarily). Make it so everyone is worth the same amount. Make it so we all deserve an equal cut of the profits.  

Other random thoughts:

* Mandatory voting, transparency, and internal conflict resolution at the end of the day. We need to be on the same page and share the same vision.<<ref "1">>


---------------------

<<footnotes "1" "However hippie it may sound, I think that corporate reflection is very valuable when done in a disciplined manner.">>
```bash
#!/bin/bash

# Update packages list
sudo apt-get update

# Install the needed prerequisites
sudo apt-get install -y git build-essential g++ cmake \
    libprotobuf-dev protobuf-compiler \
    qt5-default qttools5-dev qttools5-dev-tools \
    qtmultimedia5-dev libqt5multimedia5-plugins libqt5svg5-dev \
    libqt5sql5-mysql libqt5websockets5-dev

# Get a copy of Cockatrice's source code
git clone git://github.com/Cockatrice/Cockatrice

# Create a directory to host the build process
cd Cockatrice
mkdir build
cd build

# Configure the build
cmake .. -DWITH_SERVER=1

# Compile Cockatrice and build a debian package
make package -j

# Install the package
sudo dpkg -i Cockatrice*.deb

# Hotkey problem fix
sudo apt-get remove appmenu-qt5

```
* [[CLI Alarm Clock/Timer]]
Collect, catalog, organize, and listen to music you care about. Even if relativism is true, it is prudent to activate the parts of your brain which care about //what// music you are listening to. Care about your aural experiences. Don't rely upon Pandora. That's lazy. That's not what curation should be. Do not put yourself in that bubble. Escape it! You've gotta earn it.
* You can do everything right and still end up losing. 
** Shit happens.
** It is possible to commit no mistakes and still lose. That is not a weakness; that is life.
** Your best is sometimes just not good enough.

* It isn't possible to make everyone happy.
** You don't have to light yourself on fire to keep other people warm.

* Love is conditional.
** You can't make someone love you.
** Someone who has loved you may stop one day and find someone else.
** Relationships fade.

* Few people actually care about you.

* You can't change the past.

* You don't choose your family.
** You don't have to like your family.
** You don't have to love your family.
** Blood doesn't make a person your true family.

* You're the only one who can stand up for yourself. 
** Never predict anyone else to stand up for you.

* People change, and they often become someone you never thought they would be.
** People generally don't change into who you wish they would become.

* You cannot help someone who refuses to help themselves.

* Looks matter.
** While appearances are deceiving, we still judge books by their covers.

* //It// doesn't always get better.

* Life has no inherent meaning or purpose. 
** You have to create your own reason for existing.

* The trust you have in anyone can be broken at anytime.

* Justice is rarely if ever served, and never completely at that.

* The world is an awful place, and there is little to nothing you can do about it.

* Nobody is perfect. No one is even good.

* You are just a piece of paper to a potential employer.

* We lie to each other and ourselves.

* We use each other.

Here's what I'd like to accomplish. They are intermediate goals. 
//Oh, monster-Φ, you were my first love, and hopefully my last drug.<<ref "1">>//

<<<
Yes, I love technology. But, not as much as you, you see. But, I still love technology. Always and forever.

--Kip Dynamite, Napoleon Dynamite
<<<

This wiki-page is for all things computing, mechanical or abstract, human or silicon, and otherwise. That may sound odd. I'm not sure what doesn't count as computing or what isn't computed. Perhaps everything which is intelligible is by definition computable. Of course, many will worry that I broaden the meaning of computing to a point of absurdity, where the word itself no longer retains particularistic enough meaning that we can usefully wield it. I don't know what to say to you besides, look and try to see it again.

Programming a computer is about getting the computer to do what you want it to do. It's that simple. Do you have a goal? You've intersected with computing. Computing is deeply telotic. Ultimately, I take computation to be deeply related to Aristotle's God (my gut says that Spinoza isn't useless here either). Of course, being me, I would think and feel that way.

Traditionally there are different languages used to //program// a computer (in the ordinary sense of the term). The folks writing in an assembly instruction set, C, Python, or Brainfuck are certainly programming for a particular set of computers (for a specific compiler/interpreter and hardware architecture). Those belong to a specific class of sequential inputs to a computer. There are other kinds of "inputs" though and thus other kinds of programming.  The person who uses their mouse to provide inputs to navigate to a website has programmed their computer in a trivial (for them) way. Computing is a rich epistemic environment and //techne//. As such, computer users need to use and produce their data and algorithms (very generalized notions here) by using the right tools, frameworks, paradigms, and abstractions. We should become the best, well-rounded computer programmers we can be,

It must be said: humans are computers. We are programmable. We have to get ourselves to do what we want ourselves to do. We need to wisely program ourselves. That is what this wiki is about, after all. Thus, we should become the best, well-rounded self-programmers we can be. This very inclusive definition of programming reminds me of one of my most inclusive definitions of the concept of philosophy I've encountered. Because I can't put my finger on it for you (my virtues won't translate nicely to yours), I'm left saying something unfortunately nebulous: it is quite practical for being so theoretic.

Given the broadness and difficulty of the topic, I fear that I will put myself in a bind if I artificially limit the scope of this page or force categories beyond what feels natural. I'm going to go with the flow. While the organic may be ugly, I'm hoping a rhyme, reason, and method to the madness will emerge.

* /b/
** [[Computer Planning]] 
** [[Stupid Ideas]]
** [[Computing Log]]
** [[Childish Computer Pranks]]
** [[Frugal Computing]]
** [[Physically Pwning a Computer]]

* Coding
** [[Coding with my Daughter]]
** [[Autohotkey Scripts]]

*Linux & POSIX-Compliant OSes
**[[Crontab]]
**[[Linux & POSIX-Compliant CLI One-Liner Tricks Collection]]
**[[Linux & POSIX-Compliant CLI Tool Collection]]
**[[Linux Scripts]]
**[[Ubuntu 16.04 Desktop Post-Installation Root Script]]
**[[Ubuntu 16.04 Desktop Post-Installation User Script]]

*Piracy
** [[Annotated Piracy Tools, Networks, and Sites Collection]]

* Questions about Computing
** [[Why don't we all go NaCL for every service?]]

* Self
** [[Autism and Social Technology]]
** [[Self-Hacks]]

*Web Browsers
** [[The Art of Bookmarks]]
**[[My Browser Bookmarks]]
**[[Google Chrome Extension Collection]]

* Wiki
** [[This Wiki's Host's: lighttpd.conf]]
** [[Wiki Scripts]] 

*Windows
**[[Windows Tool Collection]]

* Musings
** [[2017.04.22 -- Computer Musings]]
** [[2017.06.16 -- Computer Musings]]


---

<<footnotes "1" "monster-10 and monster-13 are my current machines. I have a long line of second wives.">>
* [[2017.02.17 -- Computing Log]]
Without evidence, I posit that that one cannot be fully happy if one is moral. In fact, maximizing happiness requires one not to be moral to some large extent.
I take conscious experience to be a special mode of phenomenological observation (unfortunately, even your decisions are made seconds before you consciously realize and can attend to them). Our subconscious self or selves are actually the higher-ordered consciousness, and they work on this lower-ordered consciousness, present it narratives and phenomenological appearance, and give it reasons. Perhaps consciousness is a virtual machine inside our subconscious hosts. In any case, we want our virtual machines to have a rocking experience.

I am an organism with multiple minds (computers), even though I only directly experience one of them. That sounds fucked up. But, I think that's the way humans really are. I think that's what makes us sapient and sentient in a fuller way than many other of the "higher" animals. We rely upon multiple organisms to exist (see our gut and skin bacteria), so why not multiple minds?  

I'm a biological computer with limbs and many systems. I hope I can be a happy conscious computer. 
//Please, feel free to Slide into my DMs//

If you feel it necessary, please feel free to anonymize yourself. I pay attention to writing styles, so if you really care about your anonymity in this case, please obfuscate that as well.

!!Current:

Email Address: 

```
h0p3@protonmail.com

```

Tox:

```
FDD7005639C618263AB2EEDAB974F7576C7C0DED6217EED9E9DC0344C622E72AEEF7055F8B4D
```

Tox (secondary):

```
9B3332268D73E388C6992EDB7A4FFE5A83848BD7AE3D0819F01C403F493D0D15B1596C722CEE
```

XMPP (OTR-enabled):

```
h0p3@jabber.at
```

!!Deprecated for now:

Bleep:

```
e507272304bcf58c9e979ad8fa4de8c91eb6c323996cd4b86e7b55b5d9af7966,h0p3
```

Retroshare:

```
CQEGAcGVxsBNBFgvW98BCAC1xxe6bD7Jk4wxDVturkmAMKYM4K19YdXROa5Lrk8A
9ls3eWHKf8p79h1bMSeks44ZhxRnnAeb30661u4nXR9waa0MekpjL4RwTB77tUAY
y72WDcDnf2zx9HmojAJskbls3PgG5Ev01D6nKdGj3/v9sPABRMhSYf4rPM4y2l2/
wUJDzJWI8O6ZLQT6l/bOr0NHbzDeJr0hTPP0WPEfJ4AeLyvvEfrp+7Dba3Rbi+LW
tac+VSk3uLghtYu91IMSJwYqmTBRacLYI/4jASJLNWGpDWmRgd4aCtyuSAJp6UtG
zHti3pID6Yv8dgVqMFra+kTd2oLXgJ2zPF6zyXVrFShRABEBAAHNIWgwcDMgKEdl
bmVyYXRlZCBieSBSZXRyb1NoYXJlKSA8PsLAXwQTAQIAEwUCWC9b3wkQHCou05du
uj0CGQEAAHpwCACO+0S7YSR/d0D/U49Ny9jrvgr2Vw9RuYeOHr1mtbjxNgJQx/rZ
mkLfEQ/jCWcbHreWplRVYrjf9I3FZHSikUe9SZps6NsEqgTksD5rLWo/B6CDf0ft
sXdsP28LiW2VE5SOoEsV3FhE6gAm/GJ/lRIFHLu95+oRCqm691wagWYYbA/y3x/l
Jr7ZYYkwB6WmSGUBBXfJZLy+YfINqi7h0Gx9tLnXDiEPLpDls4qxjAeCKME8WwJP
A6p1yUjXpX7M/J4MrAMIrjcsitO/YNMTXc8PaLN2NK12H9PM1R5Vdn3ArwV/WM2z
gFfU5LZqirdkdU4b73sbYIi2OwVbw1gJTdynAgZLgibzlOUDBqn+1D2U5QQABgNt
MTAFELOHBdaBMZxZDTSJoPI+d6UHAyoBlw==
```
I have specifically asked for counsel from a particular family member. That said, anyone is free to message/e-mail me. Do you have an antidote for me? Do you need to poison a network of my thoughts, to destroy a configuration of memes and their generators inside me? Do you have an answer or problem for me to consider? Then tell me. I am committed to listening. ("Screencap!") 

 If you're actually reading the wiki (and that makes you weird, because this wiki is crazy, but I thank you), then I'm interested in what you have to say about it, about my life. Let's test whether or not I'm applying the CI. You have the ability to see if I'm putting my money where my mouth is.

I will be posting your responses, but sanitizing privacy-based information. 

If you feel it prudent, use a throwaway account, Tor Browser (or Whonix), and mask your writing style (and carefully select your content) if you wish to anonymously contribute or ask me to think about something.
I have chosen to be a pipefitter because it runs in my family, I respect the work, and I want to be a craftsman. I enjoy working with my hands; I love looking back at the end of the day and being able to point to something and say to myself "I made that." Pipefitting is honest and satisfying work.

I will soon complete the pipefitting program at TCAT Elizabethton. I'm currently finishing the third NCCER pipefitter training book and exams. I've built several dozen spools with screw pipe, socket welds, and buttwelds. I've also fabricated laterals, saddles, and supports. I have been lucky enough to practice structural welding in my spare time in the shop, as well. Working on our 3D simulator where we draw our isometrics, build the spools, and mount them has been the most rewarding part of the program. In addition to the practical work in the shop and NCCER training certifications, I've earned my OSHA-10 and NC3 Torque certifications.

I am ready and eager to start working, and I hope to hear from you soon about joining your team.
//I dedicate this page to Baruch Spinoza who would surely appreciate what I'm trying to do, even if he might have thought I suck at it.//

I suppose I'm taking up axioms. I'm creating my own faith in those beliefs I take to be justified without at least any direction justification, as all people do (whether they realize they are or not). I'm seeking to take up axioms which make the world coherent and myself happy. I have no interest in standard religious thought, spiritualism, or even thick conceptions of metaphysics. Faith need not be religious. Your Faith boils down to the set of beliefs you can't easily be convinced otherwise about (generally in such a way that few people would accept your justification). Be minimalist! Take up only what you must. Good luck!

* [[2017.04.10 -- Redpilled Platonic Philosophy]]
I'm started this log because crying is a unique and particularly strong kind of emotional reaction which I must catalog and analyze. I started it during a week in which I cried 3 times. That is far above average. I want to understand why I cry. Crying isn't necessarily a bad thing, but it is a powerful thing. My gut says it is a good thing to let it out, but I fear that I do not have control of my emotions. 

I will write a short ditty about the episode, cause, and my thoughts on it. It may not go anywhere, and that's fine. For now, I will assume it is valuable to capture at least something. I'm doing ghetto science.

What causes me to cry? Being overwhelmed, especially via profound existential cognitive dissonance, frisson, catharsis, and/or woe. 

* [[2017.05.21 -- Cry Log]]
* [[2017.05.26 -- Cry Log]]
* [[2017.05.27 -- Cry Log]]
* [[2017.06.03 -- Cry Log]]
* [[2017.06.04 -- Cry Log]]
* [[2017.06.18 -- Cry Log]]
* [[2017.06.21 -- Cry Log]]
* [[2017.06.29 -- Cry Log]]

This does appear to have significant overlap with the duties I've assigned to [[h0p3's Log]], but my gut says there is something specific here worth categorizing in itself.
The goal is to build a scaling casino in which you can gamble in any cryptocurrency. New currencies come and go, and we should make it easy to accept them.

Gambling in cryptocurrency seems like a worthy enterprise. I can only see it getting bigger. Regulations would be low or impossible. Access could be difficult, but theoretically high. I believe the online casino business is going to be huge, and it is going to be extremely cutthroat. For all I know, it already is. I think it is still in its infancy though (if only because cryptocurrency is still young). In many ways, other kinds of games, even mainstream games, have gambling already embedded in them; they don't use cryptocurrency though. They are subject to sovereigns that we an avoid if we plan correctly. They will not be without problems though.

Casinos are going to torpedo each other, DDOS, attack, etc. Security will be very difficult in some respects, and yet, there are many tricks. One of the goals of any casino will be to completely isolate the actual payment processor from the client/UI which is accessed by a gambler. In a way, we want the client to be spammable, benign, useless to attack, easy to setup, and powerless to influence us. The actual payment processor, where the random rolls happen and where we send and receive money, needs to be deeply hidden. Layers of darknet would be useful here because anonymity is key. There are a ton of Opsec problems too.

Getting people to use the casino has tons of problems. There is likely a significant psychological element to getting the right rewards payoffs, flashing delights on the screen, etc. One worry is that instant gratification is key, and that damns my plan entirely. If so, then gambling will require them buying digital "chips" (our own currency) to bet with. They could then "cash out" whenever they wanted to. That lacks trust, I think, but it may be very profitable for some.

Further, we should just keep all transactions for each currency on a ledger. We can show each bet, the ID of the transaction, with win or loss. If they win, we send the twice the money back to that wallet. If they lose, we keep the money. This ledger shows up in the client UI. It's a way to demonstrate the fairness of the casino, to show transactions in real time, etc.

There are many kinds of betting patterns. Let's stick with a classic one. Casinos which appear to be "provably" fair (49.5/50.5, or something like it), will be trusted. The goal is to create a casino that appears to give you 49.5/50.5 odds of winning any bet, but to be far more unfair than that at the right times to maximize profit. The odds of winning and losing need to scale with the ratio of the size of bet given the total amount of money the casino holds. As a bet approaches the total, the odds of them winning must decrease exponentially. Essentially, small bets should win more often than big bets, the smaller the bet the more likely it is to win, and the bigger the bet the more likely it is to lose. Importantly, it needs to be hard to see it in the numbers. People could analyze the ledger and try to spot patterns. We need to make it difficult to see. 

Consider an instance of betting. Say the bet amount is B, and the total funds available to the casino is T. If B >= T, then they automatically lose. We can't or won't pay it. They lose on the spot, and we have at least doubled T. 

Importantly, the odds of winning need to continually shift to try to align the W/L ratio to 49.5/50.5. If the current W/L ratio is 49.5/50.5, then our unfair curve is normal. But, if the W/L is 45/55, then we need to change our unfair curve to be far more fair. In fact, for low end bets, it should be quite favorable. A minimum bet might, for example, have 75/25 odds to win! We would literally be paying our minimum betters for the opportunity to normalize the W/L ratio. It's vital that we push up that 45/55 winloss ratio towards 49.5/50.5 in order to appear fair. Honestly, the curve only needs to be normalized in one direction. I don't see us having a problem in the other direction ever.
Official distributions of h0p3's Wiki include checksum and signatures files for verifying the integrity and authenticity of your copy. These verification files are updated for every published edit (nearly real-time). With these files (and the right tools), you will be able to cryptographically verify the entire wiki, which is contained in a single html file (index.html). Let's hope this is never directly useful to us.

I previously used PGP (GnuPG as my last tool) to sign this wiki.<<ref "1">> PGP has to be one of the worst "best in class" toolsets I've ever used. I hate the software ecosystem, its unusability and incompatibility, as well as its poor logistics and social design. I've wasted far too many hours over almost two decades on that piece of shit. I'm moving on. 

Instead, I'm cutting out the middleman (fuck you, PGP) and more directly using the crypto library I actually trust. I now generate signatures through [[PyNaCL|https://github.com/pyca/pynacl]], a gorgeous binding to the state of the art [[NaCL|https://nacl.cr.yp.to/]] crypto library (imho, we are rapidly moving into a cryptographic monoculture relying exclusively on the NaCL algorithms).<<ref "2">> I believe my key will be useful until quantum computing becomes feasible.<<ref"3">> When PGP is actually functioning, it buys the same verification as my process (they use the exact same library). The difference is that my process is literally programmable in every major language. It's hilariously easier than PGP. You can even verify it by hand if you want to.

This wiki's public Ed25519 signature verification key:

```
5249578e4cdfaec1484f0083df3e8b6e4af0cab0288c8156c31d6e94efe58308
```

Here's how to verify the authenticity and integrity of this wiki:

If you don't already have them, download all three files (<a href="index.html.sum">index.html.sum</a>, <a href="index.html.sig">index.html.sig</a>, and <a href="index.html">index.html</a>). 

Use the Ed25519 signature (index.html.sig)  to verify the authenticity of the checksum file (index.html.sum).

You can either find/write your own tool or use mine to verify the signature. Run this script (don't forget to first install [[PyNaCL|https://github.com/pyca/pynacl]]; pip is easiest) in the same directory as the three files you downloaded.

```
#!/usr/bin/python3

import nacl.encoding
import nacl.signing
import binascii

# The verification "public" key
verify_key_hex = "5249578e4cdfaec1484f0083df3e8b6e4af0cab0288c8156c31d6e94efe58308"
verify_key = nacl.signing.VerifyKey(verify_key_hex, encoder=nacl.encoding.HexEncoder)

# Read sig file
with open('index.html.sig', 'r') as myfile:
    data=myfile.read().replace('\n', '')
signed = binascii.unhexlify(data)

# Check the validity of the signature
# Will raise nacl.exceptions.BadSignatureError if the signature check fails
try:
    verify_key.verify(signed)
    print("Signature Verified")
except:
    print("Signature Verification Failed")

```

Next, use the SHA-512 checksum file (index.html.sum) to verify the integrity of the index.html file. I suggest [[sha512sum|https://en.wikipedia.org/wiki/Sha1sum]], [[hashfile|https://pypi.python.org/pypi/hashfile]], or [[Hashtab|http://implbits.com/products/hashtab/]]. Use hashfile like this:

```
hashfile -c index.html.sum
```

Assuming you've already authenticated the checksum file, if the hash of index.html matches the hash found in index.html.sum (or if your hashing tool verifies they match for you), then you know your index.html file hasn't been tampered with by a third-party. To be clear, if you trust the signature verification of the checksum, and you trust the checksum of index.html (if the hashes match, you'd be crazy not to trust this part), then you trust index.html. Thus, your authenticity+integrity verification demonstrates you possess a bit-for-bit copy of the original signed by someone who possesses this wiki's private signing key.

-------------------------

<<footnotes "1" "You can find the old verification wikipage here: [[Retired: 2017.01.14 -- Cryptographic Verification]]">>

<<footnotes "2" "I am aware of that maxim: Don't roll your own crypto. This maxim can be applied at different levels in the cryptography process. While I openly admit my shallow understanding of cryptography, I remain convinced this is a safe exception to that maxim.">>

<<footnotes "3" "Not that it would ever matter in this case, but I'm not naive enough to think rubber-hose cryptanalysis isn't the first step a state-actor would use against me. Regardless, I still think cryptography is immensely useful to us.">>
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖//

<<<
Writing is like driving at night in the fog. You can only see as far as your headlights, but you can make the whole trip that way.

--E.L. Doctorow
<<<

Here I attempt to turn my Husserlian ray of intentionality upon itself. When I am thinking existentially in a recursive manner, I can more decisively align my many orders of Frankfurtian networks of beliefs and desires. Here I directly practice [[metaliving]] by reflecting on where and what I've been focusing on in this wiki. I need to be thinking about the state and nature of the projects I am working on from a more objective perspective, and I must wisely write my narrative. I hope this is an act of mid-term executive functioning. I do it subconsciously and indirectly to some extent, but not explicitly enough. Here I force myself to copy it down and review it at least once a month.<<ref "1">> 

Essentially, I need a constantly updating set of logs, audit trails, and a gameplan for this wiki and my life. I must hold myself accountable and strategize. I need to consider where and how I spend my time and energy on this lifetool and wisely adjust my behaviors accordingly. I hope this page gives me the material and framework with which to strategize about, organize, forecast, and redirect my focus. 

Logs are the bulk of my scheduled practices and foci on this wiki. The structure provides a significant space bound by the right mechanics for me to explore. These logs and audits provide feedback loops, and I slowly improve upon them and myself over time. As usual, even if only speaking to myself in empathy, please pardon my progress.

!! [[Wiki: Scheduled Practices]]:

#  Conditional/Triggered:
## [[h0p3's Log]]
## [[Cry Log]]

# Weekly:
## [[Family Log]]
## [[DCK Meditation Log]]

# Daily:
## [[Pipefitting Log]]
## [[Wiki Review Log]]
## [[Diet Log]]
## [[Prompted Introspection Log]]
## [[Carpe Diem Log]]

# Optional:
## [[Link Log]]

!! Vault: 

* [[2017.04.24 -- Retired: 🢔⦗Focus⦘🢖]]
* [[2017.05.05 -- Retired: 🢔⦗Focus⦘🢖]]
* [[2017.06.05 -- Retired: 🢔⦗Focus⦘🢖]]
* [[2017.07.03 -- Retired: 🢔⦗Focus⦘🢖]]

---

<<footnotes "1" "I feel it necessary to point out the infinigress I approach in this log-based introspection. I'm running into classic postmodern metanarrative and autonomy problematics. As a matter of metamodern pragmatism, I will accept there must be a foundational boundary where I stop constantly investigating and deconstructing. I will leave it to my yearly audit/assessment/review to investigate the state and nature of this page in those respects and to push further into that self-reflective frontier. I feel this strikes an appropriate balance between the definitionally impossible logistics of that infinigress and having the integrity to continue my recursive, multi-ordered executive functioning.">>

* h0p3 gets job in August
* h0p3 stabilizes finances and buys vehicle in 1-2 months, preferably a van that can be worked into a tiny home.
* By September or August we have a student, teenager, old person who would be working or chilling at home chill at our house during school hours (if they had to go to class or whatever, that's fine). We pay what we can.
* We save hard and buy a house and pay off debt.
* We save for starting a business and begin learning what we need to do.
* h0p3 finishes his Journeyman and certs for pipefitting, valves, welding, possibly hvac, and plumbing
* We start a business while still paying dues, k0sh3k quits her job and stays home to help kids and do the administrative work of the business.
* We always pay union dues, but eventually we slip away from it. We transition into fulltime business for ourselves.
* ??
* Profit
The curse of knowledge is a cognitive bias that occurs when an individual, communicating with other individuals, unknowingly assumes that the others have the background to understand.

//This wikipage has a lot of dark candy on it. Don't eat too much of it or you'll spoil your dinner.//


Dark humor is like food, some people dont have any.

---------------------------------

So I was balls deep in this guy thrusting as hard as I could when I reached around to give him a hand job. Guess what? He had an erection. What a queer.

---------------------------------

What’s the difference between Isaac Newton and the baby I just stabbed to death?

Isaac Newton died a virgin.

---------------------------------

A man is riding the bus when at a stop, the most beautiful woman he has ever seen gets on. The only problem is that she is a nun. He decides to approach her anyway. 

“Sister, you are the most beautiful woman I’ve ever seen and I must have sex with you,” he says.

“I’m sorry but I’ve given my body to God,” she replies and then leaves.

Suddenly the bus driver turns around to the guy and says, “I know a way you can get her in the sack." 

The bus driver tells the guy about how the nun goes to the cemetery every night at 9 to pray, and if he dresses up and convinces her he’s God, she might have sex with him.

That night at 9, the man is in the cemetery hiding behind a gravestone. When the nun approaches in the darknessk he jumps out and saysk "Sister, I am God and I command you to have sex with me." 

She replies "Well I mustn’t deny God. Howeverk I want to remain a virgin so I will only take it up the ass.”

The guy figures this isn’t a problem and proceeds to have the best sex ever.

After he finishes, he whips off his outfit and says, “Surprise, I’m the guy from the bus.”

With that the nun turns around and says, "Surprise, I’m the bus driver.“

---------------------------------

What’s better than raping an infant?

Hearing the ribs crack under the pressure.

---------------------------------

How did the Virgin Mary know Jesus was gay?

His dick tasted like shit.

---------------------------------

A redneck brother says to his sister, “Gee, you fuck better than Mom!”

The sister replies, “Yeah, that’s what Dad says too.”

---------------------------------

What do you get when cross an Italian with a gorilla?

A retarded gorilla

---------------------------------

How did Jesus walk on water?

Shit floats.

---------------------------------

How do you get a baby to crawl in a circle? 

Nail one of it’s hands to the floor.

---------------------------------

How do you turn a fruit into a vegetable?

AIDS

---------------------------------

How many dead babies does it take to paint a house?

Depends on how hard you throw them.

---------------------------------

What’s the difference between an apple and a dead baby?

I don’t ejaculate on an apple before I eat it.

---------------------------------

Where did Lucy go during the bombing?

Everywhere.

---------------------------------

A man went into a library and asked for a book on how to commit suicide. 

The librarian said, “Fuck off, you won’t bring it back.”

---------------------------------

Can orphans eat at a family restaurant?

---------------------------------

What’s that useless skin around the vagina called?

A woman.

(Obviously, you could replace “vagina” with “penis” and “woman” with “man.”)

---------------------------------

This joke is so dark the police shot it.

---------------------------------

There was a vampire named Mabel,
whose menstrual cycle was stable.
After every full moon,
she’d take out her spoon,
and drink herself under the table.

---------------------------------

Did you know semen leaves the body at almost thirty miles per hour? 

This means it’s illegal to ejaculate in a school zone.

I don’t think the speed was why I was arrested though

---------------------------------

Did you know Mike Tyson and Tiger woods shared a nickname as children?

Nigger.

---------------------------------

Simple Simon,
Met a Pieman,
Going to the fayre.
Said Simple Simon,
To the Pieman,
What have you got there?
Said the Pieman, 
To Simple Simon,
Pies, you twat.

---------------------------------

What does 90-year-old pussy taste like?

Depends.

---------------------------------

A lady walks into a bar and asks for a double entendre.

The bartender gives it to her.

---------------------------------

What do you get when you cross a black with an asian?

A creature which can steal cars but can’t drive them.

---------------------------------

Why was the 6-month-old African baby crying?

It was having a midlife crisis.

---------------------------------

I came home from work yesterday and caught my daughter masturbating with a cucumber.

“That’s disgusting” I said, “I’m meant to be eating that tonight, now it’s going to taste like salad.”

---------------------------------

My mom thinks I need to stop objectifying women. I think she’s overreacting.

She asked why I broke up with the last girl, and I said, “It didn’t work out.”

She told me to be more specific.

I said, “I just told you: she didn’t exercise.”

---------------------------------

I’m sick of Mexicans naming their kids Jesus. Jesus wasn’t Mexican; he was human.

---------------------------------

I saw Count Down yesterday.

He’s Dracula’s retarded brother.

---------------------------------

Your mom was gang raped by a troupe of mimes.

They performed unspeakable acts on her.

---------------------------------

A friend of mine was complaining that there’s no real comedic merit to sick jokes. In particular, my friend claimed there’s too much reliance on a relatively offensive or risqué punchline.

Anyway, we argued about it for a while, and then I raped her.

---------------------------------

What’s white on top and black on bottom?

Society.

---------------------------------

The new barman in my local pub is black. So, I says to him, “Beer please, nigger.”

He hit the roof and said, “Why don’t we swap places, let’s see how you like it.”

So, I went behind the bar, and he walked out then came back in. He said, “Beer please, honkey.”

I replied, “Sorry, we don’t serve niggers here.”

---------------------------------

A family is driving behind a garbage truck when a dildo flies out and thumps against the windshield.

Embarrassed, and to spare her young son’s innocence, the mother turns around and says, “Don’t worry; that was an insect.”

To which her son replies, “I’m surprised it could get off the ground with a cock like that.”

---------------------------------

Two Serbian soldiers are holed up guarding a hill top. After a while, Nikolai tells his buddy he is off for a shit, and heads off looking for a bush.

After 20 minutes, Dmitri starts getting worried, as Nikolai still has not returned. Time continues to pass, and, more and more, Dmitri fears his comrade has been killed.

After an hour Dmitri, decides to get on the radio and is just about to call for a unit to search for his fellow soldier, when Nikolai appears with a huge grin on his face.

Dmitri says, “Nikolai! Where the fuck have you been? I thought you were dead! I was just about to call it in.”

Nikolai replies, "Well, I went off to find a bush to take a shit in. It took me a bit, but I found one. While I was squatting, I saw this beautiful Croatian bitch; gorgeous tits, legs to die for. So, I finish my shit, and I go over. I start fondling her tits, I stick my finger in her cunt, I take out my cock and fuck her hard, and then I come on her tits. After that, I roll her over, fuck her in the ass, then I roll her over yet again to come all over her tits a second time!“

In awe, Dmitri asked, "Did she then suck the last of your come from your cock?”

Nikolai snapped back, "Don’t be a fucking idiot! Her head had been blown off by a grenade a few days ago!“

---------------------------------

I had my first sexual experience at middle school. I fucked little Jenny Jones behind the bike shed.

She said I was better at fucking than teaching Math.

---------------------------------

What should you do if you come across a baby dying in his mother’s arms?

Wipe it off him, and apologize to her.

---------------------------------

I’m not racist. Racism is a crime, and crime is for black people.

---------------------------------

A man was walking his dog through a graveyard when he saw another man crouching behind a gravestone.

“Morning!” he said.

The other man replies, “No, just having a shit.”

---------------------------------

I was wondering how great it would be great to see a “Saw” style reality TV show where contestants are placed in life or death situations, like scavenging for food and water, or being subject to some inhumane climate and natural disasters, or struggling to fight off deadly diseases.

And that’s when I asked myself…

Why aren’t there cameras all over Africa?

---------------------------------

Getting girls to have sex with me is like getting ketchup out of a glass bottle.

It’s easy when I have a knife.

---------------------------------

I was watching a film with my little boy earlier. He said, “Dad, I’m scared. Is that woman going to die?”

I said, “Judging by the size of that horse’s cock, yes.”

---------------------------------

As he inserted the rectal thermometer, I developed a painfully hard and obvious erection.

“Maybe you should wait outside while I examine your dog,” said the vet.

---------------------------------

What’s the hardest thing about being a pedophile?

Getting the blood out of the clown suit.

(alternatively: Trying to fit in.)

---------------------------------

What do you call five black people having sex?

A Threesome.

---------------------------------

Why do so many blacks not pay their rent?

Because jail is free.

---------------------------------

A man walks into a library and says to the librarian, “Do you have that book for men with small penises?”

The librarian looks on her computer and says, “I don’t know if it’s in yet.”

“Yeah, that’s the one.”

---------------------------------

Three gays are skydiving, and they’re all jumping out at the same time. All three go to release their parachutes together, when they realize that none of the chutes work.

The first gay hit the street, which took two days to clean up.

The second hit a car; it took a week to scrape him off.

The third landed ass first onto a pole. It took two months to wipe the smug look off his face.

---------------------------------

In the Wild West, a little girl is standing by a cliff, crying her eyes out. A cowboy riding by stops and asks, “Why’re you crying, little girl?”

She says, “Oh, mister, our wagon was attacked by Indians. My father got shot by an arrow and drove the wagon off the cliff. I jumped off, but my whole family is dead.”

The cowboy looks at her, unmounts, unzips his pants, and says, “Well, looks like it just ain’t your day today.”

---------------------------------

What did Cinderella say when she got to the ball?

“Ughhghghggghh”

---------------------------------

What’s the difference between your mom and a whore?

Whores aren’t fat.

---------------------------------

What’s the difference between Iron Man and Iron Woman?

Iron Man is a superhero; “iron, woman” is a command.

---------------------------------

What do you do if an epileptic falls in your pool?

Throw in your laundry.

---------------------------------

Yo’ mama so ugly, her portraits hang themselves.

Yo’ mama so old, she has a separate entrance for black cocks.

Yo’ mama so unfamiliar with the gym, she calls it James.

Yo’ mama so fat, the Sorting Hat put her in the Waffle House.

---------------------------------

Paddy Englishman, Paddy Scotsman and Paddy Irishman are walking in the woods when they stumble across an old sex wizard down on his luck.

“Wishes for a tenner!” shouts the wizard. “I’ll give you anything you like, but I’m sick and tired of making knobs bigger, so don’t ask!”

Without wasting a second, Paddy Englishman hands the wizard a ten pound note. “I want my wife to be ten times more adventurous in bed.”

The sex wizard nods. “Uxor non inhibitoris! An easy one! It is done!”

Paddy Scotsman counts out nine pound coins and two 50 pence pieces. “My wife and I are happy enough, but I’m terrified of becoming a grandfather before I’m 50. I’d be obliged if you could fix it so my teenage daughters can’t get pregnant before they’re 25.”

The sex wizard nods. “Filiae non fertilismus! Very wise! It is done!”

The sex wizard turns to Paddy Irishman, who has his hands planted firmly in his pockets and looks ready to move on. “No wish for you?”

“I’ll save my tenner,” says Paddy Irishman, with a grin. “These boys have me covered!”

---------------------------------

I got in trouble during high school for masturbating in the showers.

Apparently, it completely ruined the trip to Auschwitz.

---------------------------------

What did Hitler say to Eichmann when he saw him in hell?

“If I knew you were coming, I would have baked you a kike.”

---------------------------------

Have you ever seen that black family on The Jetsons?

No? The future looks good, doesn’t it?

---------------------------------

A statue of a man and a statue of a woman stood looking at each other for hundreds of years out in a park. One day a wizard, feeling sorry for the statues, brought them to life for thirty minutes. Right away, the two of them ran into some nearby bushes, and you could hear all kinds of strange sounds and moans from there. After a while they came back out, giggling. The wizard told them, “You have another fifteen minutes left, if you want to have another go.” The statues looked at each other, and the male statue answered, “Fine, but this time you hold the pigeon and I’ll shit on it.”

---------------------------------

How long does it take a black women to take a dump?

Nine months.

---------------------------------

A mom is at the breakfast table with her three daughters.

Petal asks her mom, “Where did you get my name from?”

Her mom answers, “Well, when you were a baby, a petal fell from the sky and landed on your forehead, and so we named you Petal.”

Petal’s sister piped up, “Is that why you named me Snowflake? One landed on my forehead?”

Her mom answered, “Yes, that’s true.”

The third sister said, “HRRHHEHHGHGHRERRRHHHGHG.”

And, the mom said, “Shut up, Fridge!”

---------------------------------

A priest and a rabbi are at an interreligious conference. After a session, they decide to go for a walk around a lake. On the other side of the lake, they both agree to go skinny dipping. Just as they are getting out of the water, they see a group of kids from the conference walking along the path. The priest puts his hands over his man-hood and waits for them to pass. He happens to glance over to the rabbi and sees that he has his hands over his face. Once the children leave, he asks the rabbi why he covered his face and not his package. The rabbi responds, “The children from my synagogue recognize me by my face.”

---------------------------------

How do you know a Polish fella’ robbed your house?

He’s eaten your trash and your dog is pregnant.

---------------------------------

A black guy walks into a bar with a parrot on his shoulder. The bartender says, “Hey, that’s pretty neat, where’d you get him?”

The parrot replies, “Africa, there’s millions of them!”

---------------------------------

(This joke requires audience participation - I will crudely ask the question that you should ask for you)

JOKESTER:

Three flies are stuck in a jar. Two female flies and one male fly. For some reason, the female flies have it in their heads that the male knows how to get out.

The first female fly buzzes over the the male and asks him how to get out of the jar. “Fuck me and I’ll tell you.” She’s desperate to get out, so she fucks him.

“What you need to do is, start flying around the top to get some speed, dive toward the bottom and pull up to the top at the last second and you’ll [snap] pop right out.” So she does exactly as he says. Right as she pulls up toward the top [smack your hand] SPLAT! She hits the lid and falls down dead.

So, the second female fly, because flies are dumb, goes over to the male fly and asks him the same thing, namely, how to get out of the jar. He says, “Fuck me and I’ll tell you.” She too is desperate to get out, so she fucks him.

“What you need to do is, start flying around the top to get some speed, dive toward the bottom and pull up to the top at the last second and you’ll [snap] pop right out.” So she also does exactly as he says. Right as she pulls up toward the top [smack your hand] SPLAT! She hits the lid and falls down dead.

So, now this male fly is in a jar with two dead female flies, and he wants out. So he flies around the top to get some speed, dives toward the bottom, pulls up at the last second, and [*snap] pops right out.

AUDIENCE: “How did he get out of the jar?”

JOKESTER: “Fuck me and I’ll tell you.”

---------------------------------

What do black guys do after sex?

20 years to life.

---------------------------------

Why don’t gypsies get HIV?

Even a virus has standards.

---------------------------------

A man walks into a bar and begins to order a beer, “O-O-One b-beer p-please.”

The bartender responds, “Hey man, I used to have the same stuttering problem. Then I went home, asked my wife to give me some head, and the next day I was cured.”

After hearing this the man rushed off before even getting his beer.

The next day, the man returns and again orders a beer, “O-One b-b-b-beer p-please.”

The bartender asks, “didn’t work huh?”.

The man replies, “No, b-b-b-but you have a l-l-lovely house!”

---------------------------------

A youth asks his mother, “Mom, I’ve got the biggest dick in 3rd grade - is it because I’m black?”

She responds, “No, Jamal, it’s ‘cause you’re 19.”

---------------------------------

The Prophet Muhammad went to his tent one night and saw one his wives looking angry. 

“Someone told me today that you are a dirty pedophile,” she said.

“Who told you that bullshit?” he shouted back.

“Your favorite fucking wife!” she replied.

Angrily, the prophet turned his back and said, “Why would you believe Aisha? She’s only seven!”

---------------------------------

Why do Latinos never have Sex Ed. and Driver’s Ed. on the same day? 

They have to give the donkey a break at some point.

---------------------------------

Dave cannot make his wife cum, so he goes to the doctor for some advice. He says to the doctor, “Look, I just can’t bring my wife to orgasm in bed, it’s a real problem.”

The doctor asks, “Well, is it too warm?”

Dave replies, “Yes, it’s absolutely sweltering”

“Then get some air-con,” the doctor says.

Dave says, “I can’t afford air-con. I’m too poor.”

The doctor asks, “Well, Dave, do you have a good mate?”

“Yeah, I’ve got a mate, Mick,” says Dave.

The doctor explains, “Well, ask your mate, Mick, to stand over you and the Mrs. with a towel, wafting you both to cool you down - that might help.”

So, Dave asks Mick for this favor, who then agrees to help him. That night, Dave is in bed with his wife pounding away while Mick fans them with the towel, but it’s doing nothing for her.

Dave says, “Well this isn’t working. Let’s swap.” So, Dave takes the towel and starts wafting while Mick shags Dave’s Mrs. Not long after, Dave’s wife goes “Oooh… oh that’s it, I’m about to cum, I’m going to cum!”

Dave shouts, triumphantly, “You see, Mick?! That’s how you waft a fucking towel!”

---------------------------------

What is similar about your first car and anal? 

You don’t want it, but your dad gives it to you anyway.

---------------------------------

Whats the difference between a zit and a priest?

A zit waits until you’re a teenager to come on your face.

---------------------------------

A communist, a terrorist, and a nigger walk into a bar.

The bartender looks up and says, “Hello there, Mr. President!”

---------------------------------

Chinese people with Down syndrome look like normal Chinese people.

---------------------------------

If a tree falls on a woman, and there’s no one around to hear it, what was a tree doing in the kitchen?

---------------------------------

When the first duck gets his beer he tells the bartender, “Thanks man, my name is Tom.”

The bartender says, “Nice to meet you Tom! How’s your day been?”

Tom replies, “Man! I have had the best day ever… I have been in and out of Puddles all day long. Couldn’t ask for a better day!”

The bartender congratulates Tom on having such a magnificent day and then turns to the second duck and hands him his beer. When the second duck gets his beer he tells the bartender, “Thanks man, my name is Dick.”

The bartender says, “Nice to meet you Dick! How’s your day been?”

Dick replies, “Man! I can’t remember the last time I had such a wonderful day! I have been in and out of Puddles all day long. I will remember this day forever!”

The bartender congratulates Dick on having such a magnificent day and then turns to the third duck and hands him his beer. The bartender says, “Let me guess…your friend’s names are Tom and Dick, so you must be Harry!”

The third duck glares at the bartender and says, “No, asshole. My name is Puddles, and don’t ask me how my fucking day has been!”

---------------------------------

So I painted my laptop black, hoping it would run faster…

Now it doesn’t work.

---------------------------------

What’s 9 inches long, pink, and makes my girlfriend scream when I put it in her mouth?

Her miscarriage.

---------------------------------

What did the leper say to the prostitute?

Keep the tip

---------------------------------

What do you do after you rape a deaf mute?

Break her fingers so she can’t tell anybody.

---------------------------------

Tits are like Legos. They are designed for kids, but grown men end up playing with them. You also get a feeling of satisfaction when you put them together.

---------------------------------

Yo’ mama has had the clap so many times her doctor treats her for applause. As her condition progressed, it turned into Type II Ovation Cancer.

---------------------------------

Yo’ mama is so fat, her patronus is a cake.

---------------------------------

Today, I saw a midget prisoner climbing down a wall. Halfway down, he turned and sneered at me.

I thought, “that’s a little condescending.”

---------------------------------

A girl was about to jump off a cliff to end her life. Just as she was about to leap to her death, a homeless man approached from behind and shouted to ask her a question, “Excuse me miss! Before you jump would you like to have sex with me?”

The woman replied angrily, “No I most certainly would not! How dare you try and take advantage of me in a situation like this!”

The homeless responded, “Very well then, I’ll just wait for you to get to the bottom.”

---------------------------------

How Long is a Chinese name?

(Hao Long)

---------------------------------

I called that Rape Advice Line earlier today. 

Unfortunately, it’s only for victims.

---------------------------------

Who here wants to play a game of rape?

No?

That’s the spirit!

---------------------------------

My girlfriend is a porn star.

She is going to be so pissed off when she finds out.

---------------------------------

A teacher asks her class, “If there are five birds sitting on a wall and you shoot one of them how many are left?" She calls on little Johnny to answer.

He says, "None. They all fly away at the first gunshot.”

The teacher replies, “The correct answer is four, but I like your thinking.”

Little Johnny replies, “Now I have a question for you: There are 3 women sitting on a bench eating ice cream. One is delicately licking the sides of an ice cream cone, the second is gobbling down the top and sucking the cone, and the third is biting off the top of the ice cream. Which one is married?”

The teacher blushes and replies, “Well, I guess the one that is gobbling down the top and sucking the cone.”

Johnny shakes his head and smiles, “The correct answer is the one with the wedding ring on, but I like your thinking.”

---------------------------------

How much does a British midget stripper with three kids get paid? 

Mini-mum wage.

---------------------------------

Persuading a girl to have sex with you is like spreading butter on toast.

It is possible with a credit card, but it makes more sense to use a knife.

---------------------------------

A guy walks into a bar and asks the bartender for a Jack and Coke.

The bartender hands him an apple.

The man, looking confused, asks, “What’s this?”

The bartender replies, “Take a bite out of the apple.”

The man does. Surprised, he says, “Wow, this tastes like Jack Daniels!”

The bartender says, “Now turn it around.”

The man does and takes another bite, “…and this side tastes like Coke!”

Another man walks in and asks for a Gin and Tonic.

Again, the bartender hands him an apple and tells him to take a bite out of one side and then the other.

The man is amazed, “This tastes like Gin and Tonic!”

A third man walks in and the previous two men tell him, “The bartender will give you an apple that tastes like anything you want!”

The third man, looking skeptical, says, “Oh, really?” He looks at the bar tender and asks, “Do you have an apple that tastes like pussy?”

The bartender hands him an apple and tells him to take a bite.

The third man bites into the apple and quickly spits it out, “THIS TASTES LIKE SHIT!!”

The bartender says, “Turn it around…”

---------------------------------

Interviewer: “What’s your greatest weakness?”

Interviewee: “Honesty.”

Interviewer: “I don’t think honesty is a weakness.”

Interviewee: “I don’t give a fuck what you think.”

---------------------------------

Two homeless guys are drinking cooking sherry in an alleyway. One says to the other, “Man I’m starving. There’s a rotten frozen dead cat in the alley back there. I’m gonna go eat it. You want in on this?”

The second guy says, “No way am I going to eat a rotten, frozen, dead cat. That’s nasty.”

His buddy says, “Suit yourself,” and goes to town eating the rotten, frozen, dead cat.

He comes back about a half an hour later and says, “Man, I don’t feel so good. I shouldn’t have eaten that rotten, frozen, dead cat,” and proceeds to puke it all up on the ground.

The other guy starts licking his lips and says, “That’s what I’m talking about, a hot meal!”

---------------------------------

How long does it take for a baby to explode after you put it in a microwave?

I don’t know. I close my eyes when I masturbate.

---------------------------------

A Freudian slip is when you mean one thing but(t) fuck your mother.

---------------------------------

I once dated a woman with a twin. I don’t know why, but they got it in their mind that they’d switch places so I’d end up having sex unknowingly with her twin.

So anyway, I’m already in bed and she turns out the light, and makes up some last second excuse to leave the room. I think she turned off the light to make it harder for me to realize their trick (they have different hair styles). Anyway, a minute later I hear (what I assumed was her) coming back in to the room, climbing in bed beside me.

I’m horny as hell, and slide over next to my bed-mate and we start making out. We ended up having some mind-blowing sex. It was incredible. I’ve never gotten such passion from my girlfriend.

At some point in the night they’d switched back, so when I woke up my girlfriend smiled at me and asked me if I’d enjoyed “our” sex. I explained to her I’d been on to them the whole time, and that I knew it wasn’t her from the very start.

She looked at me shocked and asked how I’d known.

I said, “His hands are bigger than yours.”

---------------------------------

An old lady was tired of life and wanted to commit suicide.

She decided the best way to die was to shoot herself through the heart, but she didn’t know where to find the heart. So, she called her doctor and asked.

The doctor told her the heart is located two inches below the left nipple.

The old lady hung up and shot herself in her knee.

---------------------------------

What does a man with a big dick eat for breakfast?

Yeah, I didn’t think you’d know…

---------------------------------

What’s worse than a worm in your apple?

2 worms in your apple.

What’s worse than 2 worms in your apple?

The Holocaust.

What’s worse than the Holocaust?

3 worms in your apple.

---------------------------------

How does a pregnant black woman fight crime?

Abortion.

(Sadly: https://en.wikipedia.org/wiki/Legalized_abortion_and_crime_effect)

---------------------------------

How do you titty fuck an 8-year-old?

You break her shoulders.

---------------------------------

What is the difference between Sarah Palin’s mouth and her vagina?

Only some of the things that come out of her vagina are retarded.

---------------------------------

What separates men from animals?

The Mediterranean

---------------------------------

A black man takes a girl home from a nightclub.

She says, “Show me if it’s true what they say about black men.”

So, he stabs her and steals her purse.

---------------------------------

In a transatlantic flight, a plane passes through a severe storm. The turbulence is awful, and things go from bad to worse when one wing is struck by lightning. One woman in particular loses it.

Screaming, she stands up in front of the plane and wails, “I’m too young to die!”  Then she yells, “Well, if I am going to die, I want my last minutes on Earth to be memorable! I’ve had plenty of sex in my life, but no one has ever made me feel like a woman! I’ve had it! Is there anyone on the plane who can make me feel like a real woman?”

For a moment there is silence. Everyone has forgotten their own peril, and they all stare riveted at the desperate woman in front of the plane. Then, a man stands up in the rear of the plane.

“I can make you feel like a woman,” he says.

He’s gorgeous — tall, built, with long, flowing black hair and jet black eyes. He starts to walk slowly up the aisle, unbuttoning his shirt one button at a time.

No one moves.

The woman is breathing heavily in anticipation as the stranger approaches.

He removes his shirt. Muscles ripple across his chest as he reaches her, and he extends the arm holding his shirt to the trembling woman and whispers:

“Iron this.”

---------------------------------

What do you call an Ethiopian taking a dump?

A show-off.

---------------------------------

A pedophile, an alcoholic, and a priest walk into a bar. He has a beer.

---------------------------------

A man is standing behind a woman in the supermarket. She notices him looking in her cart which only has a couple items.

He says, “You must be single.”

She says, “How can you tell just by looking at my cart?”

He says, “Because you are fucking ugly.”

---------------------------------

Did you know Princess Diana had dandruff?

They found her Head and Shoulders on the floor.

---------------------------------

Pedophiles are fucking immature assholes.

---------------------------------

Why does Helen Keller masturbate with one hand?

Because she moans with the other.

---------------------------------

What’s the difference between John Wayne and Jack Daniels?

Jack Daniels is still killing Indians.

---------------------------------

After 30 years of marriage, a husband and wife went for counseling. When asked what the problem was, the wife went into a tirade listing every problem they had ever had in the years they had been married. On and on she went: neglect, lack of intimacy, emptiness, loneliness, feeling unloved and unlovable, and an entire laundry list of unmet needs she had endured.

Finally, after allowing this tirade for a sufficient length of time, the therapist got up, walked around the desk, and after asking the wife to stand, he embraced and kissed her long and passionately as her husband watched - with a raised eyebrow.

The woman shut up and quietly sat down as though in a daze.

The therapist turned to the husband and said, “This is what your wife needs at least 3 times a week. Can you do this?”

“Well, I can drop her off here on Mondays and Wednesdays, but on Fridays, I fish.”

---------------------------------

“I hate black girls that work at McDonald’s. They take your order with an attitude like you’re the reason they never met their father.”

---------------------------------

An 18 year old girl tells her mom that she has missed her period for two months. Very worried, the mother goes to the drugstore and buys a pregnancy kit. The test result shows the girl is pregnant.

Shouting, cursing, and crying, the mother says, “Who was the pig that did this to you? I want to know!”

The girl picks up the phone and makes a call. Half an hour later a Ferrari stops in front of their house, a mature and distinguished man with gray hair and impeccably dressed in an Armani suit steps out of the Ferrari and enters the house.

The man sits in the living room with the father, mother, and the girl, and tells them, “Good morning, your daughter has informed me of the problem. I can’t marry her because of my personal family situation, but I’ll take charge. I will pay all costs and provide for your daughter for the rest of her life. Additionally, if a girl is born, I will bequeath a Ferrari, a beach house, two retail stores, a townhouse, a beachfront villa, and a $2,000,000 bank account. If a boy is born, my legacy will be a couple of factories and a $4,000,000 bank account. If twins, they will receive a factory and $2,000,000 each. However, if there is a miscarriage, what do you suggest I do?”

At this point, the father, who had remained silent, places a hand firmly on the man’s shoulder and tells him, “You fuck her again.”

---------------------------------

A husband and wife were sitting watching a TV program about psychology and the phenomenon of “Mixed Emotions.”

The husband turned to his wife and said, “Honey, that’s a bunch of crap. I bet you can’t tell me anything that will make me happy and sad at the same time.”

She said, “Out of all your friends, you have the biggest penis.”

---------------------------------

I saw this cute homeless girl on the street. I asked her if I could take her home. She smiled and said, “Sure.”

You should have seen the look on her face when I walked off with her cardboard box.

---------------------------------

Dark humor isn’t everybody’s cup of liquidized dead baby.

---------------------------------

I asked my friend from New Zealand how many sexual partners he’s had…

He started counting and fell asleep.

---------------------------------

Jesus might have fed the 5,000,…

but Hitler made 6 million jews toast.

---------------------------------

An avid golf fan took his wife golfing and was having the game of his life. They got to the 17th hole, a short par 4, and he hits his drive way left. When he finds his ball, it’s behind a large shed that stands directly between the ball and the green.

Dismayed, he decides to lay up and hit a chip shot back into the fairway to go for bogey. Right before he hits, his wife comes up and says, “Wait, wait, this shed has big double doors on each side! We can just open up both sides and you can hit your shot right through the shed and up onto the green!”

Encouraged by this idea, he takes the shot. The ball bounces off the front of the shed, hits his wife in the head and tragically kills her.

Years later, this guy plays this same course again, this time with a few of his buddies, and is once again having another once in a lifetime type of game. On the 17th hole, remembering what happened the last time, he nervously tees off and is heartbroken to see his ball follow a nearly identical path as the last time he played. He gets up to the ball and it’s almost in the same spot, so he lines up to chip it back into the fairway. His buddy runs up and says, “Wait wait, this shed has big double doors on each side! We can just open up both sides and you can hit your shot right through the shed and up onto the green!”

The guy stares at him and says, “No way. Last time I tried that, I triple bogeyed!”

---------------------------------

How do you get a woman to orgasm?

Who cares!?

---------------------------------

What was more surprising for my girlfriend than catching me having sex with our son?

Finding out the abortion clinic let me keep him.

---------------------------------

An ugly man walks into his local pub with a big grin on his face.

“What are you so happy about?” asks the barman.

“Well, I’ll tell you,” replies the ugly man. “You know I live by the railway? Well, on my way home last night, I noticed a young woman tied to the tracks, like in the films. I ran over, cut her free, and took her back to my place. Anyway, to cut a long story short, I scored big time. We screwed all night, all over the house. We did everything, me on top, sometimes her on top, etc.”

“Fantastic!” exclaimed the barman. “You lucky sod. Was she pretty?”

“Dunno,” replied the man. “Never found the head!”

---------------------------------

Little Johnny wakes up one night hearing strange noises from his parents’ bedroom. He opens the door to his parents’ room and sees his mom handcuffed to the bed’s headboard and his dad ramming her from behind.

Johnny screams.

His dad turns to looks at him, laughs, and gives the mom a slap on the ass for good measure. Johnny runs away, screaming.

Once dad has finished mom off, he uncuffs her. She immediately says, “You better go tell Johnny everything is OK. The shit he just saw could scar him for life.”

Dad rolls his eyes and begrudgingly agrees. He pulls on his robe and heads for Johnny’s room, only to find it’s empty. He then heads for the TV room, but when he passes the guest room, he notices the door is ajar, with noises coming from inside. He opens the door to look in and sees Granny on her hands and knees, with little Johnny fucking her from behind.

The dad screams.

Johnny turns around, looks at him, and says, “Yeah, not so funny when it’s your mom, huh?”

---------------------------------

A few days ago, I was playing Uno with a bunch of Mexicans. We had to stop playing because they kept stealing all the green cards.

---------------------------------

A guy picks up a hooker, and once at the hotel, they start to fuck. He screams in agony as he pulls his cock out.

“What the fuck…” he says, “it feels like I’m fucking rocks.”

The hooker stands up, “Oh, I am so sorry,” and goes to the bathroom. She comes back and lays on the bed. “Try it again, Sugar,” she says.

He does, and it is the smoothest, warmest pussy he has ever felt.

While dressing he asks, “That was a rough start, but damn, it was incredible. What did you do?”

She smiled and replied, “I just picked the scabs.”

---------------------------------

Did you hear about the black kid with diarrhea?

They thought he was melting.

---------------------------------

A man goes to his best friend’s house to watch the hockey game. At the end of the first period the man says to his friend, “You know, we’ve been friends for a long time and I’ve always wanted to tell you this, but I really want to fuck your wife.”

The friend thinks for a moment before replying, “Ok. You can fuck my wife, but promise me one thing. You must not go down on her.”

The man says, “Ok,” goes upstairs and fucks his friend’s wife, but no matter how hard he tries, he can’t resist the urge to go down on her.

He comes back just as the second period is starting and says to his friend, “Man, I’m really sorry, but I couldn’t resist the urge to go down on your wife. The weirdest thing happened when I did it though… I got a mouth full of rice.”

The friend laughs and says, “That wasn’t rice; she’s been dead for a month!”

---------------------------------

An Irish swimming champion almost won a race across the English channel. He was three quarters of the way across before he got tired and turned around.

---------------------------------

Why was CSI Kentucky cancelled?

No one has dental records, and they all share the same DNA.

---------------------------------

A priest and a rabbi pass a young boy on the street.

The priest says to the rabbi, “Wanna fuck him?”

To which the rabbi replies, “Out of what, my friend?”

---------------------------------

Some skinheads poured gasoline on the father of the black family down the street and burned him to death.

The whole neighborhood started up a collection for his family; so far we have 8 gallons.

---------------------------------

A guy walks into a strip club one day looking kind of down. He walks up to the bartender and asks for a drink. The bartender asks him, “What’s wrong?”

The man replies, “My dick is so big that whenever I fuck a girl she screams uncontrollably. It’s really difficult to enjoy sex.”

To which the bartender replies, “Well, we have some great women in the private rooms. Why don’t you go see if you one of those girls can take care of you?”

The man reluctantly agrees and walks into one of the back rooms.

The woman in the first room begins screaming within 30 seconds. The guy moves to the next room. The second woman lasts a good five minutes, but then can’t take it any more either. Finally, the guy moves to the third room.

The woman in this room is a little quiet, but he goes ahead and starts fucking her anyway. He gets a solid 30 minutes in and then finishes. On the way out he goes up to the bartender again and says, “Wow! That was amazing! You should probably check on that girl in the third room though. She was drooling all over herself by the time I finished.”

The bartender looks up at him, turns his head and yells, “Hey Bobby! Dead girl’s full!”

---------------------------------

Two cannibals are eating a clown. One cannibal turns to the other and says, “Does this taste funny to you?”

---------------------------------

A woman is at a bar drinking and depressed. A man walks in and sits next to her. He, too, is drinking and depressed.

After a time, the man asks the woman, “What are you so depressed about?”

She says, “My husband left me because he thought I was too kinky.”

He says, “Really? My wife left me because she thought I was too kinky!”

They order another drink, and she says to him, “Hey listen, we’re both adults here, and it looks like we might have a little something in common … whaddya say we go back to my place and see what happens?”

He says, “Sounds like a great idea!” And they finish their drinks and leave.

When they get to her place, she says to him, “Wait right here, I’m going to go change into something a little more comfortable.”

She goes to her bedroom and puts on some black leather boots with six-inch heels, a leather miniskirt, a rubber bra with the nipples cut out, a dog collar, and a leather hood. She then grabs a riding crop and some handcuffs and saunters seductively out to the living room where she sees the guy putting on his coat and hat and heading out the door.

“Where ya going?” she asks. “I thought we were going to get kinky?”

“Hey,” he says, “I fucked your dog, I shit in your purse … I’m outta here!”

---------------------------------

What would you call the Flintstones if they were black?

Niggers.

---------------------------------

How do you get 4 gay guys to sit on 1 stool?

Turn it upside down.

---------------------------------

I was eating out my grandmother, when all of a sudden I tasted horse semen, and I’m like, “Oh Grandma, so that’s how you died!”

---------------------------------

What do doctors do with the foreskin after a circumcision?

Sell it to faggots for chewing gum.

---------------------------------

How do you circumcise a redneck?

Kick his sister in the chin.

---------------------------------

What’s the hardest part about fucking a 5 year old?

Getting the blood stains out of the clown suit.

---------------------------------

What do you do when your dishwasher stops working?

Punch her.

---------------------------------

What’s worse than sucking a dozen raw oysters out of your grandmother’s vagina?

Putting in 12 and sucking out 13.

---------------------------------

What starts with “N,” ends with “R,” and is a word you never want to call a black person?

“Neighbor.”

---------------------------------

How did Helen Keller’s parents punish her?

They left the plunger in the toilet.

---------------------------------

A man walks past girl with no arms or legs sitting by a pool. The girl says to the man, “Excuse me, sir, I’ve never been fucked, and, in my condition, no one would want to fuck me. Will you please fuck me?” So the man kicks her into the pool and says, “There. You’re fucked.”

---------------------------------

What did the black woman name her 5 sons?

Tyrone, Tyrone, Tyrone, Tyrone, and Tyrone.

How did she tell them apart?

She just called them by their last names.

---------------------------------

How many potatoes does it take to kill an Irishman?

None.

---------------------------------

The best way of telling dead baby jokes is to make them progressively more horrifying. Observe:

# You know what’s worse than a worm in your apple? Two worms in your apple.
# You know what’s worse than two worms in your apple? A dead baby.
# What’s worse than ten dead babies in a garbage can? One dead baby in ten garbage cans.
# What’s the difference between a truck full of bowling balls and a truck full of dead babies? You can’t unload bowling balls with a pitchfork.
# How do you get 100 dead babies into a bathtub? A blender.
# How do you get them back out? Tortilla chips.
# What’s the difference between a dead baby and an apple? I don’t cum on apples before I eat them.
# What’s the best part about fucking a dead baby? It’s deep throating whichever side you start from.

---------------------------------

Why can’t Stevie Wonder read?

Because he’s black.

---------------------------------

One day coming home, Johnny saw a sign for a Singing Blowjob. Curious, he enters the building. Inside there is a plain desk with a glass of water on it. Nervously, he asks the good-looking woman there about the “Singing Blowjob.” She immediately gets him to sit down and relax. She agrees to provide the service, but only on the condition that the lights off, so no one else can steal her secret.Johnny agrees, and she shuts off the light.

She gives the best blowjob of his life, and after a few minutes, the woman begins singing! When finished, he thanks her and goes home, but is unsatisfied. He has to know how she did it.

Next week, he returns with a flashlight in his pocket. He gets to the room, with the same desk and glass of water. She shuts off the light and begins. He works up the nerve, reaches for the flashlight, but he begins to come, and drops the light in surprise. Hitting the floor, the flashlight turns on shining at the plain desk with the tall cup of water on it, now holding a glass eye.

---------------------------------

How do you make a dead baby float?

A root beer and 2 scoops of dead baby

---------------------------------

A man walks into his bedroom with a sheep under his arm. His wife is lying in bed reading. The man says, “This is the pig I have sex with when you’ve got a headache.”

The wife replies, “I think you’ll find that is a sheep.”

The man replies, “I think you’ll find I was talking to the sheep.”

---------------------------------

What do spinach and anal sex have in common?

If you’re forced to have it as a kid, you wont enjoy it as an adult.

---------------------------------

What’s the difference between Michael Phelps and Hitler?

Michael Phelps can actually finish a race.

---------------------------------

What’s white and rains down from the heavens?

The coming of the Lord.

---------------------------------

How do you know your sister is on her period?

Your dad’s dick tastes funny.

---------------------------------

As a plane is losing power, a pilot speaks over the intercom:

“Sorry it had to come down to this folks, but we’ve already let the luggage go and the plane continues to lose speed. I hate to have to do this, but we’re going to have to start releasing some passengers.”

*GASPS

Captain: “It only seems fair that we do this in alphabetical order so we’ll start with the letter ‘A.’ Are there any Africans on the plane?”

*SILENCE

“Any Africans?”

*SILENCE

“OK, 'B.’ Are there any Blacks on the Plane? Any Black people at all?

Nobody responds.

"OK, people, we’re on 'C.’ Are there any Colored people on the plane?”

Silence again, but a small child leans over to his mom and says, “Momma, aren’t we African American, Black, and Colored?”

His mom turns to him and says, “TODAY, honey, we are Niggers. Let them Mexicans go first!”

---------------------------------

What causes pedophilia?

Sexy children

---------------------------------

What is better than winning a gold medal at the Special Olympics?

Not being retarded

---------------------------------

What’s the difference between menstrual blood and sand?

You can’t gargle sand!

---------------------------------

Why do Jews play porno’s backwards?

They like to see the prostitute give the money back.

---------------------------------

How can a black woman tell if she’s pregnant?

When she pulls out her tampon, the cotton has been picked.

---------------------------------

What do we want?

A cure for tourettes!

When do we want it?

Cunt!

---------------------------------

Why did Princess Diana cross the road?

Conservation of Momentum

---------------------------------

What’s the difference between peanut butter and jam?

I can’t peanut butter my dick up your ass.

---------------------------------

What did the leper say to the hooker?

Keep the tip!

---------------------------------

A pregnant female patient is lying on her bed in a doctor’s office, waiting for the doctor to come in to deliver the baby. She’s already been told that the delivery is a few hours a way and her contractions aren’t that severe yet.

A doctor comes in impatiently with two nurses, looks at the mother, and says “Alright, let’s speed things up a bit!”

He reaches into the woman, grabs the baby by the head and pulls it right out. The doctor then starts banging the baby around the room, just whacking its limp body on everything he can manage: walls, tables, and even the ceiling a couple of times. All the while, blood is just going everywhere, getting on everything. The nurses and doctor are drenched in it by the end. The baby, of course, is completely limp.

After two minutes of utter chaos, the doctor suddenly stops and the mother stops screaming. The doctor looks her straight in the eye, obviously holding back a bit of laughter, and says, “April fools! It was already dead!”

---------------------------------

A man walks into a bar. His alcohol problem is destroying his family.

---------------------------------

(This one works better if you say it out loud. It seems to require a certain kind of inflection.)

What do gay horses eat?

Haaaaaaaay

---------------------------------

What did the cannibal do after dumping his girlfriend?

Wipe his butt.

---------------------------------

I was walking across a bridge one day, and I saw a man standing on the edge, about to jump off. So I ran over and said “Stop! don’t do it!”

“Why shouldn’t I?” he said.

I said, “Well, there’s so much to live for!”

He said, “Like what?”

I said, “Well…are you religious or atheist?”

He said, “Religious.”

I said, “Me too! Are you Christian or Buddhist?”

He said, “Christian.”

I said, “Me too! Are you Catholic or Protestant?”

He said, “Protestant.”

I said, “Me too! Are you Episcopalian or Baptist?”

He said, “Baptist!”

I said, “Wow! Me too! Are you Baptist Church of God or Baptist Church of the Lord?”

He said, “Baptist Church of God!”

I said, “Me too! Are you Original Baptist Church of God, or are you Reformed Baptist Church of God?”

He said, “Reformed Baptist Church of God!”

I said, “Me too! Are you Reformed Baptist Church of God  Reformation of 1879, or Reformed Baptist Church of God, Reformation of 1915?”

He said, “Reformed baptist church of god, reformation of 1915!”

I said, “Die, heretic scum!” and pushed him off.

---------------------------------

Stalin was giving a speech to a few hundred thousand soldiers. One soldier then sneezes in the middle of Stalin’s speech. Stalin stops, looks around and asks: “Who sneezed?”

There was no answer.

He asks again, and sure enough, no one answered.

Stalin is now pissed. He doesn’t like being ignored. So, he has the first row executed.

He asks again, and no one answers.

“Execute the second row!” BAM! The second row is dead.

He asks again.

A little scared man puts his hand up, shaking in fear, “It was me…I sneezed.”

Stalin turns to him and says, “Bless you,” and then carries on with his speech.

---------------------------------

So Jane asks Tarzan if he knows what sex is…

He asks, “What sex?”

She explains the mechanics and asks if he’s ever done that.

Tarzan says, “Yes, with hole in tree.”

Jane says, “No, no, no, this is where you’re supposed to do it,” and lays down on the ground with her legs spread open, gesturing to Tarzan to mount her.

So, Tarzan approaches, raises his right foot, and smashes down on her crotch as hard as he can.

After several minutes of Jane rolling around and writhing in pain, she finally asks, “Dear God, why in the world did you do that!?”

To which Tarzan replies, “Check for squirrels.”

---------------------------------

A father buys a Lie Detector Robot that slaps you when you lie. He decides to test it on his son at supper.

“Where were you last night?” the father asks.

“I was at the library." 

The robot slaps the son. 

"OK, I was at a friend’s house.”

“Doing what?” asked the father.

“Watching a movie, Toy Story.”

The robot slaps the son.

“OK, it was porn!” cried the son.

The father yells “What? When I was your age I didn’t even know what porn was!!!”

The robot slaps the father.

The mother laughs and says, “He certainly is your son!”

The robot slaps the mother.

---------------------------------

An old, blind cowboy wanders into an all-girl biker bar by mistake. He finds his way to a bar stool and orders a shot of Jack Daniels. After sitting there for a while, he yells to the bartender, "Hey, you wanna hear a blonde joke?“

The bar immediately falls absolutely silent.

In a very deep, husky voice, the woman next to him says, "Before you tell that joke, Cowboy, I think it is only fair, given that you are blind, that you should know five things: The bartender is a blonde girl with a baseball bat; the bouncer is a blonde girl; I’m a 6-foot tall, 175-pound blonde woman with a black belt in karate; the woman sitting next to me is blonde and a professional weight lifter; the lady to your right is blonde and a professional wrestler. Now, think about it seriously, Cowboy. Do you still wanna tell that blonde joke?”

The blind cowboy thinks for a second, shakes his head, and mutters, “No…not if I’m gonna have to explain it five times.”

---------------------------------

Last night I was having some wings and beer with a coworker after work. There were these two pretty, but kinda’ fat girls drinking at the bar and being loud. They had what I could have sworn was a Scottish accent.

I’m a big fan of girls from the UK, so I struck up a conversation. I asked them, “So… you two ladies are from Scotland?”

I could see immediately that I had offended them. The brunette scowled and said, hotly, “WALES!”

I apologized and said, “I’m sorry. Are you two whales from Scotland?”

---------------------------------

Though initially embarrassed and uneasy over sharing a room, they were both very tired and fell asleep quickly, he in the upper bunk and she in the lower.

At 1 a.m., the man leaned down and gently woke the woman saying, “ma'am, I’m sorry to bother you, but would you be willing to reach into the closet and get me a second blanket? I’m awfully cold.”

“I have a better idea,” she replied. “Just for tonight, let’s pretend that we’re married.”

“Wow! That’s a great idea!” he exclaimed.

“Good,” she replied. “Get your own fucking blanket.”

After a moment of silence, he farted.

---------------------------------

What’s the worst part of being a Black Jew?

You have to sit at the back of the gas chamber.

---------------------------------

What’s the hardest thing about cooking a vegetable?

Getting the wheelchair in the oven.

---------------------------------

How many babies does it take to paint a wall?

Depends on how hard you throw them.

---------------------------------

Statistically, 9 out of 10 people enjoy gang rape.

---------------------------------

How many police officers does it take to change a light bulb?

None. They just beat the room for being black and arrest the bulb for being broke.

---------------------------------

What’s the difference between a four year old and a bag of cocaine?

Eric Clapton would never let a bag of cocaine fall out the window.

---------------------------------

One time I saw a black dude walking out of my building carrying a TV. Normally, I wouldn’t have paid attention, but I noticed it looked a lot like mine. So, I jogged upstairs and burst into my apartment to see if it was still there. It was, shining my shoes.

---------------------------------

I was in Tokyo getting looked at by a doctor. He said, “You have to stop masturbating.”

I said, “Why?”

He said, “Because I’m trying to examine you”.
After his crisis, he stopped doing comedy. He stopped participating in public life. His recent work, however, demonstrates an extremely strong redpill perspective, even moreso than his previous work.

I must admit that I feel a kinship with Dave Chappelle. I don't mean this in some delusional celebrity sense. Of course, we see parts of ourselves in others. It is inevitable. I think my crisis, of course, was different from his. However, he is obviously an intelligent man struggling with many of the same problems I have. I have long thought that comedians were informal philosophers and statesmen in disguise. 

He has found himself again. He really understands the evil of the world and himself better. His commentary is even more obvious in this respect. 
Dissociatives, like ketamine and its analogues, are incredibly potent substances. The phenomenology of it is very hard to describe.<<ref "1">> I'm sure it varies considerably on an individual basis as well. There are 4 serious drugs I've used with consistency (although, I've tried more): alcohol, cannabis, psilocybin, and deschloroketamine (DCK), in that order. Hallucinogens are derealizing (appearances are deceiving), but dissociatives take it to another level via depersonalization. I much prefer to be myself, but I also don't like who I am at times. So, at times, I want to be someone else. I need to change into a different person. DCK relieves my depression, and that's why I use it. It also activates and expands one's consciousness and awareness.<<ref "2">>

To be clear, DCK is not a pleasant experience for me. It is very difficult. I wrestle on this substance. I also use that time to explore, to empathize, and to meditate. Normally we think of meditation as being quite tranquil. Wrestle-meditation is what I do though.  It's not easy, and it's probably not for everyone. If there were tranquil ways to tame the beast(s) inside me, I'd use those. Unfortunately, it's the path that seems to work for me (as we've seen time and time again). I take a 20mg dose once a week. When I don't, my week doesn't go as well. If I fail to take it for long periods of time, I spiral back into depression.

The goal is to fix the problems I have while on DCK so that I can eventually just emerge permanently (hopefully) from depression. I leave lots of breadcrumbs on this wiki for myself, signals, and ways to help myself determine my mental status. The difference with DCK is clear not just phenomenologically, but blatantly so on this wiki. I can see it. My family does too. That's who I'm working for. I choose to be enslaved to my loved ones.

In any case, I need a place to write down my unedited drug-addled thoughts. I admit, like too much of my writing, it's chicken scratch (absurdly so in this case). But, that's the nature of journaling on dissociatives. I've been an accomplished typist for a very long time (despite the number of errors on this wiki); it's second nature to me (virtue theoretic, even). However, even on the small dose of DCK I take, I can barely remember how to even type. They aren't even my hands anymore. Perhaps these are the words of a madman. Perhaps they are absurd. I will consider them carefully, nonetheless. After all, something about DCK seems to be working.

It's important to talk to myself, even the dissociated part (perhaps exceptionally so). Remember: be empathic!

!! Vault:

* [[2017.04 -- DCK Meditation]]
* [[2017.05 -- DCK Meditation]]
* [[2017.06 -- DCK Meditation]]

!! Current Month:


---

<<footnotes "1" "Ultimately, a proper explanation would require a complete physiological and computational model of brain/mind. We don't have access to that.">>

<<footnotes "2" "Seriously. Look it up. Try it for yourself. My drug choices have been fairly wise.">>
I can't type or cube. They feel foreign. The gliding of keys and cubelets isn't natural in this state. That or they aren't who I am. Spurts of my abilities come out at unexpected times. This is dissociated me. This is part of shaping myself? Who is doing the shaping? What an unanswerable question! Ofc, it's me. Cold insanity required for change. This is the Potter's Hand. It is messy work.
WeChat is a monster. It's disgusting. It is spreading. We already do much of it, but they have come closer to perfectly the centralization of information/power/control over populations with it. This is the way the world is going.

We desperately need a p2p service which runs in WASM and probably Golang (or Rust) which is highly extensible. We need Linus to Linux on this Messaging+ problem. Piercing through NATs is really hard fucking work though.

Monetizing it isn't easy. Open-sourcing goes a long way. You still need a foundation that shapes it. 
[[Egoism]]

[[Epistemic Foundationalism]]

[[Psychopathy]]
A substance I use once a week, on Shabbat. It's not religious. It's not spiritual. Rather, it's existential. It's philosophical. My [[H-book]] cataloged it poorly (gnosticism engage!). No, but really, it allows a hunk of deterministic flesh (me) to see things differently every week. We need that rhythm of being awoken from our dogmatic slumber, from our perspective, to empathize with ourselves and outside ourselves. How often should we dissociate?<<ref "0">>

I don't know what to say. It's the tool that pulled me from unreality back to reality. It sliced the weight of my depression off me, and I could finally emerge. I'm still emerging; we always are! That doesn't mean we must keep pushing the button to dissociate. 

I respect the two-edgedness of the dissociative blade.<<ref "1">>

DCK allows me to shape this wiki (and myself), to reframe it, to inject, to cut, to weld, to 

DCK gives me frameworks and metacognition. It allows me to step outside of myself, to be real and conscious in a crucial atomic and molecular way.<<ref "2">> There are an [[Infinigress]] of confounding factors to understanding our world through induction. Induction is a kind of creativity, deduction is the raw computation. The space between the two must be 

How often should we use it? Clearly, it is a potent spice, substance, drug, tool, etc. I am an existential casserole, and DCK is an ingredient, a catalyst, a kind of Herbert's Dune's Spice. Consciousness must be wielded and expanded wisely.



------------------

<<footnotes "0" "So deep, man. /s">>

<<footnotes "1" "On that path, do we find confabulation? It does seem to be a part of the Tree of Knowledge problem.">>

<<footnotes "2" "That is as nebulous sounding as it gets. Let's be clear, in fundamental way, I'm not doing physics here. I'm doing existential categorization, delineating between and organizing parts and kinds.">>
Let's be honest: I'm fat.<<ref "1">> I'm going to be a man working hard with his hands, and carrying that weight around makes it harder. Make it easier on yourself by losing the weight and having the nutrition meant for physical labor. Also, people treat you better when you look handsome, fit, and like you have a giant penis. Go ahead and appear like the proverbial "Chad" on the outside. It will be socially useful to you. Lastly, people who eat the right foods really do feel better and more likely to feel mentally healthier. Don't pass up on free pleasure chemicals, bro. Free drugs are free drugs, yo.<<ref "2">>

Because I get to be vain in this section (one of the perks, right?), I'm going for pretty graphics (fancy!). Use the [[Diet Log Template]].<<ref "3">> 


!! Vault:

* [[2017.04 -- Diet Log]]
* [[2017.05 -- Diet Log]]
* [[2017.06 -- Diet Log]]

!! Current Month:

* [[2017.07.01 -- Diet Log]]
* [[2017.07.02 -- Diet Log]]
* [[2017.07.03 -- Diet Log]]
* [[2017.07.04 -- Diet Log]]
* [[2017.07.05 -- Diet Log]]

---

<<footnotes "1" "Doctors give me different answers. Some think I'm fine, and others are more realistic (honest) about it. I'm not absurdly obese for an American, but I am obese (I understand BMI particularism applies). I have a stout, barrel-chested, muscular build. I'm still fat though. Cut through it. You remember what you looked like as a teenager. You can be healthier, and you should.">>

<<footnotes "2" "The irony of the fact that food itself is a drug is not lost on me. Drug-happiness seeking behavior, however, can be pursued with more wisdom than mere gluttony.">>

<<footnotes "3" "In time, you may automate some of these processes in Tiddlywiki's code. Remember to ask yourself if it is worth the time investment. Do some napkin math at least.">>
```
|customTable|k
|Food|Calories|h
|||
|||
|||
|||
|||
|||
|||
|||
|||
|Total||f
```
This is just an ideabag.

* https://imgur.com/3SKCvi5
DIY has some benefits. Not a public toolchain, topology, protocol, or source. You might also just ride upon the coat-tails of highly trusted software (which makes the executable much harder to point out). Good botnets have a backup (or two). 

The Zeroth problem to consider is how to build it safely (which requires understanding everything before it, and recursively applying the Zeroth problem to the Zeroth problem tokens). You'd need to build it inside a close virtual network. Take it off the ethernet, and run it competely disconnected. Make a lot of small VPSes. Learn to control them. Build tools for them. Cleanse it of identifying information, make it anonymized, and spread it like cancer.


First problem to consider is DHT. Make it so that we are always trying to reconnect in various ways to the network. Multiple DHT access atempts are totally reasonable. Running our own DHT would be fine. The more options the better. Anonymity pushes back though. Backup plans are even harder in a way.

Ask yourself constantly, for each object and relationship: what if this fails?

OpenDHT, write in python for ease, C++ when performance is key.

We need to nest DCNets for the backbone of the anonymous control of the botnet. Major control and updates can be done slowly if necessary. 

Run your own DHT. Even the entrance needs to be run by ourselves. 

Nest DHTs. Each DHT will be a DCNet. 

It needs built-in self-protection mechanisms.

*Anti-malware should have a hard time stopping.
*It should be difficult to be caught (maximally)

What about 10 member DCNets. Hrmm...how do we dyanmically and automatically and maximally decentrally, and securely, generate these DCNets over the DHT?

Ultimately, I have a lot of respect for a methodical, random traversal of the DHT and other network anchors. Make it impossible to take out all the anchors. Make it easy for every iteration of the project to have all the anchors (get your anchors right the first time). 

Self-Organizing Anonymous Network (SOAN)

We want a secure, optimized SOAN for a botnet.

DHT first, Footholds after, Brute-force after.

Mixing IoT and a regular box botnet would be powerful. You get the sheer numbers and basic throughput you want from that many, and you still have power to do what you need.

You should spread it via switchblade. 

Switchblade for basic network, and build a real botnet on top of it (control the broader network from a smaller one that is handmade). 

No. Switchblade is stupid. It's anonymous from the beginning or nothing.






----------------------------------------

Small DIY Switchblade Botnet

*Free decentralization from Resilio
**DHT access right out of the box
**Easy network topology organization into clusters
**Enables 3+ DCNet clusters for anonymity


The DCnet clusters are interesting. Why not infinitely nested clusters of 3? e.g. A, B, and C each have 3 computers. ....actually, this sounds like I'm running DHT inside DHT. What does it take?

3 is minimum, but more is better for reliability? What about 7? Lucky number, eh? 4 is minimum to deal with a single point of failure. 

Resilio Switchblade Botnet

Join multiple syncs

------------------------------------------

AMPRnet digitized into a LAN. BTSync over that. Max 100 is fine. 



























* Hooked Connecting "Fit-up" "Alignment Pin" Bar with Chisel on the other end. 
** Likely heavy welding. Needs to be sharp and strong.
** Consider making a straight one first. Two wouldn't hurt.
* Wedge to hammer with.
** Definitely welded at least on the the tip and end.
** I say we use a thin plate in the middle as a base, and we drop huge rods on it. 
* Centerline drawing "el" ruler for fabricating
* Centering head with "table" on top for my level and a hole for a pin to drop down.
** Need to make a punch "pin" for the hole. 
*** Put lugs on top and bottom to keep it in

For Fun:

* Hatchet
* Knife
* Build your own dogs. Build a set of 4.
** Would love to make something like this --  http://www.admiralfabrication.com/products/weld-on-style-dogs.html
*** I can build out of carbon steel, I need CNC maybe to make it out of Stainless Steel

* If you could get fancy (and maybe with CNC class' help), build a chain clamp with souped up dogs.
Virtually Linux for hypothetical freebooters, marauders, raiders, buccaneers, corsairs, thieves, plagiarizers, poachers, copiers, reproducers, appropriators, bootleggers, cribbers, lifters, rippers, and pinchers. We're Just Kidding! Crime is illegal. That is a logical truth (but not a tautology). Come Geniuses, let's smell our farts together; let's be masterrace ~DjinniOS users.

*Pronounced: Genius (dʒiːniəs)

* Make it easy to pirate

* ISO Release
** Built on baseline, absolute minimal Ubuntu
** Not rolling release, just Ubuntu release schedule
** x86 (64-bit) only
** Need to a find a way to package it.

* Virtual Machine Release
** Shared Folder with host OS
** Bridged

* It shares itself.
** It offers itself through the various networks
** It automatically downloads the newest ISO and shares it. 
*** Distributed via Resilio Sync clone with no user limit
*** What about BTRFS?
*** We control write keys

* Updates
** apt-get upgrade, snap too
** Automated updates (join the Botnet)
*** Default OFF, obviously. 
*** Custom .deb or .sh files distributed by sync.

* Runs all major decentralized networks
** We want 1-2 tools for each network, but no more.

* Desktop only
** So crazy light that you would be fine running it in VM or VPS
** But make it easy to remote in. Use the right tool.

* Tools
** VPN
*** We force pirate applications through the VPN. Built-in!
*** Comes with VPN services (free ones)
*** Enables us to easily change our VPN information
*** Enables us to easily force things through VPNs
*** Enables chain-VPNs
** Comes with standard darknet tools. 
*** Tor Browser
*** i2p Browser
** Standard P2P networks
*** Torrent Clients
*** DC++ Clients
*** Usenet
*** Gnutella
*** etc.
!! Build-A-Character:

Use your imagination to make your own class.

* Choose 5 abilities of any combination from the following //Ability Types//:
** //At-Will Type// -- standard activated, casted, spammable, auto-attack, and bread'n'butter
** //Daily Type// -- absurdly long CD, save the day, turn-the-tide of the battle, and game-changing
** //Conditional Type// -- triggered upon some event or requires a sacrifice/reagent
** //Innate Type// -- always-on, aura, passive, background, and synergy

* Choose your appearance
** Size matters.<<ref "1">>
** What kind of impression do you make?

* Choose 5 non-magical items and 1 magical item you are bringing with you.
** Assume you already have a satchel/travelbag, a container for water, and some food. Choose 5 more non-magical and 1 magical.
** No cheaty-faced "toolboxes" or "all-in-one" kits. Avoid stacks of items. Be narrow and specific.

* Choose 3 significant weaknesses for your character
** Don't make a character invincible. That's boring. Give yourself a challenge!
** This is a wonderful place to provide flavor and narrative to your character. Make it memorable.
** It is better to broadly and absurdly handicap yourself than make yourself overpowered.

The group and the DM have to agree to your character.<<ref "1">> If you are worried, have other characters or options available. Be flexible.

---

<<footnotes "1" " Was there ever any doubt?">>

<<footnotes "2" "As a reminder to myself: don't be an asshole.">>
I'm always surprised that we don't see Doctors fighting back against insurance companies in a radical way. They have the money, time, power, and even connections to have unique political and economic tools to fight back.

Why not have a consortium of Doctors, hardware and logistics providers, etc. who you literally pay directly. Pay them yearly insurance. Have access to the hospital be free. If you need help, you get it, and in a timely manner. Set performance minimums that are sensible. Then set prices. Make it transparent. Legally harden what it does and ensuring the difficulty of infecting it or forcing it out of the world. Basically, community owned and operated medical facilities are completely possible. If the government won't do it, we could at least allow the free market to push for it (that that the free market is the best of the options). 
* Planet Earth

Dramatized, Editorialized, Political etc.

*The Big Short
* Hypernormalisation
* Manufacturing Consent: Noam Chomsky and the Media

What does it mean to "do your best?" 

I take the goal of this sentiment to point out our innate finitude and fallibility. Essentially, we only have control over so much. We are only capable of achieving so much. We are only human. 

Doing your best at X does not make you good at X. Being better than other people at X does not make you good at X. You can do your best and be terrible at X. Doing you best at X means you can't be blamed, in that instance for X.

But, when are we not doing our best? The small things I want to point out seem to be part of a larger problem that I didn't have control over. 




<<<
The term “Daoism” is highly amorphous, as there is no unitary phenomenon to which it unambiguously refers.<<ref "1">>
<<<

To some extent, I have the same problem with Christianity and any other body of significant existential thought. It is difficult to call it a monolithic thing. That said, there are core aspects of it that I think we can point to. If you can't do that, then what is it that you are pointing at at all?

<<<
While there is no fixed essence of Daoist thought, I find several related notions close to its core: a shift in emphasis from the human to the cosmic, from the artificial to the natural; cultivation of natural life and tranquility; embodying natural spontaneity by diminishing artificial interference (wuwei); and an appreciation for the deeper productive value of emptiness, nothing, retreat, and reversal.<<ref "2">>
<<<

Essentialism is a serious problem in ontology and epistemology. I am not an expert, but as a journeyman, I am worried. Of course, the analytic western tradition fails at the root. We have not solved the initial paradoxes presented to us thousands of years ago. I will keep an open mind.

I know I cannot but help view this through my western lens. It is the framework I have: //tabula inscripta//. This list, no doubt, is tantalizing. The classic problem of defining "natural" will obviously show up in this inquiry.

<<<
Daoism is often explained as the philosophy of The Dao—an absolute and transcendent substance, the utterly unspeakable ground of all existence that lies beyond the world of experience.
<<<









-----------------

<<footnotes "1" "Ibid., vii">>
<<footnotes "2" "Ibid., ix">>

<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">><<footnotes "" "Ibid., ">><<footnotes "" "Ibid., ">>
<<footnotes "" "Ibid., ">>





I love my daughter. She's my creation, and I live for her and her brother. She is amazing (and I'd love her just as much if she weren't). We are very compatible in many ways. I hope to help her become compatible with the world and herself. I hope to help her become a eudaimonic lifehacker, to be happy and to possess (and use) the means to make herself happy. To the best of my abilities, I am preparing her to have a life she finds and will find worth living.

j3d1h is very skilled in many areas. She is deeply existentially aware for her age. She is naturally talented in the humanities (her language abilities make me envious already), and she works hard in her quantitative and formal reasoning (it is what others would think she is best at because it feels so tangible to them). Admittedly, she bears a striking existential resemblance to Alia Atreides from Dune (my wife, k0sh3k, was that as well). I do not know her destination or her potential. I cannot see that far, and there may be many surprises I cannot account for. I must find a way to constructively and wisely be her guide (and for her to see my guidance is worthwhile) while I still can. I am only 20 years older than she is. She will quickly overcome my abilities in many ways. One day, she could easily be my academic and practical wisdom peer or better. I hope we can build a friendship and family partnership for life. 

We are working on empathizing with ourselves, honesty, self-reflection, working hard, doing our best, identifying with our future selves, executive functioning, delaying gratification, thinking about and applying utilitarianism, appreciating and working with our virtue theoretic identities and practices, and understanding the Kantian point of view.

We are working to understand the redpilled nature of the world together, to understand the power dynamics and structures of the world, to appreciate and be skilled in the art of socializing, and to have the means to be happy in a dire world. 

She currently works on the following academic subjects:

* Morning Routine
** Get dressed
** Eat breakfast
** Brush teeth
** Cosmetics
*** Research
** Laundry
** News

* Math
* Problem Solving
* Formal Reading
* Literature
* language Arts
* Curation
* Videos
* Running
* Lecture
* Journal

Academic Bootcamps Available:

* Typing
* HTML/CSS
* Build video creation process
* Budgeting
* Git

She does the following chores each (or every other) day as needed:

* 
* 
* 
* 

She does the following chores each week:
* 
* 
* * 


Here is the drafting structure:

* Ban Phase 1: A, B, A, B, A, B
* Pick Phase 1: A, B, B, A, A, B
* Ban Phase 2: B, A, B, A
* Pick Phase 2: B, A, A, B

I hope to create a set of generalized principles for drafting in pro play.

# You must have at least 2 AD and 2 AP sources of damage.
## Preferably 1 carry of each
## Supports and tanks sometimes should not be counted as sources of damage.
## If you don't, then MR and Armor become too effective against your team
## The exception is an extremely strong hypercarry; then, and only then, should you ever consider a X/1 or 1/X split of AD/AP.

http://brokenmyth.net/drafting-strategies-for-ranked-queue/

!! Comps:

* 2017.07.05
** Top -- Galio
** Jungle -- Zac
** Mid -- LeBlanc
** ADC -- Caitlyn
** Support -- Thresh


!! Template: 

```
* 
** Top -- 
** Jungle -- 
** Mid -- 
** ADC -- 
** Support -- 
```
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 & 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖 & 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 //

///b/ on acid//

I need to dream. I need to hope. In a sense, to some degree, dreaming is what my name means.<<ref "1">> The relationship between dreams and hope must be hashed out.

I have a section devoted to who I was. I have many section devoted to who I am. I need to have sections devoted to who I will be.<<ref "2">> I need a place where I get to be joyful. I need a place that can be practical or impractical. It doesn't matter. I'm just dreaming here. Some of it may come about, and some may not. I'll enjoy the feeling, the possibility, or even the remote experience.

* [[My Wife]]
* [[Family Activities]]
* [[The House]]

---

<<footnotes "1" "The etymology of it is obviously different. The sentiments and historicity of them in my crisis are related.">>

<<footnotes "2" "It really doesn't matter if people think you are crazy. They can't even define the word. Do your best, h0p3.">>
I guess we should start making our own games. Here we go:

* Game Development
** [[DND: Build-A-Character]]
* Characters
** [[Aquina the Shadowmonk]]
** [[Wittlux the Timewalker]]
** [[Snowball the Myrmidon]]
** [[Tobfub the Pacifist]]
** [[Mugeye the Tinkerer]]
** [[Khan the Liger]]
** [[Fuglee Joe]]
* Campaigns 
** [[DND: Summer 2017 Campaign]]
* Ideas
** Ground Hog day...force them through my plot. Keep dying until they get it right.
//The Machinations which give us h0p3 and in humility make us cringe.//<<ref "0">>

Freud, clearly a genius of some sort (whether, how, and why he is right or wrong isn't the point), merits my inspection. He was wrong about a lot of things (I assume, I'm sure, from what I've heard, etc.), but to strike the meme pool so profoundly likely means he struck something important (maybe not gold, but it is possible the toe of a giant). What was his angle? His perspective? What was the crystal he was after? He may have been wrong, but shoulders and giants (different giants). 

```
There is genius inside you. There is madness inside you. We love you. Do not limit the medium. Run with the horses beyond paradigms. Be free and happy my wild genius!
```
Gen//uis//<<ref "1">>

Yeah. We are mortals. We must oscillate. Maybe you are a 21st Century human calling it: bi-polar disorder or multiple personality disorder.<<ref "2">> Those wicked words. We cannot empathize. Judge thee! Condemn! Fight!<<ref "3">> It's hilarious to see how science itself verifies that we lack empathy for abnormal minds (which makes sense; we already know that we fear the unknown, other minds, difference; the unknown is very hard to empathize with). I hope to emerge from my internal battle as a unified, happy creature. That's the goal.

[[R]] thinks I need to decompress. She is right. That doesn't mean I'm right about how I will unwind or what I will become in unwinding (I can't see that far). Problematically, I don't know how to unwind myself. I am tightly bound. 

I accept the Utilitarian equation of my parents. The sacrifice was rational. Move on. It's time to free myself through integration. Admittedly, that sounds like doubletalk. Integration is binding in a coherent, designed fashion. But, this is perhaps just the problem with calling God "good." Adjectives are limits that "box" God in, and even the transcendental cannot escape itself.<<ref "4">>

I'm here to have faith in something (myself) and hopefully other things as well: to take up axioms. I think it is part of being an unmoved mover. The justified unjustified beliefs, objects, and beings (oh yeah, that sounds deep, man). I think Gödel and a mountain of Humanity's geniuses have peered at that deep contradiction. Why should I think I can answer what they couldn't? Maybe I should strive, but it won't be by throwing myself off that cliff.

Okay, let's start over. 

I do have a thread of genius in me. Straight up. Full stop. Period. etc. (do I detect contradiction?). It is a lopsided genius; it does not come out everywhere and for everything. It does not apply to so many aspects of my life. You might think I'm just a weak man with the surprisingly Zeus-like Arm for mental-masturbation. I think there's more to it than that though. I feel the liquid epistemic gold running through my veins. Sometimes, I am virtuous (not morally, but as a practice) by merely breathing and interacting as I normally do. That effortlessness for so many intricate tasks is not an accident. But, before I blow my arrogant-appearing load any further, I also think I'm deeply imbalanced. I have a hard time knowing when I'm being a genius and when I'm being a fool. It is a very wide range. It is our epistemic [[Plight]]. Maybe that is the part of the real bifurcation I've experienced. 

There is a sense in which we must not care about what others think (I don't know if this should count as a lack of empathy though). We should care about who they are, how they feel, how much they partake of The Good, etc. We have to strike the right balance between taking others people's reasons as our own and not. When, why and how: these standards infinitely regress (How do we know the right balance? Who says? Why should we agree and so on, and so forth). 

Now the obviously thing to do is to authenticate with and be guided by authority. It becomes clearer every day that I will not be able to find someone authoritative to wisely correct me on my path. I suppose autonomy is about being your own authority. When you realize all else fails, you can only rely upon yourself.<<ref "5">> Sometimes, and unfortunately on crucial bottlenecks, it can be hard to tell the difference between knowing what I know and feeling like I know. One can be trusted (because he knows) and the other cannot (he only feels like he knows). We all have this. It is the unsolved problematic offered to us by the ancient skeptics. It sucks to be your own counselor and guide; it's hard. 

Yes. This is yet another Gödellian Gateway. Again. =(

Maybe I just need to stop pursuing the Dao of Gödel. Is that hilariously, ironically, farcically, paradoxically: The Way?

What should we hope for? Pursuing the impossible is madness. But, somehow, the possible is merely a shadow of the impossible, and we accept that shadow only because it is has the likeness of the impossible. 

I can say this. I am still convinced there is a profound Transcendental Gödellian Mystery. I cannot comprehend it. It is always there at the edge of my mind's vision; it sits at the doorways I cannot enter; it may even be at the crossroads. I am finally open to the Academic possibility of True Contradictions (IIRC, the illustrious Graham Priest accepts them). Octavia Butler would laugh, cry, and hold me.

The only practical option is to take a deep breath and...confabulate (jk, I think this is reasonable): 

* "Everything is going to be okay." 
* "You should not feel responsible for accomplishing the impossible because it is impossible by definition"
** BUT!!! WAIT!!! YOU DON'T UNDERSTAND!!!!!
* "Nobody is perfect."
* "You are on a journey."
* "Do your best and have a good attitude."

Reframing doesn't make it go away. I cannot make that Cataclysmic Binding Spark of Paradox disappear from me.

Oh, I can see the many intelligent spiritual leaders in my life saying this is God. They really do love me. I know it. But, that doesn't make you right. You want to be right (and I want you to be right), but you have not seen far enough. I am still convinced that I have examined this Spark far beyond what you have. This isn't a judgment. I'm okay (and when I'm not, I'm trying to be okay) with your beliefs; they are justified; I do not blame you. I know you fear the relativistic schism (I do too), but it is the only tool we have here.

I'm not Maud'Dib, but maybe I am a lesser, not even a Count Fenring. I am sorry, but I still do not trust your judgment about what that Spark is, what it means, etc. It is clear that your prescription of how to deal with it does not work for me either (although, I grant it works for many people under specific circumstances). I cannot be integrated around it. 

Is it purgatory for me then? I don't know. Let us see what I can make of it.


----------------------

<<footnotes "0" "It's a fact that people who think about themselves more than others are going to appear narcissistic. It's crucial to distinguish between adaptive and maladaptive self-reflection. Adaptive for whom? Who is this 'I'? What counts as adaptive? Why should we agree that is the standard? I don't know. We enter the [[Normativity Portal]] yet again.">>

<<footnotes "1" "I made an Ogre Shadowknight of him. Silly badass.">>

<<footnotes "2" "Let's be clear. I am not a danger to myself or anyone else. I don't think I would be diagnosed this way (but I think we are sit on spectrums). I also don't think Psychology is even close to unlocking the mysteries of the human mind (it's a joke). We know it is important, but we don't know how much we can trust it. Have you seen the History of Psychology? Have you see how deeply and farcically wrong they are over and over? Why should I think modern scientists are in any better a position? Seriously, when half of the most important contemporary psychology experiments (those experiments which are used as evidence for theories of mind) can't be reproduced, you should guard yourself.">>

<<footnotes "3" "/play mortal-kombat.mp3">> 

<<footnotes "4" "This is not the claim that God exists. This is about understanding the concept of transcendentalism.">>

<<footnotes "5" "That doesn't mean I don't need support, help, or the knowledge of others.">>
For the record, I believe I am a socialist because I believe the working class should own and control the means of production. I support personal property rights and oppose private property rights. I believe capitalism inevitably leads to the enslavement of the masses (to varying degrees) through the theft of labor and systematic oppression of the working class. I believe capitalism endorses a human-eat-human world, fails to protect human dignity, and fails to cultivate mutual respect and empathy in human societies. I believe we are on a moral quest to find and implement a practical and working socialist system on a global scale. I believe we will fail because I think humans are overwhelmingly egoistic, but that doesn't mean we shouldn't try to save our world. I don't have cause for any practical hope outside of my theoretical hope. 

Just because I believe the description of human nature is overwhelmingly egoistic doesn't mean I'm not a socialist, and it doesn't mean my beliefs are inconsistent. This is the key that Andrew Collier (and several other social theorists) are missing, imho. Here is the nuance which OP's quote doesn't quite capture (ofc, it would be hard to do in just a few words):

Egoism can be used *descriptively* and it can be used *prescriptively*. Egoism as a prescription (Ethical Egoism) is the claim you *ought* to be fundamentally self-interested. Egoism as a description (Psychological Egoism) is the claim that our motivations can be reduced to self-interest. 

What does it mean to say our motivations can be reduced to self-interest? 

If the happiness of others is a necessary condition to my happiness, then pursuing the happiness of others is a necessary means to my happiness as an end. I can be self-interested in my final goal while recognizing that I can't achieve that goal unless I actually care about the happiness of others.

Now, you might be quick to claim there is a contradiction or logical inconsistency here. Egoism, in practice, appears self-defeating. If the interests of others is instrumental to my self-interest, then by being interested in something besides myself, I'm no longer self-interested, right? I'd like fire back: isn't it possible that someone can consciously recognize that they love others because they love themselves? 

Why do I love gravy on my mashed potatoes? Is it because I love gravy *tout court*? No. I love gravy because I love the taste, and I love the taste because my mind and body are structured so as to reward me with pleasure for eating that delicious gravy. I love gravy because I love pleasuring myself. I love pleasuring myself because I love myself, i.e. because I'm self-interested. I'm self-interested because my mind and body are often structured so as to reward me for being self-interested. Being interested in gravy is not necessarily inconsistent with my self-interest. Just as I can be interested in gravy in virtue of my self-interest, I can be interested in others in virtue of my self-interest. 

Of course, eating too much gravy is detrimental to my health and ultimately my long-term happiness. It isn't in my self-interest to eat as much gravy as I can. My interest in gravy isn't always consistent with my self-interest. Self-interest requires practicing self-restraint while indulging in gravy. 

Ah, but what happens when my self-interest isn't compatible with your interests? How do I resolve this conflict of interests? Do I weigh them? What principles should I use? 

Ethical egoism bifurcates here. 




Descriptive egoism might be seen as *ad hoc* in its reduction. It seems more like an application of Occam's Razor to me though. 



Say a magic genie could either snap his fingers and make a socialist utopia or leave the world as it is (let us pretend that the genie's lucky wisher understands the implications and possibility of a socialist utopia). Consider the difference between the two following questions:

* What *should* each of us choose? 
* What *would* each of us choose? 

On both ethical and psychological egoism, it seems very likely that the elite ruling class both *should* and *would* choose the status quo. After all, they maximize their personal utility by keeping the working class enslaved and oppressed. 

The working class answers in the other direction. On ethical egoism, the working class obviously benefits the most from choosing a socialist utopia. 


It seems like there's no difference between descriptive and prescriptive egoism so far. They both arrive at the same conclusion. Here's where the difference shows up:



Here's another way to think of it. Rawls' has the concept of a Veil of Ignorance. Pretend you were stripped of your morally arbitrary characteristics, that you didn't know what you life on Earth would be like, what kinds of principles of justice would you select




Clearly, most people on the planet will benefit from socialist policies. 


Psychological Egoism:








Importantly, the description of psychological egoism may even come in degrees. In conceptual analysis, there appears to be room in Psychological egoism for self-interest to come in degrees, that is egoism might possibly be show strong tendencies and high probabilities to be self-interest. There may still be room for us to evolve or change to be more altruistic. Even if 

Most importantly descriptive egoism doesn't have to claim altruism is impossible, just that it is unlikely.

Just because we "are" or "tend to be" a certain way doesn't mean we have to be. If "ought implies can," and if we ought not be egoist, that doesn't necessitate that we descriptively aren't egoists. 


I am a socialist, but I really do think humans have evolved to be fundamentally selfish in important respects. I think cooperation can be innate, but that this cooperation is rooted in an memetic and genetic evolutionary story about individual specimens selfishly electing to cooperate in order to survive and thrive in societies. 

This is centered. It uses your root (for the webserver) directory...mine is /var/www/html. Thus  /var/www/html/images/foobar.gif is where you'd find it.


```
<center> [img width=1300 [./images/foobar.gif]] </center>
```
Why can't I trust my emotions? I think I can't trust my emotions more than the average person. Let me be clear, parts of my emotions are incredibly talented. 

I do philosophy in an emotional way. I've spent a lot of time training the right mental reflexes. In a way, many of my talents have a strong emotional basis to them. It just "feels" right to me. When I follow that feeling, I am very often right. 

Because I fail to empathize with the minds of others so often, so fundamentally in some ways, I am unable to form strong airtight theories of their mind in profound ways. I am constantly shocked at who human beings, who my family, who my friends, and who I am. I am bad an understanding who we are in important ways. My emotions on behalf others' emotions are often not accurate.

And, in important ways, my emotions on behalf of future self are not accurate. My lack of empathy skills has profound consequences. That means I need to arm myself against my emotional ignorance. I know I can't totally trust my emotions, so I need the right tools and pathways to learn how to trust them again. It's why I am writing this wiki.



I'm not entirely sure what this means. It seem paradoxical. It seems to terminate itself as a program.
Naively, empathy is the act of "standing in someone else's shoes." I take the goal of empathy to be concerned with experiencing the complete phenomenologal perspective of another mind. It's about temporarily shedding our own perspective or [[reality map|Reality Map]] and attempting to see the world through the mind's eye of another. 

This is a deeply [[Kantian|Kantianism]] idea.

I take empathy to be part of engaging in the practice of intellectual and emotional charity.

We should be skeptical that perfect empathy is feasible or perhaps even possible in most if any cases. Nobody can truly shed their reality maps. We have to be reductive and inductive. We work with imperfect information. We are limited by time, space, and energy. We can't be ideally-ideally empathic, we can only be ideally-practically empathic. 


Empathy isn't about actually agreeing with someone, but it is about understanding their point of view (and that means temporarily agreeing with someone). Understanding someone's point of view means taking the time to hypothetically agree with them, to see the world from their perspective, to feel what they are feeling for the reasons they are feeling it. Empathy isn't even really about wrestling with the other's reality map or integrating it into your own; it's just being able to say, "hey, that rocks for you, and I'm happy for you" or "hey, that really sucks, I'm really sorry for you." It's about being moved to help each other given that person's reality map. 


Why altruism isn't real. Mirror-neurons fire, and we want the pain in our own heads to go away.

Being kicked in the balls, mirror-neurons fire. You feel their pain. You know what it is like. You have memories of it. It's why we feed hungry people. 



I see the elements of psychopathy and autism throughout our family tree. It's why we are all keenly aware of what real empathy feels like. Why we are so sensitive to it. Why we cry out against evil more loudly than others. Why we hate ourselves beyond reason. 



It's a fact that people do not have empathy for those with what are considered psychological disorders. Even people who understand those disorders, who have years of training in psychology, often fail to provide the same degree of empathy to those with atypical psychologies as they do for neurotypical. It's easy to see the pain of hunger or broken arm, but it is much harder to see psychic pain, particularly psychological pain one hasn't experienced or has little or not understanding of. It's hard to have a real theory of their minds. 


We have a tendency to otherise people we don't understand or agree with. They are different. They are a threat. However much we try to overcome this, however much we think we override our nature, we often fail. Vitally, I think that when we look at someone who violates our reality map, who does what we consider evil, we lose empathy for them. We no longer see them as human, as a person, as rational, as a being of dignity, as an end in themselves. We stop respecting them. They are an enemy of what we hold to be valuable, moral, and true. 


Self-control and delayed gratification boils down to identifying with your future yourself. it is seeing yourself as not just the being perceiving and existing right now, but also that being in the future. Identifying with, however, requires empathizing with. You can't say you are X unless you believe you have an understanding of what X is. Essentially, planning for out futures is a form of empathizing with our future selves. Empathy is the basis of our recognizing and acting as our persistent identity. This is why some psychopaths are well-known for having poor impulse control and executive functioning. 


--------------------------------

Rational Empathy is Wise.

My goal is to engage in tit-for-tat empathy. I'm willing to go first in many cases. This is game-theoretically the most rational method for generating trust. 

What's the difference between trust and empathy? Empathy is a kind of work (we are finite; it is impractical to be perfectly empathic). Trust is a willingness to take on risk. We need to be rational in how we extend trust. Being rational here, I suppose is deeply self-interested. It is in my self-interest to be empathic though. I have to be empathic in the right ways.

Unfortunately, being empathic is very difficult for someone with autism. 

Trust -> Amount of Effort -> Empathic Rewards

This formula doesn't function in a typical way for me. There are deep asymmetries in the empathy I provide toward the world. 

What does it mean to empathize with a psychopath? To take on their point of view, we lose empathy. People less empathic than us are more psychopathic than us. People more empathic than us are less psychopathic than us. How do we measure empathy? 

Is empathy a specific epistemic standard of having a theory of mind + firing our mirror neurons? 
Is empathy a certain kind of effort toward that?

Do we have an empathy limit each day? Are we only able to put out so much effort? (This line may vary). Are we "wasting" empathy on books, videos, fiction, or even true stories and narratives? But, aren't these enabling us to practice this empathy? Maybe it is an empathy muscle we must improve. 

I do exercise my empathy muscles, a lot. I've used them on the wrong things at times. I've not been wise in how I do my empathy weightlifting/training in some ways. 

We need practical and theoretical knowledge about the world to understand the consequences of actions. 
We need practical and theoretical knowledge about people in general to understand how the human mind works.

People who haven't received enough empathy tend to lack empathy for various reasons. People need empathy. I need empathy. How should I respond to not receiving empathy? What is the appropriate amount of empathy that I should receive? 

The problem is partly a divide. Having empathy for autistic people is hard, just as they find it hard to have empathy for neurotypical people. 

 It is very difficult to have a theory of my mind (I can barely make one for myself). 

What is owed to each of us? What is practically available to us? We could be morons and answer the prescriptive question with the description of the world (is-ought fallacy). But, now, we are set into how far each of us can imagine the world "could" be. Those who see far enough into the land of possibility-worlds will come up with very different prescriptions. 

Unfortunately, we can't just be simple as say: "be empathic." That isn't practical. That simple prescription lacks the details, depth, virtuous perception, etc. 


-----------------------

If one can completely explain the phenomena of choice, then we aren’t free. That’s basic incompatibilism. 

When we empathize deeply, where we try to understand someone else’s position, their background, and essentially why they do what we do, we often come to think that person is less responsible for their choices, and instead we think the person is a product of their environment. We should hope that environments can’t explain every aspect of the person’s choice because if there is a complete explanation, then choice is an illusion, and so is what we thought as the ability to be moral agents. 

There is a trade-off in empathy and accountability. The more you empathize, the less you can find someone responsible, and vice versa. I think these notions are in conflict. Empathy, essentially, is a device by which we seek to understand the explanation of the phenomena of choice. It is by putting ourselves in someone else’s shoes that we understand why a person does as they do, and we may become satisfied (perhaps unmerited, I don’t know) that this explanation is good enough to make someone less or not at all responsible via our incompatibilist intuition. 

The question is whether or not empathy reaches toward a complete explanation of why we do what we do. Maybe there is a gap between maximum empathy and the threshold of a complete explanation such that one can be maximally empathetic and still claim there is space in which the moral agent exists. It would be the space we cannot explain, and the space where we cannot empathize. It is the space where if we were in the the shoes of another, we think we really could do otherwise, with no environmental explanation.

I worry that gap doesn’t exist. 


----------------

How can I blame you for your lack of empathy toward me? In important ways, I can't. You aren't as smart I am (no offense). You haven't had a decate of philosophical training like I have. You've been busy with crucial practical problems for excellent theoretical reasons. You've had to take care of the world around you. Of course you will not have seen what I've seen or understand what I understand.

How can you possibly understand me? You can't. This is in part my fault. This is in part your fault, and this is in part no ones fault. 
I'm getting into the Union, I hope. I need to have notes about the books they gave me. I also need to start getting together my resume, etc. Practicing for the interview. I want to walk in as a 3rd year if I can. I need as much experience and knowledge as I can get, preparation as well.

* [[Labor in America: A History]]

Employers I'm pursuing until the Unions (Local Pipefitter and Boilermaker):

* Jacobs
* TEC
* Allied
* Powell
* Performance
* FLSmith (Powell related)
* Quartering tool
* Thompson

Plumbing jobs:

We bootstrap ourselves into more accurate axioms over time. We eventually doubt the core, the bottom, the foundation. That which was axiomatic is no longer. This is what being redpilled (not the common parlance) is all about. There is a deep rationality to it. 
The [[Metamodern]] Virtuous Agent.
* So wet she could drown a baby in her panties.
* Sounds like you're stirring mac'n'cheese.
I've decided to begin playing an MQ2 bot based server with my brother. It reminds me of an idle game. I like the idea a lot.

!! Links

* http://leetsauceforums.proboards.com
* http://www.macroquest2.com/wiki/index.php/Main_Page
* http://everquest.allakhazam.com/

!! Current To-do:

* Gear
** Augments
*** Augments in all my gear
*** 20-vanity slot aug for epic?
** Kael Armor
** Power Sources
** Balls of Leet

* LDON
** Create LDON bot
*** [[LDON Script]]

*** Will have a reset timer.
*** Random "/warp s" solves certain problems
** Create LDON Token Leechers/Rebirthers
*** Increase VM to 12GB RAM + 6 Cores

* Accounts
** Create a "main" account
** Create a "script" testing account

* Kill Script
** Implement Clicky Gear in Scripts
** Create "Win" Button Script
*** Set it to use the button at will, or better yet, to blow it when I drop below X% health.
** Cleanup
*** Keep item list
*** Avoid mobs list
*** Better unsticking
*** Stop casting the healing potion incessantly.


* Ubaid Script
** Beep when he pops. Put this in all scripts.
* Graph -- This word has incredible hype behind it. We use it all the time, of course, but now it is exploding. It's a buzzword. "X" graph is what all the cool kids are saying now.
* Optics -- Face, political/social appearance, the way in which an event or course of action is perceived by the public.
* Grok -- understand (something) intuitively or by empathy. It continues to pick up steam.
* Malaphor -- "It's the creme of the cake"
* [[2017.02.22 -- Existential Log]]
* Canoeing/Kayaking. 
* Camping
* Hiking
* Magic the Gathering
* Playing a video game together
* A theme park
//I dedicate this page to my parents.//

<<<
It is a wise father that knows his own child.

-- Launcelot, The Merchant of Venice
<<<

We have family time every night.<<ref "1">> On Sundays, we have a family meeting. Our family meetings, which this log attempts to capture, is supposed to be more than that just family time. It's a ritual of reflecting together. I consider it a Secularized Sabbath tradition. Even though I don't practice religion or spirituality, there was a wildly successful method to the madness of that memetic tradition which I seek to secularly imitate and enrich.

This log serves many roles. It takes a constant pulse of our family. It is a time to ask constructive questions and find ways to bond with each other. It's a way to socialize and participate in more meaningful family life together. 

We take our family meetings very seriously. They are important to us. It's part of how we get to know each other, and it's part of collectively working towards our mutual familial happiness.

Sometimes these meetings are cheerful and easy, and other times they are emotionally draining and time consuming. Listening to each other and being steadfast, kind, empathic, and wise through these oscillations demonstrates our commitment to each other. That is essential to our love.

Here is the [[Family Log Template]]. Use and modify it wisely.

!! Vault:

* [[2017.03 -- Family Log]]
* [[2017.04 -- Family Log]]
* [[2017.05 -- Family Log]]
* [[2017.06 -- Family Log]]

!! Current Month:

* [[2017.07.03 -- Family Log]]

!! Compliment Collection over the Week

* 1uxb0x
** 
* j3d1h
** 
* k0sh3k
** 

---

<<footnotes "1" "Although, eventually, when I start traveling, I won't be able to participate. I hope to still convene the weekly meetings for these logs. I will do my best.">>
```
!! How has your health been this week?
* 1uxb0x
** 
* j3d1h
** 
* k0sh3k
** 
* h0p3
** 

---
!! What happened last week? Have you been happy this past week? Why or why not?

* 1uxb0x
** 
* j3d1h
** 
* k0sh3k
** 
* h0p3
** 

---
!! What is a positive fact or compliment we can say about each person in the family?

* 1uxb0x
** 
** 
** 
* j3d1h
** 
** 
** 
* k0sh3k
** 
** 
** 
* h0p3
** 
** 
** 

---
!! What will you do this week? Name at least one fun objective and one unfun objective.

* 1uxb0x
** 
** 
* j3d1h
** 
** 
* k0sh3k
** 
** 
* h0p3
** 
** 
```
//I dedicate this page to myself. I'm actually proud of myself for the good work I've done on this wiki. I hope to help my children learn how to honestly speak and empathically listen to themselves much earlier in life than I did.//

We need to set aside time to explore each others wikis. We need to provide constructive feedback. We should offer suggestions. We should provide encouragement. We should tell them what we like about what they are doing. We should show our commitment to each other. This is a place to celebrate each other, to brainstorm with each other, to help each other, and to get to know each other.

* [[1uxb0x's Wiki Log]]
* [[j3d1h's Wiki Log]]
* [[k0sh3k's Wiki Log]]

I honestly wish I could read what my brothers thought. I think this would be a very useful tool for them as well, and it is a way for us to connect beyond phone conversations, video conferencing, and messaging.
To be clear, there is a huge difference between merely open source software and FOSS. We should be supporting FOSS (and nothing less worthy). The question should be rephrased:

Why people should use (FOSS) free *and open source* software?

(1) The claim that "It doesn't cost anything" is not always true. I think anyone who has actually used a wide range of FOSS will tell you that while it is financially free, that doesn't mean there aren't costs involved in using it. Maybe you've heard the joke, "Linux is only free if your time has no value." Linux, of course, is only one example of FOSS, but the joke is a half-truth for FOSS in general. FOSS can be the wild west, and transitioning to it is sometimes not simple. Sometimes it takes valuable time and practice to implement and learn how to use FOSS, moreso, in some cases cases, than for proprietary counterparts. This barrier to entry varies though, and it isn't always a problem for FOSS. There are some kinds of software functions where the easiest to implement and use are FOSS. With that caveat in mind, I think the financial cost is also much lower than many people realize.

Yes, just from the get-go, FOSS is financially cheaper. Depending on your circumstances, you could save an incredible amount of money using FOSS instead of proprietary software. Using FOSS, it is perfectly reasonable that you could save $100-200 (or far more in some cases) on software per machine (OS, Office Suite, etc.). Upgrades are free as well. 

Free and open source software isn't just free, but in a many cases it can do the same job with much fewer resources. The software is often lightweight and computationally efficient. There is a reason the vast, vast majority of supercomputers and servers in the world run on FOSS foundations. That efficiency translates to everyday users as well. Instead of spending, say $500, for a machine designed for a specific task using proprietary software, you can often buy lower end hardware and get the same performance for $300-400 in some cases. 

In fact, FOSS can run so well on low end hardware, you might not even need to buy hardware at all. A number of FOSS ecosystems are designed to run on incredibly slow and/or old hardware. You can take machines that would be thrown away by other people and simply re-purpose them with FOSS. FOSS can be lightweight enough (depending on which pieces of software you choose) to breathe life into old machines that would otherwise go unused. You can't recycle or easily make use of donated machines with propietary software. FOSS can make it simple and cheap.

Lastly, FOSS pushes prices of propietary software down. It makes everything cheaper. Why would you pay $1,000-2,000 for a router with propietary firmware when you can use FOSS firmware that does the same thing with $50-100 hardware? A range of software products are cheaper because FOSS exists. In some cases, particularly newer computer markets, such as tablets and smart phones, FOSS warped the markets (favorably for consumers) from the beginning. Proprietary software has to be sold cheaper to compete. This is a good thing.


(2) FOSS is certainly a wonderful tool for education. First, FOSS often sees more use worldwide, with language compatibility baked right into many FOSS products on purpose. The target audience is everyone, not just those with money - and sharing the wonderful world computing with everyone is a primary goal of FOSS. Second, there are a wide range of FOSS products specifically designed for education, and the low or no cost for these products is a winning combination for students or schools on a budget. Third, learning to use FOSS can be useful occupational training (this isn't why one should be educated, but it is a reason to be educated). FOSS is often the industry standard for many production environments. There are certain industries where FOSS is the de fact standard - the best tool for the job. Becoming familiar with many FOSS products can make your life easier in those industries.

The Raspberry Pi is an examplar educational product of the FOSS community, imho. It is designed for compter literacy instruction, from basic computer science to programming and even automation/robotics. For some of us, it is a toy and a cheap way to do a fun project, but for some, it is an educational experience they couldn't have had otherwise. We are lucky to be part of that community.


(3-4) FOSS, not merely open source software, is adaptable. It is improvable. It is safer. It is something you can mold to your interests and needs. It is the work of many people freely sharing beautiful, useful, and interestings digital objects which make our lives better.

Importantly, I want to emphasize that FOSS is adaptable because it gives us the freedom to do so. As Stallman explains, the freedom supported and respected by FOSS is "the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.” Let that sink in. The best reasons to use FOSS isn't because it is financially free, but because it concerned with respecting and promoting freedom.

FOSS is a moral issue, not simply a financial one (although, financial considerations are also moral ones). Adaptability is just another way of saying, "I can use it the way I want to use it." FOSS respects people as having the dignity and right to use their computers as they wish. 

Ultimately, FOSS is built upon principles of respect, sharing, and cooperation. FOSS is the product of whatever small bit of decency and moral virtue exists in human society. FOSS is ethical. Above all, that is the reason to use and support it. If you don't get it, then you really don't understand what FOSS is all about. 

Computer ethics is a difficult topic. These machines are special, and they enrich moral situations in complex ways. It isn't easy to understand: how things work, responsibility and causation, or the various effects computation has on the rest of our lives. Ethical computation requires having the right foundation, and FOSS hits the mark. It exists for the right reasons, and it is built and used in the right way. It makes moral life less complex (which is a good thing). Putting something as important as computation in the hands of instutitions who are simply interested in making money (and not much else) has some pretty terrible consequences which are, unfortunately, not so obvious to the ordinary person. 

Where possible, FOSS is the right choice.


Beliefs and the algorithms (stored as beliefs) for modifying beliefs are the basic epistemic building blocks to me. Our computers minds are at least partially reducible to that (although something beautiful emerges and supervenes). 
//See: [[Freewill]]//

A cornerstone question of my persistent identity has been: Am I free? 

This is the splinter in my mind. The apex, cosmic, fundamental existential problem rendered unto my naked self behind an autistic, human cage. I fear I cannot escape it.

Well? Am I free? Are we free? To what extent, degree, and of what kind? What does it mean to be free? 

I suspect that people who pass over this problem are fools. 

I want to understand freedom and agree to it. I want to know the how, what, where, why, when, and who of Freedom. I need to understand it. It is an obsession. It has taken me to a terrible place, and I can't unsee what I have seen. I have been reshaped by a pursuit of freedom, of the necessary conditions for love, empathy, and practical rationality. It rules my familial, religious, political, ethical, existential, epistemic, and technological views of the world. It is the centerpiece of my reality map. 

At that nexus, I am torn between two contradictory ideas, and everything is at stake. I'm being pulled apart. I'm experiencing reality map cataclysm with the problem of freedom at the epicenter. My reality map has been exploding and imploding, and I hope it gives birth to some cosmic liferaft I can hold onto. Like Neo and Agent Smith's real fundamental conflict over Freedom, the Matrix of my reality is being destroyed in an epic battle between different parts of my reality map (which just IS me).

I have studied this concept with knowledgeable people (on the shoulders of giants on the shoulders of cosmic world turtles, etc.). None of them can answer me. They all eventually point to faith. It is a question I must answer for and by myself. 

We are machines in a semi-deterministic world. We have to do what we do. We are slaves to something outside of us. I don't deserve to be enslaved. I don't want to be enslaved. I hate slavery. I don't know how I can live as a slave. 

Even if I wasn't a metaethical+metaphysical slave, I'm still one in practical, everyday life. Whether in a political, practical, moral, or metaethical sense, I feel enslaved. I think we are doomed. I think there is no meaning to this, or if there is, we are the sufferers.

I am enslaved by nurture, by nature, by my context and circumstances, by the concept of freedom itself, by bare and fundamental truth to some part of me. It is as if half of my reality map cries one thing, and the other cries the opposite. I am internally at war.

I must re-shape my personality to be stoic, to no longer care about what I can't control, but to give myself the illusion that there are actually things in my control. I have to lie to myself (and paradoxically, I hate lying, and I love myself) to make my life worth living. Maybe I shape my identity through time. But, even that shaper needs a shaper, ad infinitum. At some point, I can just assume some foundational shaper, but that is faith. 

I am very much against unjustified, unexplored, untested, blind faith. It has burned me too hard. I am skeptical because I know the real cost of having faith and being wrong about it. I am not free with respect to not having faith. It wasn't up to me. You can think of this as Pharoah hardening his heart (or God doing it), but that's the truth. As you have basically accepted: we are just reactions to our causes.

It was my purpose to be free and rational. I cannot have any of one without any of the other (Kant was right). Unfortunately, being free is not rational and being rational is not free. My purpose is neither rational nor free. I have no purpose.

I know I can't have certainty. I'm just looking for confidence, warrant, justification, sufficient reason to accept freedom. Epistemically, we might look at prudence as the answer here. It is pragmatic. But, it comes at the cost of truth. It is not-alethic. It is philosophical suicide. I am killing a part of myself to believe I am free.

Even if I have the faith of my metaethical+metaphysical freedom, I will still not be free. It is just the truth of it. Even if I can delude myself, to force myself through habituation to agree, I won't be actually free. It would still be a lie. Ah, but then I'm still not having faith? Lol. Fuck that.

Let's say we magically envisioned "true" faith here in freedom. I still would not be politically and socially free (there are number of varieties). 

I'm not free or I'm not free. I'm not free.
//See: [[Freedom]]//

"Doing the best you can with what you have" or "Doing your best" seems almost like a logical truth. It is obvious to me that when I go to analyze why this is true (why I'm in maximum empathy mode), I see why people have the reactions to their environments that they do. I see them as robots with no ability to do otherwise. I see us as no longer moral agents. 



I just wanted to point out, as a parent, that just because a child stops listening to me doesn't mean they are starting to become autonomous. They still might not be free, they may simply be conditioned, moved by, influenced by, enslaved by things besides their parents. A parent doesn't witness autonomy unfolding (that is our confabulation), they only witness their own loss of control over how the child thinks and "chooses."
As separate from the concept of [[Family]]

I think socialization is deeply invested in processes of approving and approval-seeking of different kinds and to various degrees. That I want to be accepted by you is not a bad thing. I think friendship is concerned with approving of each other in important ways.
* VPS and Dedi's can be had for very cheap (or even free). Seedbox providers which give root access can also provide absurd environments.
* Run a VM on someone else's computer, or run a phone, RPi, or cheap computer. Boom, instant server.
* HTPC/Router/Server/NAS combo
* Pirate
* Open source
* Chromebooks modded and reimaged
* Fire Tablets rooted and reimaged
* Building your own desktop
* Abilities
** Wallflower --  Innate/Conditional:  If he doesn't hum, talk, or directly interact with a person, people will fail to notice him or his actions. 
***While he doesn't have the most interesting personality, his lackluster presence doesn't account for the strength of this ability.  This effect can extend to items that he grabs while a wallflower, as long as a person isn't intently focusing on the item when he first moves it.  
***In combat, he cannot become a wallflower after being noticed, unless flash is used.
*** While he is a wallflower, friend and foe alike does not know where he is, making friendly fire a possibility and friendly heals/buffs  impossible unless the beneficial spells are AoE.

**Stab -- At-Will: Uses two piercing weapons proficiently.  Can do double damage while behind a target.

**Apply Poison -- Conditional: Apply poison to the edge of a piercing weapon in his possession.  Poisons last for 2 hits before fading.  Poisons damage weapons if left on the blade outside combat, so the ability can only be used before an ambush or during combat.

**Flash -- Conditional:  Throw a vial of flash serum, creating a blinding light.  Instantly enter the wallflower state for all entities in the encounter.  Due to the serum being highly reactive, only one serum can be carried at a time, and they can only be created outside of combat encounters.

**Obfuscate -- Daily:  Extend the wallflower ability to an enemy.  Targeted enemy can no longer be perceived by his allies, regardless of any attempts made to get their attention.  There is a small chance that the targeted enemy will be completely phased out of existence.



* Appearance
**Average height human, with gray eyes and slightly gray skin. Face is so unremarkable, often friends fail to recognize him until he talks.
**Plain leather armor with no unique or noteworthy markings.
**Forearms are covered in red tattoos, all of which emit a slight glow.


* Items
** Non-Magical Items
*** Acid Poison -- when applied to dagger, allows the weapon to cut through armor with ease.
*** Fire Poison -- when applied to dagger, the dagger will become extremely hot, increasing weapon damage against light armor and possibly setting targets on fire.
*** Flash serum Kit -- can be used outside of combat to create a flash serum vial.
*** Daggers
***Small Canvas portraits-- small piece of canvas on which three people have been painted.  One of the paintings resembles Fuglee, while the other two is a woman and a young girl.
** Magical Item
*** Ring of Magical Awareness-- wearing this ring makes Fuglee aware of the presence of all nearby magical items, up to 20 feet away.  If Fuglee places his hand against a magical item for longer than a minute, he can get a general sense of what the magical item is capable of doing.


* Weaknesses
** Fade -- If Fuglee stays in the wallflower state for more than an hour, he starts to fade from existence.  While he will never fully disappear, he is weak when faded (-1 to saving throws)
** What a bore -- Fuglee's personality and lack of charisma makes it difficult to make relationships and to get good prices while bartering.  People are often confused when they first notice him and so he makes a bad first impression.
Some words, corruptions, and pronunciations are too delicious not to catalog. They make me giggle. They make me happy. They make me want to speak to others. I need //moar// words like these:

* Moar!
* Interpretatin'
In those cases of fundamental disagreement, I assume we charitably think of each other as desperately wrong in brilliant ways. I take it to be the case that we both make good inferences based upon each of our [[foundational|Foundationalist Theory of Epistemic Justification]] assumptions, but that we have no further justifications or explanations we can give to convince the other of our epistemic starting positions. Inescapably, we all have private reasons or beliefs that by their very nature are prone to convince ourselves, but not others.<<ref "17">> 

<<footnotes "17" "Unfortunately, at the foundational level, complete resolution/agreement is the result of being convinced by someone who is merely pointing to some idea and saying, 'Hey, look at this, I'm convinced it's correct...' without any other further possible justification.">>
//Deprecated, see: [[2017.04.15 -- j3d1h: Gameplan for Homeschooling ]]//

We are working on empathizing with ourselves, honesty, self-reflection, working hard, doing our best, id

* Lecture
** When necessary, we must talk and think about particular subjects or ideas. entifying with our future selves, executive functioning, delaying gratification, thinking about and applying utilitarianism, appreciating and working with our virtue theoretic identities and practices, and understanding the Kantian point of view.

We are working to understand the redpilled nature of the world together, to understand the power dynamics and structures of the world, to appreciate and be skilled in the art of socializing, and to have the means to be happy in a dire world. 

She currently works on the following academic subjects:

* Morning Routine
** Get dressed
** Eat breakfast
*** Read the news
** Brush teeth
** Cosmetics/Hair/Dress and other social expectations...
*** Research
** Laundry

* Math
** Life of Fred
*** Middle school completed
** Khan Academy
*** Almost done with 5th grade; more grinding to do; it's just proof that she can pass tests.
** Singapore Math 
*** Only up to 3rd grade completed; I love the emphasis on word problems and problem solving as opposed to calculation.
** [[Better Explained|https://betterexplained.com]] 
*** This resource is amazing. 
*** Her current preferred assignment. I'm fine with it, since I think the narrative and clear explanations should give her a strong groundwork for advanced mathematics. 

* Problem Solving
** Reading about using Python, Bash, Zsh, and Xonsh (~15 minutes)
*** Working through a [[Linux and CLI ebook|https://sourceforge.net/projects/linuxcommand/files/latest/download?source=typ_redirect]].
*** Reading real-world python and bash programs, commenting them line-by-line to demonstrate understanding, and following up with a mile-high commentary afterwards to show she can synthesize the parts and understand the architecture and purpose of the code she is reading (how the pieces fit together, why, etc.)
** Writing Tools (~45 minutes)
*** Administration of her linux machines, servers, and VMs
*** Writing scripts and automation tools
*** Configuring and organizing her digital life

* Formal Reasoning
** Reading analytic philosophy
*** Current focus is on generalized branches of philosophy, particularly understanding core concepts and terminology. This is a survey of the landscapes.
** Economics, mathematics, computer science, and physics are also acceptable subjects

* Literature
** Reading and discussing a standard university American literature textbook
*** American literature was chosen to test the water, to introduce her to the art of literary interpretation of serious canonical works.
** World literature is coming.

* Spanish
** The primary goal of learning Spanish is to understand languages and English with more depth. 
** The second goal of learning Spanish is to literally become bilingual to some degree. She may become fluent. Right now, it's about the grammar. She has an excellent memory, and her accent is dead on. She may develop a reading knowledge, move to chatting online, and eventually develop an ear and conversational skills. There are many programs available; finding the people to practice with, now that's the hard part.

* Language Arts
** Writing in her personal wiki
** She is finding her voice.
** She is planning her projects, brainstorming, and mind-mapping.

* Humanities
** Religious Literacy
** History
*** Going through Khan's courses for now.

* Curation
** Here she finds resources, bookmarks, and tools. 
*** This is also quite useful for shaping and helping her find content and 
** She searches for answers and practices asking questions.
** She develops a bullshit detector, interprets authority, and discovers the core of "relevance" as she spiders through the world of information.
** Requirements:
*** Find one new tool for the command line, install it, understand it, explor it, use it, etc. -- bookmark it.
*** Find one good news source, bookmarked and organized.
*** Find one good website, by her personal standards, also bookmarked.

* Videos
** School of Life
** Game of Thrones (art worth watching)

* P.E.
** I hope she can make exercise a lifelong habit.

* Journal
** She keeps track of everything she does, reflects, and writes about it. 

Academic Bootcamps Available:

* Typing
** I'd love to see 100wpm for standard English and something comparable for technical/formal/programmatic writing.
** Complete keyboard-based manipulation of her computer is a real goal.
** Becoming an excellent touchscreen typist will also be useful. It must be practiced.
* HTML/CSS
* Build video creation process
* Budgeting
* Git
Here are current games I'm tinkering with or playing:

* [[League of Legends]]
* Idle Games:
** [[Idle Oil Tycoon]]
** [[Idle Tower Defense]]

Here are a list of my all-time favorite games. I found them addictively good, some more than others.

Sublime:

* Pokemon
* Diablo 2
* [[Everquest]]
* Tribes 2
* [[Magic: The Gathering]]
* World of Warcraft
* Tribes: Ascend
* [[League of Legends]]

Honorable Mentions:

* Rubik's Cube
* Minecraft
* Diablo 3
* [[Clicker Heroes]]
* [[Dungeons and Dragons]]
* Chess
* Cards Against Humanity

Mini-Games:

* N (sic)
* [[Hack, Slash, and Crawl]]
* Bloons (series)
* Gemcraft (series)
* The Company of Myself
* Sonny (series)
* Cursed Treasure (series)
* Desktop Tower Defense
* Kingdom Rush (series)
* Infectonator (series)
* Bubble Tanks (series)
* Continuity
* Lightbot (series)
* SHIFT (series)



Over the years, I have argued for the value of gaming. One recurring theme in my arguments is that games, especially MMORPG's, provide a digital playground and life-similar microcosm. There's work to be done, places, things to do, tools, objectives, economies, factions, guilds, social circles, groups, world-events, scripts, mechanics, metagaming, and so many other aspects which create little worlds for us to explore and interact with. We create narratives while we game, and these narratives can be of value to us IRL.

I have long found the Narrativist approach to gaming misguided. I was a pure Ludologist. But, I realize that ludology and narrative cannot be peeled apart. They are woven together. To be clear, I'm not talking about the pulpy storyline of the game itself (it does nothing for me, but that is fairly natural given my context). 

There is IRL value to be found in the digital personal narratives we generate inside the microcosms of games. It allows us to understand ourselves and others in weird ways. Game theory is all about the simplification. There is an unscientific kind of narrative to appreciate though. This is what I mean by useful digital personal narratives. We get to stand back as a 3rd party, as an outsider, as a partially detached agent controlling a character. This enables a special kind of dissociated feedback loop ripe for inspection and reflection.

We might ask ourselves something like: How does the way I play this game demonstrate who I really am? It is the thing which Westworld is talking about. It is the nature of Experience Machines, the Veils of Ignorance, and the Rings of Gyges that we come to know our authentic selves. Gaming microcosms are the existential mirrors we can gaze into.

So...let's do some analysis. I should walk through my games. I'll start with World of Warcraft:

I was the best rogue on two servers, and very respectable (from a ludological standpoint) on all classes. I was very wealthy; if it could be bought, I owned it. I botted my characters (so much fun) and gold, removing the grind, and spent my time thinking about the game and PvPing. I did not socialize in the way other people did (and even WoW players are generally considered to be poor socializers themselves IRL). I utterly failed to connect with most people. I was honestly world-class at the game, and I did it in unexpected ways. I had a very deep knowledge of its design, flaws, and the rich set of interactions in the game. I very rarely lost, and even the members of top guilds on my servers lost in combat to me, even though I had a quarter of the gear they had. I used to throw pure green items on my warlock and still destroy full raid gear players; sometimes I fought naked to show-off. I was a Gladiator. Seriously, I was amazing at the game.<<ref "1">>

I want to understand why I was amazing at the game, a game in which many people played 8-12 hours a day for years like a full-time job.

I'm a loner in games. I do not climb social ladders. I have very few (yet close) friends. I understand the world better

-----------------------

<<footnotes "1" "I think everyone thinks they are good at games. Let me be clear, I know when I am good and when I am not. I'm a plat-V League player, and I truly suck at that game. That was not the case with WoW.">>
I think it is crucial that I find a way to help my son become as happy as he can be given the circumstances he has. Right now, I'm helping him get on track. He's doing a good job. We've done well with what we have. I'm very proud of him. We still have a long way to go though. Maximizing our potential is hard, and we never give up on it. Getting him to do his work without needing to be told is hard, as it would be for any 9-year-old. We're pushing regimen as much as we can. We also keep moving the goalposts (encouragingly!). It is a climb for him. He's doing well. He's working hard. He's got a good attitude. He's doing his best.
* What do you want most in this world, and why?
* What do you fear most, and why?
* What or who do you love most, and why?
* What or who do you hate most, and why?
* Are you religious/spiritual, and to what extent does it influence your life?
* What's your purpose in life?
* If you are dictator of the world for a year, what changes would you make, and why?
* What do you like to read, watch, listen to?
* What do you create?
* [[Stationary Complete]]
Am I a different person when I wear glasses? What about when I wear different glasses? I do feel like I'm in different modes. Fundamentally, I'm not. But, there's a way in which the lens changes who I am, how I see, how subject and object interact. It feels like my interwebs handels.
Apps & Tools:

*Secure Shell


Automation:

*Remote Torrent Adder


Site Specific:

* Craig Buster - Craigslist Mass Autoreply
*feedly
*Hacker News Enhancement Suite
* Pandora Listener
* Reddit Enhancement Suite

Op Sec:

*HTTPS Everywhere
*Mailvelope
*Privacy Badger
*Stop Tracking Me on Reddit
*uBlock Origin
*uBlock Origin Web Socket



Usability and Appearance:

* Deluminate
*Lazarus: Form Recovery
* Stylish
* Lazarus
* Saga
* Who am I?
* Who do I want to be?
* How do I get there?
* Plant the seeds
* Cultivate them
* Rinse and repeat
//I dedicate this page to the following homo sapien philosophers, existentialists, and teachers of humanity: My Parents, Jesus Christ, St. Paul, Kant, Kierkegaard, Frankl, Plato, Aristotle, Hursthouse, Korsgaard, Frankfurt, Marx, Heidegger, Nietzsche, Dabrowski, and Laozi.<<ref "0">> I'd like to think I'm here because of them.//

//I think my mother would agree that I still keep coming back to play with my legos.//

Who was I?

Previously, [[gdoghomes]] and [[4eak]]. In this wiki, I am entering a new chapter of my life. Hence, my name change.

Who do I think I am and will be?<<ref "1">>

h0p3 is:

* the spouse of [[k0sh3k]], father of [[j3d1h]] and [[1uxb0x]]
* a pipefitter apprentice
* an analytic philosopher with an increasing appreciation for Continental and Eastern philosophy<<ref "2">>
* a grey hat computer zealot, freedom fighter, monkeywrencher, and guerilla librarian
* autistic, depressed, anxious, emotionally scarred, lonely, entangled in a volatile fight-or-flight response cycle toward the world
* a poor, broken man, and a box of contradictions, with few options and a bleak outlook
* a reality junkie, cynical skeptic, idealist, contemplative psychonaut, and introspectionist with a very sensitive moral compass
* lost in the desert, voraciously hungry for mythemal fruits from the Trees of Life and Knowledge, wrestling with himself and the transcendental<<ref "3">>
* seeking to be as excellent as practically possible, integrated, well-constituted, unified, empathic, authentic, knowledgeable, enlightened, justified, useful and productive, acceptable if not worthy, and happy
* finding himself; finding h0p3

At the very least, most of this is impolite to say about oneself. It comes off as arrogant, lacking in humility, deceptive virtue signalling, dark-triadic, or cryptically self-important. But, guess what? My life is important to me. I want it to mean something, even if it only means something to me. I might not be doing a good job of it, but I'm at least trying. I wandering, throwing off my dogmatic yokes, and doing my best to find the truth in the desert.

I believe most people would despise what I'm trying to do, what I aspire to be, what I think I'm engaging in, precisely because they are scared of it. I must move past their judgment. It's okay.

I want to know myself and my purpose. I will not take it lightly. I may never succeed, but I will not give up.

My goal is to become a [[eudaimonic lifehacker|Eudaimonic lifehacker]].

-----------------------------

Okay. Enough with the serious part. This page needs to be over the top about me, me, me, right? I'm going to bask in the Authentic Millennial<<ref "4">> Hipsterian Virtue Signaling Cringelight for a moment as I walk down nostalgia lane in defining myself. Let's see if I can spew this social media timeline thing right. Shibboleet:

* a/s/l = 30ish/m/MAGAkek
* Apparently, I shared an imaginary pseudo-friend named Jerry with my brother [[JRE]]; I forgot his name. Also, Heather was an evil bitch, but remember Jabba. Hope you are doing well Jeff and Caren.
* Charmander (because you aren't stupid)->Caterpie->Metapod->Butterfree->Abra->Kadabra->~AllakaWin-the-game-with-a-single-Pokemon. Afterwards, my hand-raised full defense max-PP lvl100 Chansey vs your lottery-winning Army of Six ~MissingNo.-glitched and hacked lvl250-255 Mewtwos.
* Favorites of each D2 class: Hammerdin (with a hint of smite hybrid; dat CB), Enigma WW Kicker/Trapsin Hybrid, Javazon, Fishymancer (with a hint of PB hybrid, /yawn-till-you-win), Static-Orb Sorc somehow, my Classic duped (except the +2 Dual leech ammy we found in a Chaos run!) max STR (nobody saw it coming: IM was instant death) Lance-barb, and as usual: fuck druids
* Since this is a chronology of joy: I learned to touch my penis. What a day, what a day.
* I learned to cherish my Monsters (my computers), my first loves, my second wives, an autist's old friends. l0phtcrack, neworder, astalavista, angelfire, and altavista were just wonderful places for me. Napster, Scour Exchange, Gnutella, and Bittorrent, you opened the world for me. The Matrix is still my favorite movie, and RATM and Rachmaninoff started me on a musical journey.
* Evercrack -- Uberr Gooberr: Fungi, ~CoF, TS, etc. until I saw the sheer virtue in Psykotic the Iksar Necromancer of the Tribunal Server: Pre-nerf ~CoS, Z-heart, etc. I miss Vannja Mahn to this day. TRAAAAIIIINNNNN TO ZONE (or Druid)!
* ~WoW, and Glider, my friend. Wall-of-Text's summarized Vanilla suggestion against Shadowpriests: 1.) Sap/CS into 5 points; 2.) Sap/EA/restealth/Open; 3.) Premed-CS-CB-Eviscerate; 4.) Prevent kiting/healing and respond to fears quickly. /salute, Psykotic the Gladiator and my 19 UD Priest Twink, the best flagrunner I've ever played in any game (OP turtling trollsalt of hopelessness, "QQ moar"). I miss you Zombienoir; I hope you are still alive.
* I remember Roguespot, Hypercynic, and The Source (I'll miss you Nyles) fondly. They were interesting lifetools. I lost myself in those portals and emerged as someone different. Of course, [[> oldfag|https://www.youtube.com/watch?v=dQw4w9WgXcQ]] until years later Reddit became worthy. I'm lucky to live in such a fascinating world.
* Som Tam is amazing,  /salute to the origins of Tor, i2p, BTC, RSS, the Chrome Botnet, etc., Graduate School was transformative (I'll miss you Graham), and LSD is a helluva drug. 
* If I were a character on Game of Thrones, i.e. if I were to identify with or as a character on ~GoT, I think I would be a mix between Tyrion "The Imp" Lannister, Samwell Tarly, Sandor "The Hound" Clegane, Lord Varys, and Maester Aemon Targaryen. Also MFK: Ygritte or Brienne of Tarth, Lady Melisandre (the only physical 10/10 human specimen I have ever seen in my entire life, and it is only during her character on ~GoT so, that says something!), and just one isn't enough, so: Septa Unella, Joffrey, and Little Finger crafted into a Humancentipede in that order.
* Don't miss my [[Television Show Collection]]. I need to write a book collection.
* I'm...like...Korean Wood V in League, and Riven is very sexy cancer (+Morgana for rule34 rito please).

Countless things, events, people, and memories in between. I look back, and part of me is happy with it. I feel so lucky to have had these opportunities.


-----------------------------

<<footnotes "0" "Exactly who and what counts as Jesus and Laozi are serious issues. Regardless of their identities and authorship, I've learned from them.">>
<<footnotes "1" "Since I must identity with my persistent identity through time.">>
<<footnotes "2" "If I were less ignorant, and had less of an //Orientialist// handle on the landscape, I would use a more appropriate term.">>
<<footnotes "3" "Although, I'm still not convinced God exists. From the epistemic standard of certainty, I'm an agnostic; from the standard of confidence and justified belief, I am an atheist. I still take myself to be wrestling with the timeless questions that everyone does, call it God if you want. I think God is a tainted word with the wrong connotations and denotations (except in very select circles) for what I'm after though. No word is going to describe it well.">>
<<footnotes "4" "The 'M' word, but I have corrupted its pronunciation and therefore it's okay when I use it. 'Millenial' is word which also shares a semantic bifurcation between the 'uh'  and 'er' expressions. Only we are allowed to use that word.">>
* Where he's from:
** He was born in ~1963 and primarly raised in the Boston and Brockton, MA area. 
** He lived in the Southie ghetto, but also lived nearby the ocean for a time. He reminds me of Will Hunting from Good Will Hunting.<<ref "1">>
*** He has the poor New Englander mentality deep down in him. It hovers between psychopathic Mass-hole to the classic New England self-deprecation of someone who has experienced significant abuse resulting in at least a mild inferiority complex.
** After his Christian conversion and eventually his parents' conversion, they moved to San Diego. They eventually moved back to Massachusetts. 
** He eventually moved to Chicago to study at Moody Bible Institute, and then to Louisville to study at Souther Baptist Seminary. From there, he moved around Kentucky as a pastor, and eventually to Thailand. He currently spends slightly over 50% of the year in Thailand for tax purposes. 

* Upbringing
** His mother remarried to a rough man, and my dad was their first child. 
** He was raised by people with very poor mental health, amidst substance use, prostitution, psychological abuse, and serious violence. All the kids in his family are fucked up (we barely have a relationship with any of them). 
*** His kids faired no better, it seems; the cycle continues.
*** He has little experience with responsible drug-use (outside alcohol). Given his past, religious beliefs, and his line of work (which mostly sees the bad stuff in people's lives), he is irrationally anti-drug (and raised his children to be so as well).
** He was lucky to have access to decent schools and libraries. Massachusetts is famous for it.
*** He also worked at a very young age to pay for private schools. 
**** He's been a workaholic from a young age. He feels superior in having earned everything he has (and to a large extent he has). He also views the world through that lens and foists the same obligations on others. 
** He was always poor. He fought a lot. He worked very hard. 
*** He has bought into the Christianized American Dream.
**** He would deny it, but it is obvious that he has slowly let go of some of it, piece by piece, but only as he is required to maintain a semblance of logical coherence in his belief system.
**** He has bought the lies about socialism and whole-hearted agrees to capitalism.

* Psychology
** ENTJ
** A psychopath tamed by his faith with strong empathic intuitions towards children. He can turn it off though, I promise you.
*** His salesmanship is part of his dark triadicism.
** He is a very intelligent man, with solid quantitative reasoning skills, and possesses above average knowledge in a variety of fields.
*** His favorite fields likely being Theology/Biblical Studies, Physics, Computer science, and Economics. 
*** His intellectual goal would be somewhere between Spock and what he often refers to as a Renaissance man.
*** And, yet, he is surprisingly anti-intellectual. This is likely because the educated people he meets deeply disagree with him about the fabric of the world. 
** His intellectual contradiction seems to be trusting authority too much while also being contrarian.<<ref "1">>




** He does not empathize with most adults (especially as he aged), but will bend over backwards for children. The thought of children in pain has always been difficult for him to handle. He clearly has his demons. 



* Religious Beliefs
** He's a pastor/missionary. It's fundamental to who he is.
** He believes he has literally witnesses miracles, angels, and demons.
** I believe he has an internal struggle with bisexuality.
*** His roommate, who shared his first name, was gay. This had a profound influence on my father. 
*** He was "funny" or "odd" as a child, and had to "toughen up" when they moved to San Diego according to my grandmother.
*** Has absurd concepts about the nature of human sexuality and how to define it.
*** He's a young sibling.

* Politics
** Conservative/Libertarian
*** The only thing which holds him back, of course, are "the children."
*** Since he has gotten older, he's beginning to see the value in universalized healthcare. This is too late though.

---

<<footnotes "1" "I have the same problem.">>
//Be wise! Do your best! Never give up!//

Here is [[h0p3's Log Template]], inspired by our [[Family Log Template]]. This is a template for helping me interpret and digest strong emotions (good, bad, in between, or other). I need to inspect my volatile and intense emotions. I need to be rational about them. That doesn't mean I should haven't emotions, but it means I need to channel and analyze them to maximize my utility. Sometimes this is about thinking about my blessings, but admittedly, it is often about grinding my way through cognitive dissonance and mental disturbances. 

I'm still going to write random thoughts down and interesting tidbits.<<ref "1">> But, I also want to be more systematic in my self-inspection. I'm using a new template to get what may be the most relevant information out of myself. The goal is help me reframe the world, myself, and my problems. I cannot continue to do the same thing over and over. Solutions require change, and generally those changes must start in myself, my attitudes, beliefs, desires, goals, and behaviors. Start small, work bit by bit, don't expect perfection, but attempt to grow and improve. What more can you do? Be practical, be honest, and listen to yourself.

!!Vault:

* [[2017.03 -- h0p3's Log]]
* [[2017.04 -- h0p3's Log]]
* [[2017.05 -- h0p3's Log]]
* [[2017.06 -- h0p3's Log]]

!! Current Month:



---

<<footnotes "1" "Maybe only interesting to me, but that's kind of the point.">>
```
!! How is your health? Daily routine? 




---
!! What happened? How do you feel about it? What made you feel this way? Does it make you happy or unhappy? Why or why not?




---
!! Can you better explain what happened? Do you have a technological, philosophical, empathic, or redpilled story to tell about the phenomenon? Clarify the narrative you just told yourself. 




---
!! What are you going to do about what happened?

```


* Where she's from:
** Born and raised in Milwaukee, WI. 
** She lived in a fairly middle-upperclass household (at least as we might concieve of it in today's economy). 
** Her father was a banker/manager/digital architect, and I take it her mother was more of a homemaker of sorts.
** Her father is a sociopath, and her mother is mentally disturbed (her husband's gaslighting and psychopathic behavior probably didn't help her). 
*** The Thomas side (my mother's mother's father's side) was pretty rough; lots of alcoholism, etc. 
*** The Dark Triad is strong on my mother's side. I've seen it in most of her relatives.
** When I see Madmen, I think somewhat of my mother's family and upbringing; my mother's was even darker though.
** Her parents treated her very poorly and likely viewed her as a piece of furniture for social events.
** She was an only child.
** A cataclysm in her life is the divorce between her parents (perhaps more scandalous back then).
*** This seemed to set off a chain reaction. Her mother attempted to commit suicide.
*** Eventually, my mother had herself emancipated since it was obvious that neither parent could or would care for her.
*** My mother's grandma (I call her Great Grandma Bubbles, but many called her Betty) took my mother in. She was my mother's parent.
** Eventually, she moved to Chicago to attend Moody Bible Institute, met my father. They got married.
*** Famous story in my family goes: at the wedding, my grandfather handed them a check for $1k and said to never ask for anything ever again.

* Psychology
** My mother is quite knowledgeable and very intelligent. She's a very systematic thinker who relies heavily upon her intuitions.
*** Her quantiative skills are quite poor (which makes her feel bad). Despite significant effort, her ability to understand certain classes of formal abstractions is quite poor. 
*** She reads a fuckton. She reads a wide variety. She follows trends in popular thought. 
** Is interested in Human Resources (one of her PhD programs focused HR Development). 
** Colorbind (quite rare among females), and this difference in perceptions has had impact, I believe.
** She has the impracticality of taking up too many projects. She does her best to organize (almost obsessively).
** She is a true workaholic down to the bone. She loves her work. It's why she lives.
** She definitely has the psychopathic switch in her, and she is aware of it. She clearly fights it though. 
*** INTJ's tend to be psychopaths or high-functioning autistic people. Essentially, they don't empathize in standard ways. INTJs are social deviants (I mean this scientifically, and without negative connotation). My mother is not autistic, hence her natural low-empathy state is likely psychopathic. This is in line with her genetics and her upbringing. Let us be clear, of course, that I'm not saying she is a bad woman. She legitimately attempts to empathize as much as she can. 
**** Psychopaths tend to study human psychology quite a bit. Successful ones, at least. It is part of blending and control. And, she is a control freak, no doubt.
**** Psychopaths, of course, can empathize. I do see my mother attempt to flip the switch on. Much of what I've learned about the nature of empathy comes from her (it's weird to say that I've learned empathy from a psychopath, I realize).
** Terrible migraines, and even worse sleep patterns. She ran on just a couple hours a sleep a night for years. 
*** Our lives would have been very different if they entered the ministry differently. They had to be workaholics to have a chance of succeeding at it from the angle they took.





* Religion


** Her conversion occurred in tweens/teens.



Cheddar Round
You can find this game on [[Kongregate|http://www.kongregate.com/games/Void/hack-slash-crawl]]. It's a very simple RPG-style hack'n'slash dungeon-crawl overt-skinnerbox game. From just a few kinds of choices, a neat (although still compact) complexity and metagame arises. It gives you immediate pain and pleasure rewards that keep you interested and coming for more. There are clear winners and losers. You can test your way through all the possibilities. It is a metagamer's mini-game. This is a guide on how to play it perfectly:

Starting Out:

* Name: //Nom du jour//
* Role (fundamental metagame class):
** You are a scaling draintank who evolves into a Maximum Mobility Indestructible One-Shotting Machine. Few class combinations can actually escape the early game. This is the best at it, and it scales up the best. Technically, there are other, less efficient options. At an extremely theoretical level, there may be a better option than I've pointed out, but it is not obvious it exists (I talk about it towards the end of this article).
* Class: Vampire Reaper
** Vampire's lifeleech is a unique effect in the game. It costs you nothing other than swinging a sword (which just so happens to be the best form of offense). It's free, scaling survivability. Its profound scaling with physical melee damage cannot be replaced (note that +elemental skill damage on weapons isn't affected by lifeleech, although I believe Cursed is). It allows you to heal yourself permanently when you start getting enough damage. For the most part, spell-based healing becomes almost useless very quickly in the game. This is an extremely consistent source of healing at every stage of the game, and it costs you nothing except the opportunity cost of the other options. Also, it has a direct scaling synergy with Critical Strike. Your offense becomes your deepest source of defense. This is what allows you to be a scaling draintank. Only at the End game does it become irrelevant.
*** Werewolf could be quite effective in the End Game when you attempt to become a zone-wide-pull invincible tank relying upon Stamina-based life regen. I've never gotten a werewolf that far since I find vampire to be so effective.
*** Golem may theoretically be the best choice for a bot playing this game into eternity, but I have no proof of that.
** Reaper grants you innate Critical Strike skill. Spam that "1" key on your keyboard! It's the strongest damage multiplier in the game. Its profound scaling with your damage initially enables you to take out packs very quickly, giving you a high clear speed without a ton of risk. In the early and mid game, you ask yourself: Do I have mana? You can take a pack down no problem. Don't have mana? You need to be cautious (particularly in the early game). This skill allows you to become a One-Shotting monster earlier than you would just off Strength. It compresses that window of tanking to One-Shotting and allows you to grind so efficiently that you leap out of the Mid Game to Late Game faster and more consistently than any other option. This should not be downplayed. The best form of crowd control in this game is just killing stuff, period. You tank'n'spank to win, yes, but it is more of a spank'n'spank to win.<<ref "1">>
*** Technically, you can find items with Critical Strike. However, the guarantee of Reaper enables you to make better gear choices in the early and mid game (the hardest part). 
*** Cursed is the only other possible contender. Frankly, not having Critical Strike really sucks. The ability to rely upon Critical Strike from Reaper at all stages of the game allows you to be flexible with your gear and stat investment strategy while maintaining the ability to One-Shot. I consider Cursed to only theoretically be a better option when you are thousands of Floor levels into the game trying to break it in half (playing naked).
* Bonus 1: Marathoner, +10% run speed 
** Earned by travelling at least 10000 distance.
** There are no runspeed items in the game. This is a buff you can't acquire anywhere else. Cutting the travel time is huge. It's a raw increase to your Game-Progress-Per-Minute that scales up to a 10% increase or so.
* Bonus 2: Bonemaster, 20% Chance any skeleton that sees you will temporarily be charmed
** Earned by killing at least 50 skeletons.
** This is an absurdly powerful unique Bonus. Free Charms are hilarious and at times something you need to manage. It does impede your mana regen at times though (so not actually free) and makes you slow down your crawl. Crowd control is incredibly powerful at times (and other times useless; wide range on it). It's a kind of get out of death free card on certain pulls, and other times in the early game (the hardest part, arguably) it helps trivialize certain encounters. Stats from Bonuses and items just don't matter past Floor level 8ish. This ability scales. That said, it eventually becomes useless.
** If you feel confident, and assuming they stack (I have no idea how best to test this besides a literal frame-by-frame analysis which I'm not going to do), you can go for the +5% Run speed Bonus instead. Mid and late game, Charm is a useless skill (but fun in the End Game), and you stop seeing undead mobs anyways. Basically, this second slot doesn't really matter too much. I'd go with the easier Early Game if I were you. Min/Max purists should go for the run speed though.

General Axioms, Mechanics, and Strategies:

* Your Character Level scales up exponentially against the dungeon Floor Level. Stats start snowballing very hard after you begin the mid game. This is why it is so useful to kill everything, even in the late and end game. Kill everything, always. In the early game, you simply need the stats and higher drop rate necessary to develop basic resistances. Eventually, you're trying to complete a set of perfect resist gear, but invested stats always matter. You need to outscale the content to min/max, and that only be accomplished by squeezing every drop of experience (and gear, to a lesser extent) out of each Floor Level.
* With enough resistances, you will basically only have to worry about physical damage. Keep stacking Armor and Stamina, and eventually you won't care about physical damage either.
** In the early game, maximize Ice, then Fire, and then Electric resists. Ignore Poison entirely. Eventually, Ice and Fire will be all that matters. At some point in the end game, you don't even really care about resistances so much. Your stamina will be so high that you can technically tank packs naked (not for long; it's very unsafe even in the End Game).
** Ice is the first and most important resistance since the Ice Chargers are very dangerous, completely unkitable, and make splitting camps risky. Fire is next most important. Get Ice and Fire to 100 resist (beyond that has no effect). You can do just fine with Electric at 50ish, but eventually you drop it entirely (like Poison). 
* Invest +3 Strength and +1 Stamina every level until you have enough Strength to One-Shot everything. Afterwards, invest in a more balanced fashion in Strength and Stamina to maximize your survivability while still maintaining One-Shot power (Fishing and Charging are the only real complications, unless you don't mind spamming Critical Strike for every swing).
* Save your gear. You should be evaluating the best balance of stats. You will switch gear out from your banked items. Saving a full set of each resist-type gear is worthwhile. 
** What else are you going to do with your inventory space anyways?
** At the End Game, you'll only keep Fire and Ice Resist gear.
* Maximize white/physical/melee damage by maximizing base weapon damage. Ignore elemental damage on weapons. 
* After the beginning stages of the Early Game, abilities outside of Critical Strike, Charge, and Wild Charge are irrelevant until you hit the End Game, where you build whatever you want to build for aesthetic reasons. Value Resists and AC on your non-weapons until your level-based stats are the fundamental reason for your brokenness. 

Game Stages:

* Early Game
** Pull carefully, kite when necessary, and make sure you heal up before major encounters. By Floor level 6ish, you should start to slow down and be careful. Life doesn't become EZ-mode until around Floor level 15 (assuming you've had decent drops).
** Remember that you can't kite/escape from chargers. Kill them first. Be extra cautious on your pulls when you start seeing them. 
** Prioritize targets that deal the most damage, which is generally whatever your weakest resist stat is at the time.
** Electric Resist still matters here.

* Mid Game
** Starts around Floor Level 15.  Here is where the game becomes trivialized. You are perfectly safe playing even half asleep. Progress beyond here is due to your min/max interests and how you construct the value of gaming for yourself.
** You start leveling insanely hard and profoundly outscaling the content. You should be quite strong. You start by 3-shotting and tanking all day. You don't have be terribly careful when you pulling. Spam your Critical Strike. You will begin to one-shot with Critical strike very quickly. Ride that gravy train.
** You stop seeing skeletons, and your passive Bonus becomes useless.

* Late Game
** You get to a point where you weapon damage and Strength are high enough that you can One-Shot without Critical Strike, but you're still likely grinding Strength up. Here you need to eventually switch to having Charge, even if it costs you some white damage or perhaps defensive stats if you are not risk-averse (you may need to Crit strike, it depends on your Strength investment). Your mana regen should naturally be broken at this point.  In many cases, Charge with Crit is a faster clearing speed than One-Shot without both Crit and and Charge. You need to get lucky on item rolls too for a while.
*** One of the core itemization problems is that you really want Charge, often on your weapon, so that you can maximize your stats on your other gear without giving up a slot for Charge. But, you also fundamentally want the highest white damage you can find.
*** Remember to start investing in a balanced way between Strength and Stamina. With Charge on a non-weapon slot, you can use the highest damage weapons you find, and this means you can dump everything into Stamina.
** Armor is one of the few ways to maximize your survivability. It scales on items unlike resists, and that's because mob physical damage is the only major scaling offensive component of enemies at this stage. You will spend a lot of time hunting for gear with the right AC and Resists.
** Electric Resists stop mattering here (it may have stopped mattering in the Mid Game for you); it becomes much easier to just go Charge on an armor slot and take max white damage on your weapon at this point.
** You'll be able to safely multi-pull and tightly pool them together to make it easy.
** You should see that casters do no damage (may have started in the Mid Game as well), although you'll take non-scaling electric damage from the "Eye" mobs.

* End Game
** You get to a point where you can out-regen the unmitigated damage you are taking. Survivability scaling at that point is about how many simultaneous unmitigated mobs you can tank while maintaining max health.  It's just melee and possibly some Electric (depending on where your resists are at and how far in the End Game you are).
** End Game goal: to pull the entire zone and outregen their damage. Pure and total invincibility. 
*** In Practice, only so many mobs can surround you and hit you at once. Technically, you need to maximally surround yourself with physical damage dealers and outregen that. That's the maximize possible damage you can take at this stage of the game.
** Eventually you can basically pull most of a zone at once. Be careful though. This is unsafe and unnecessary when you first start the End game (you don't want to be surprised).
** Loot all weapons, even the white commons. You'll only want to loot Green (uncommon) and Blue (rare) non-weapon items though. You are looking for max damage on weapons, but you are seeking a very specific mix of stats on your other gear that require green/blue.
** The End Game Question is: What functional gains are available to me? There are several mechanical boundaries that I probably can't know without seeing the game's code.
*** Is there Charge + Resist gear? I've never seen it. 
*** What are the limits of AC's utility? Eventually, your itemization boils down to maximizing this stat and your weapon damage.
*** How do you maximize defense? Permatanking a zone seems to be it.
*** How do you maximize offense? One-Shot without Crit using a Fish, maintaining Charge on another item slot.
*** Is there a stat-gear point where clearing the level is irrelevant? Do mobs fail to scale beyond a certain point? Their HP scales, but it is unclear to me how their physical damage scales. I need to see the equations.
** Once you Achieve 200-250 Stamina, you can permanently tank multiple mobs (depending on their types and your gear). You need to push very hard in Stamina to be able to tank a zone though. At around 750 Stamina, I found it very difficult to find any zones which I couldn't permatank.
** Make sure you can One-Shot without Critical Strike to preserve economy of motion.
** Late and End Game Itemization is difficult. You are sifting through tons of gear, a large portion of which is newbie gear, trying to find even remotely viable pieces.
** As you noticed long ago, casting, for you, is irrelevant. It's for fun. It just doesn't scale like physical damage. It's about them style points.
** You'll find mob HP bars fill the entire screen. It annoyingly looks like your video card is tearing your screen when you kill them.
** Looting becomes a chore, especially since it gets in the way of targeting mobs.
** You become happy with the increasing aggro radius because your life just gets easier when they come to you.
** You get to a point where Fire Resist is not necessary for survival. It's mitigation qualities still maximize your survival for most packs though. Hence, you should still use it. What else are you going to do with those item slots?
** Fishing
*** Itemization is odd in this game. Drop rates do not make sense. My intuition feels like there is something odd in the programming here in multiple ways. e.g. I cleared 90 dungeon levels (char lvl 354) before I saw a single +50 fire resist ring, and that was only after shuffling my items around. I worry that item drops are literally based upon the items you are wearing. 
*** Maybe there is one perfect set of gear (instead of multiples, but this seems very unobvious to me). Technically, using the Fish might be the best way to find it.
*** It's a pain in the ass to raise your Strength high enough that you can One-Shot with a Fish-weapon without Critical Strike
** You will be grinding for perfect gear. In general, there is one exception, a single armor piece (Boots are often best) should be AC + Charge (although, at certain points in the game, Charge will be on your Weapon). Basically, you want to One-Shot without Critical Strike, with Charge, with 100 to both Fire and Ice resists, while maximizing your AC. You keep multiple sets of gear to make sure you can shuffle to maximize that AC.
*** Weapon: max white damage, charge is amazing; if you have charge elsewhere, and if you have the Strength, then go for a max-damage Fish. 
*** Head: AC, Fire or Ice Resist, and Spell (spells aren't generally useful; it's just style points)
*** Chest: AC, Fire or Ice Resist, and Spell  
*** Boots: AC, Fire or Ice Resist, and Spell 
*** Ring 1: Fire or Ice Resist, and Spell 
*** Ring 2: Fire or Ice Resist, and Spell 
** Style points
*** Beautiful gear
*** All the skills! Pet skelly is useless, but silly fun.

* Prestige -- Hyper-End Game (theoretical)
** Anyone who has read this far and played through to where I've been would realize I'm insane. I took this game to the max. I love the punishment of the grind, the skinnerbox addiction. There is a place I dare not go because I'm not sure if it exists in this game (effort-wise, it would be cheaper to reverse engineer the game and do the math to figure out if this is even possible than to actually attempt to practice it). I have two theoretical Hyper-End Game points.
** Theoretically, you may be able to get enough Stamina that you can permatank naked. At Floor 100, I could permatank with 100 to Fire and Ice resist, but I couldn't permatank at 50 to Fire and Ice resists (although, I could safely tank with vampire). Perhaps with enough investment you could get there. Technically, Golem Cursed at 40 innate resists or possibly Werewolf Cursed (depends on how regen scales at this stage of the game) could hit this point much earlier than others. 
** Theoretically, it may be possible to be a Hyper-End Game spellcaster! With Charge + ~AoE spellcasting, you could improve your clear speed considerably. Assuming one could ride their hyper-scaling white damage far enough (could be millions of levels for all I know), and assuming that intelligence could eventually scale up to One-Shot (that is not obvious at all, and if it did, it would be a monumental up-hill stat climb to scale up that hard), then investing hard in Intelligence while being invincible would allow you Charge->Instant-Wave-Clear from room to room. This is the fastest you could clear levels. At some point, perhaps after billions of levels, the theoretical Hyper-End Game spellcaster (perhaps the ultimate final form of the Vampire Reaper class) would push hardest and fastest into the presumed infinitude of levels of this game. The Reaper could allow Strength to be much lower and push Intelligence very hard and much earlier than others classes.
** Hence, my theory is that the absolute best Hyper-End Game nearly naked character (need a weapon for ~AoE damage and an item with Charge on it, preferably a Chest with max AC) is a Golem Cursed with ~+15% Bonus runspeed who Charges and  One-Shot ~AoEs (and One-Shot melee, of course). It is likely the case that only a sped up version of the game could achieve that in our lifetime. A bot, nonetheless, is the only thing which could achieve this.
** I'd like to point out how absurdly long these theories would take to accomplish in practice. 

* My Longest Game:
** Character Level: 425
** Floor Level: 100
** 17180 HP, 868 Stamina
** 1168 AC
** Full set of max (for my zone level) AC + Charge gear for all slots
** Full sets of max (for my zone level) AC + Resists for Fire and Ice with Skills
** 400 damage Fish, 850 damage standard weapon
** 82,087,300 Pearls

-----------------------------

<<footnotes "1" "Theoretically, you could eventually find itemization which made it so you had the perfect gear that just so happened to include Critical Strike. At that point, there are technically better options. In practice, however, you just want to wear the highest damage weapon you can find at all times.">>
Wikipedia says:

<<<
Happiness is a mental or emotional state of well-being defined by positive or pleasant emotions ranging from contentment to intense joy.[1] Happy mental states may also reflect judgements by a person about their overall well-being.[2] A variety of biological, psychological, economic, religious and philosophical approaches have striven to define happiness and identify its sources. Various research groups, including positive psychology and happiness economics are employing the scientific method to research questions about what "happiness" is, and how it might be attained.
<<<

That's a good starting place, but it lacks substance. It's really hard to define because happiness has subjective components to it. It makes sense why it is hard to give a universalized, objective account of this concept. Perhaps happiness boils down to experiencing what we want and need, or perhaps it is what we would want or need assuming we were in an epistemically ideal position to decide. Perhaps it is something else entirely. We may never actually know, but we all act on the assumption that we do know to some extent (else we couldn't act). 

Importantly, each of us spends time figuring out what we think happiness is (some more than others, some more consciously than others, etc.), giving substance to the concept. It is our pragmatic plight as humans that we put our tent-pegs down (and sometimes move them) on a usable definition of happiness. Humans innately come with genetically-founded categories in their minds to interpret the worlds around them (hence why empiricism is not a complete description of our knowledge), and some initial concept of happiness is no exception. 

I believe at least part of our concept of happiness is a construct in the algorithm that comprises the rewards center of our brains. Of course, there are other emotional and intellectual components to how we define and employ the concept of happiness. 

A pragmatic, intuitive definition of happiness is embedded in the faster-acting part of our minds. Our Kantian, deontic, and also virtue-theoretic reasons, beliefs, and inferences are part of that gutteral, intuitive, emotional parts of our brains. Unfortunately, it is the source of confabulation, but we cannot escape using this tool. As a practical matter, we simply must rely upon those judgments and decisions which occur in the blink of an eye. It is our goal to train our intuition, to shape it, to habituate it in the right direction. Some people have extremely accurate "gut feelings" because they reliably trained themselves. Similarly, our faster-acting 

Our slower-acting, more deliberate frontal lobes also give shape to how we understand happiness. This is where we engage in 


While I've studied the concept of happiness for a while now, I don't claim to have the answer. I can only give you my best approximation and set of concerns for it. I am hopelessly unable to transfer my body of thoughts on this topic to you. Here's a distilled, stilted, and oversimplified set of my thoughts on the concept of happiness:

Happiness is likely some form of classic //eudiamonia// theoretically definable in terms of utility. Happiness is not some nicely monolithic or easily measured kind of flourishing or well-being, but whatever the standard may be, there are objective measurements to it. I'm forced to ask certain initial questions:

* What does it mean to flourish as a human being? 
* Are there different kinds of human flourishing, just as there are different kinds of humans? 
* Pleasure is (or at least can be) a part of happiness, but what are the other parts?
* What parts are necessary for my flourishing, and what configurations of parts are sufficient for my flourishing?
* How do I know which instances of flourishing are better than others?


I see my flourishing as including basic necessities, but also a great deal of moral luck (technical term).
```bash
#!/bin/bash

# Headless Lubuntu Server
sudo apt-get install --no-install-recommends lubuntu-desktop -y
sudo apt-get install xserver-xorg-video-dummy -y

# Write the bogus config file
sudo cat <<EOT >> /usr/share/X11/xorg.conf.d/xorg.conf
Section "Device"
    Identifier  "Configured Video Device"
    Driver      "dummy"
EndSection

Section "Monitor"
    Identifier  "Configured Monitor"
    HorizSync 31.5-48.5
    VertRefresh 50-70
EndSection

Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1024x800"
    EndSubSection
EndSection
EOT
```
// I dedicate this page to Sir Graham Bounds.//

This page is meant for users other than myself. 

Let's be clear, the wiki is ultimately addressed to me. I'm having a very long-term conversation with myself. It's a lifetool for me. However, you may, for whatever reason, find it worth reading this wiki.<<ref "1">>

Here are some [[Tips for Using this Wiki]]. It may be useful to you, the interpreter, to have a better understanding of the functionality of this wiki. You may also find more interpretation tools in 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖. To be clear, I use the latest version of Tiddlywiki. That may help you understand some of the technical aspects of what you are seeing as well. 

The [[🢔⦗Home⦘🢖]] page should be your starting point, generally speaking.

I suggest reading in roughly this order:

#🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 
#🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 
#🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖 
#🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 
#🢔⦗[[Vault|The Vault of h0p3]]⦘🢖 

The order isn't clean. There is enough interplay, synergy, reference, and complexity in these contexts that it will be difficult to actually peel them apart enough to have a perfect hermeneutic stack to read. If I ultimately knew exactly what I was doing on this wiki, we wouldn't have this problem. Alas, I can only do my fallible best, and thus you will have to do your's as well.

I would like to point out the sidebar, which is immensely useful for staying current. "New" shows newly created tiddlers. "Recent" includes not only those newly created, but also those recently edited.

Since I write this for myself, I really only pay attention to how it looks on my screen. You shouldn't have to (since this .html file should be functional enough on most devices), but if you want to replicate my view, try Firefox on Linux at 1920x1080 resolution. Some unicode symbols may not appear correctly on your screen; for now, that's a problem between you and your computer. Also, I suggest reading the wiki in full screen. You'll get the same feel effect that I do. There's a full-screen button in the top right corner. For some browsers, you can just F11. These will toggle for you.

As always, feel free to 🢔⦗[[Contact]]⦘🢖 me with any questions. 

Lastly, I implore you to exercise empathy in your judgment.<<ref "2">>  You are reading my personal journal. We are parting with many privacy conventions here, and that means you should be exceptionally careful in your evaluation. After all, if you had taken the time to write and share a brutally honest personal journal, what do you think we would be tempted to say about yours?

---

<<footnotes "1" "For example, I have asked my brother [[JRE]] to help me reflect upon 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 as well as read the contents of the wiki itself. This is a lot to ask, but I trust his opinion and value his feedback. I realize I can't do it all on my own, and having input from him would be very useful.">>

<<footnotes "2" "Matthew 7:5">>
//1.1 x 10^^77^^ key combinations and quantum computing only cuts this in half. Let's pray it isn't naturally weakened by the National Security Adversary.//

I literally wrote and compiled a book, <a href='h-book.7z'>Highdeas</a>, for a year or so. I think parts of it are excellent, and I think parts of it are terrible. I'm still thinking about what I will do with it. It is the direct predecessor to this wiki-journal. A lot of what I loved about writing while high was that I took having conversations with myself seriously. I was forced to empathize with myself. It was good for me, and it helped me find the will to overcome my existential crisis. Drugs aren't for everyone, but I'm convinced they saved my life multiple times.

In it, I've compiled trip-art, recorded conversations with myself, and engaged in some letter writing with family and friends. The goal was to write the book entirely while high. I had unique sections of writing while on different substances. There were two sections devoted to writing while sober, one a place where sober-me could have conversations with high-me, and the other was simply a place for sober-me to have a voice in the book. Much of it is silly, some of it is incredibly serious, and there were some interesting construction ideas used to make it. Ultimately, this wiki fulfills the functions I was trying to build into the construction of the book in a much better fashion. Hence, I've stopped writing the book. I leave it here only for posterity's sake.

You should also check out the [[Psychedelic Video Collection]] I compiled during that time period as well. 

I have plenty of writing from this period that still matters to me, but it is scattered. I will slowly collect it together:

* [[VPN Interview]]

```
// Lands - 22
1 Ancient Den
1 Seat of the Synod
1 Vault of Whispers
1 Great Furnace
1 Darksteel Citadel
1 Tree of Tales
1 Glimmervoid
1 City of Brass
1 Ancient Tomb
1 Blinkmoth Nexus
1 Inkmoth Nexus
1 Mishra's Factory
1 Inventors' Fair
1 Sea Gate Wreckage
1 Spire of Industry
1 Mana Confluence
1 Academy Ruins
1 Underground Sea
1 Volcanic Island
1 Tundra
1 Polluted Delta
1 Misty Rainforest

// Scaling
1 Arcbound Ravager
1 Disciple of the Vault
1 Cranial Plating
1 Master of Etherium
1 Steel Overseer

// Glue - 4
1 Ornithopter
1 Vault Skirge
1 Memnite
1 Signal Pest

// Assholes - 5
1 Phyrexian Revoker
1 Ethersworn Canonist
1 Spellskite
1 Tidehollow Sculler
1 Etched Champion

// Beats - 6
1 Frogmite
1 Myr Enforcer
1 Walking Ballista
1 Baleful Strix
1 Tidehollow Strix
1 Epochrasite

// Acceleration - 5
1 Aether Vial
1 Springleaf Drum
1 Mox Opal
1 Paradise Mantle
1 Etherium Sculptor

// CA & CQ - 5
1 Thoughtcast
1 Tezzeret, Agent of Bolas
1 Enlightened Tutor
1 Muzzio, Visionary Architect
1 Silas Renn, Seeker Adept

// Combo - 3
1 Stoneforge Mystic
1 Umezawa's Jitte
1 Batterskull

// Burn - 3
1 Galvanic Blast
1 Lightning Bolt
1 Shrapnel Blast

// Combo - 2
1 Thopter Foundry
1 Sword of the Meek

```
I'm definitely rusty. The kids wanted to build tribal themed decks. Here's my whipped together pile:

```
// Lands - 20
1 Cavern of Souls
10 Forest
1 Tropical Island
1 Breeding Pool
1 Savannah
1 Temple Garden
1 Windswept Heath
1 Misty Rainforest
1 Verdant Catacombs
1 Wooded Foothills

// Elven Ramp - 7
1 Heritage Druid
1 Birchlore Rangers
1 Fyndhorn Elves
1 Boreal Druid
1 Elves of Deep Shadow
1 Elvish Mystic
1 Llanowar Elves

// Scaling Mana Sources - 4
1 Rofellos, Llanowar Emissary
1 Priest of Titania
1 Elvish Archdruid
1 Gaea's Cradle

// Tutors & Cheats - 10
1 Elvish Harbinger
1 Green Sun's Zenith
1 Natural Order
1 Fauna Shaman
1 Time of Need
1 Chord of Calling
1 Tooth and Nail
1 Crop Rotation
1 Sylvan Scrying
1 Elvish Piper

// Toolbox & Bombs - 4
1 Reclamation Sage
1 Regal Force
1 Progenitus
1 Emrakul, the Aeons Torn

// Snowball Card Advantage - 6
1 Beck // Call
1 Glimpse of Nature
1 Sylvan Messenger
1 Edric, Spymaster of Trest
1 Oracle of Mul Daya
1 Momir Vig, Simic Visionary

// Tricks & Tiny Combos - 3 
1 Wirewood Symbiote
1 Elvish Visionary
1 Quirion Ranger

// Tribal Synergy - 7
1 Dwynen, Gilt-Leaf Daen
1 Eladamri, Lord of Leaves
1 Ezuri, Renegade Leader
1 Imperious Perfect
1 Mirror Entity
1 Wren's Run Packmaster
1 Joraga Warcaller
```


```
// Lands - 20
1 Windbrisk Heights
1 Flagstones of Trokair
1 Mistveil Plains
1 Wasteland
1 Rishadan Port
14 Snow-Covered Plains
1 Scrying Sheets

// Life gain - 4
1 Soul's Attendant
1 Soul Warden
1 Martyr of Sands
1 Auriok Champion

// Beats - 3
1 Serra Ascendant
1 Champion of the Parish
1 Student of Warfare

// CA & CQ - 7
1 Ranger of Eos
1 Mentor of the Meek
1 Weathered Wayfarer
1 Proclamation of Rebirth
1 Return to the Ranks
1 Emeria, the Sky Ruin
1 Recruiter of the Guard

// Pump - 10
1 Honor of the Pure
1 Mikaeus, the Lunarch
1 Adaptive Automaton
1 Mirror Entity
1 Glorious Anthem
1 Path of Bravery
1 Spear of Heliod
1 Thalia's Lieutenant
1 Shared Triumph
1 Kongming, "Sleeping Dragon"

// Assholes - 11
1 Kami of False Hope
1 Story Circle
1 Kor Haven
1 Mother of Runes
1 Beloved Chaplain
1 Grand Abolisher
1 Hanweir Militia Captain
1 Imposing Sovereign
1 Thalia, Heretic Cathar
1 Preacher
1 Riders of Gavony

// Removal - 3
1 Oblivion Ring
1 Mangara of Corondor
1 Karakas

// Other - 2
1 Aether Vial
1 Umezawa's Jitte
```
```
// Lands - 24
1 Scrying Sheets
1 Mikokoro, Center of the Sea
1 Geier Reach Sanitarium
1 Sea Gate Wreckage
1 Emeria, the Sky Ruin
1 Mistveil Plains
18 Snow-Covered Plains

// Spot removal - 6
1 Swords to Plowshares
1 Path to Exile
1 Celestial Flare
1 Journey to Nowhere
1 Wing Shards
1 Oblivion Ring

// Sweepers - 6
1 Wrath of God
1 Martial Coup
1 Day of Judgment
1 Akroma's Vengeance
1 Austere Command
1 Oblivion Stone

// Forcing Overextension - 8
1 Maze of Ith
1 Kor Haven
1 Pulse of the Fields
1 Wall of Omens
1 Peacekeeper
1 Story Circle
1 Moat
1 Humility

// Tutors and CA - 4
1 Enlightened Tutor
1 Idyllic Tutor
1 Staff of Nin
1 Journeyer's Kite

// Wincons - 12
1 Eternal Dragon
1 Decree of Justice
1 Batterskull
1 Elspeth, Knight-Errant
1 Elspeth, Sun's Champion
1 Hoofprints of the Stag
1 Rest in Peace
1 Helm of Obedience
1 Endless Horizons
1 Goblin Charbelcher
1 Isochron Scepter
1 Orim's Chant
```
```
// Lands - 20
1 Desolate Lighthouse
1 Geier Reach Sanitarium
1 Polluted Delta
1 Bloodstained Mire
1 Verdant Catacombs
1 Misty Rainforest
1 Arid Mesa
1 Scalding Tarn 
1 Flooded Strand
1 Wooded Foothills 
1 Marsh Flats
1 Underground Sea
1 Watery Grave 
1 Badlands
1 Blood Crypt
1 Volcanic Island
1 Steam Vents
1 Island
1 Swamp
1 Fetid Pools

// Mana Acceleration - 3
1 Lotus Petal
1 Dark Ritual
1 Chrome Mox

// Reanimation Targets - 9
1 Elesh Norn, Grand Cenobite
1 Inkwell Leviathan
1 Iona, Shield of Emeria
1 Griselbrand
1 Ashen Rider
1 Tidespout Tyrant
1 Grave Titan
1 Jin-Gitaxias, Core Augur
1 Empyrial Archangel

// Reanimation Effects - 10
1 Reanimate
1 Exhume
1 Animate Dead
1 Dance of the Dead
1 Show and Tell
1 Life // Death
1 Necromancy
1 Coffin Queen
1 Doomed Necromancer
1 Diabolic Servitude

// Dump - 11
1 Careful Study
1 Entomb
1 Collective Brutality
1 Thoughtseize
1 Unmask
1 Hapless Researcher
1 Compulsion
1 Izzet Charm
1 Insolent Neonate
1 Faithless Looting
1 Funeral Charm

// Goodstuff - 7
1 Force of Will
1 Daze
1 Spell Pierce
1 Brainstorm
1 Ponder
1 Lim-Dûl's Vault
1 Impulse
```
iVBORw0KGgoAAAANSUhEUgAABDMAAADOCAYAAAAjdElvAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QMMFyACfllXlAAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAACAASURBVHja7N1pcFvndTfwP/Z9B0hsJMF9ExeJ1L7bkpx4Uxwndhw7aaZTpx/SNpO2H9pkptN8SGeSTKczTcZt4iaxndWx40a2YqWSLMmSrCikKJHiKu4kCIIgQYDYt3uB94Pm3pcUSUmUKImUzm8mEw8FXIAPLnGfe57znCPI5XI5EEIIIYQQQgghhKwTQhoCQgghhBBCCCGErCcUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6IqYhIA+Lzs5OHD16FACwe/du7Nq1iwaFEEIIIY+0UCiEP/zhDxgbGwMA/PM//zMNCiHkoSDI5XI5Ggayni/Qr732Gn72s59hYGCA//l3vvMdfPOb36QBIoQQQsgj6fz58/jBD36A3/72twt+TlN/QsjDgjIzyLr12muv4V/+5V8wOzvL/6y5uRkGgwFFRUU0QIQQQgh55IyPj+PVV1/F8ePH+Z8ZjUY0NTXR4BBCHioUzCDr0l//9V/jxz/+MX+B/od/+Ae88sorKCwspMEhhBBCyCOps7MT+/fv5xd6Dh48iL/7u7/D008/TYNDCHnoUDCDrDvzAxmvvvoqvv/970On09HAEEIIIeSRNT+QYTQaceTIEaofRgh5qFHNDLKu/Nu//Ru+9a1vAQB++MMf4mtf+xoNCiGEEEIeaaFQCKWlpZidnUVzczN+97vfUbYqIeShR8EMsm6Mj4/ztTBeffVVPjuDEEIIIeRR9tWvfhWvv/46jEYjzpw5g7q6OhoUQshDj4IZZN1dqEtLSzE4OEgDQgghhJBH3vzFnl/84hd4+eWXaVAIIY8EIQ0BWQ9CoRBef/11AMC3v/1tGhBCCCGEEFzfdgsApaWlFMgghDxSKJhB1oWjR48CuN65hC7UhBBCCCHX/f73vwcAfOMb36DBIIQ8UiiYQdaFI0eOAACef/55GgxCCCGEEFzvYDIwMAAAeOaZZ2hACCGPFApmkHVhbm4OAOByuWgwCCGEEEJwfRsuh7qXEEIeNRTMIIQQQgghhBBCyLpCwQxCCCGEEEIIIYSsKxTMIIQQQgghhBBCyLpCwQxCCCGEEEIIIYSsK2IaAkKWl8vlkEwmEYlEEI/HEY/HwbIsFAoFNBoNlEol5HI5JBLJoueyLIvp6Wn09fVhbGwMRqMRDQ0NyM/Ph1wuv+v3lkql0Nraira2NuRyOWzZsgUbN26EQqGgD26NSiQSCIfDyGQyUKvV0Ov1K3p+OBzGu+++C5/PB51Oh8997nPIy8tDKpVCT08PBgYGMDU1hX379qGgoAAGg4EGnRBCyKpgWRahUAipVAoMwyz5GIFAAIlEApVKBbVaTYNGVv3cy+Vy0Ol0kMlkEIvpVvZemJycRG9vL7q7u6HX61FdXY2amhqoVCoKZhCyXr40U6kUotEopqen4fV6MTs7i9nZWTAMA6PRiPz8fBiNRphMJhgMBigUCkgkEgiF1xOeGIbB5OQkPvroI5w6dQqVlZXQ6XTQarWrEsxIJpP45JNP8KMf/Qgsy+LrX/86KisrKZixhgWDQfT39yMUCqGkpOSOghlvvPEG2traUFJSgr179yIvLw/JZBKXL1/G+++/j8uXL0Ov10OtVq/pYEYul0Mmk0E2m0Uul4NMJuP/dgghhKw9DMNgdHQUMzMziMViywYzFAoFzGYzrFYrpFIpFAoF5HI5xGIxBAIBDSS5q3OPZVnU1NTAYrFQMOMe8Xq9OHXqFN5++20UFxfjc5/7HIqKivhgBsuyyGQyYBgGSqXygc7f6AwgZIlAht/vR3t7O86cOYOWlhYEAgF+JYJlWUgkEkgkEmg0GhQUFGD79u3Ys2cPSktLodPp7sv7FAqFsFgsqKmpQTabhdlspi/1Na6npwc/+9nP0N/fjxdeeAF1dXUrer5EIkFpaSlYloXNZoNMJlu3Y5HJZDA8PIzZ2VlkMhk0NTVBo9HQSUIIIWtUNBrF+++/j5aWFoyOji4bzBAKhRCLxdBqtairq8O2bduwa9eudX/dImvj3IvH4/j617+OzZs3r8lMgYeBUqmE1WpFTU0NbDYbTCYTf4/BsiyCwSAGBwfhdrvx+OOPw2g0UjCDkLUgFouht7cXf/7zn9Ha2oqhoSHkcjmUlZVBq9VCpVJBIpEgkUjA5/NhYmICnZ2d8Hq98Hq9eOyxx7Bp06b78kctk8nQ3NwMnU6HXC6H6urqVcn4IPf2YjwxMYGBgQH4/f4VP1+tVuPzn/88gsEgVCoVTCbTuh2LZDKJS5cuYXR0FGKxGJWVlRTMIISQNYxhGExPT2N0dBSTk5M4ePDgovlONptFLBZDMBiE3+/H+fPn4Xa7MT4+jsOHD6OoqIi2n5C7OvcikQgikQjS6TQNzD1isViwY8cOOBwOqFQqFBUVQalULvgsWlpa0NbWhubmZgpmELJWviinpqZw/vx5vPfeexgZGUF+fj727NmD7du3w263w2QyQSqVIhwOo7+/HxcvXsSFCxdw9epVTE1NAQAMBgNUKhVEItGK30M2mwXLsgCuZ17c7BhSqRT19fWor69f0WvkcjmwLAuhULhsWlgulwPDMBAIBBCJRJQWukaoVCo8+eSTd/R5sywLkUh00899KSzL8nujRSLRHWf/cO9BIpFAIBAglUrhypUruHbtGoxGIxKJBH3AhBCyTmi1Wjz//PMoLS1d9F0fCATgdrvR3d2Njz76CBcuXMDg4CAKCwuhUChuGczgrjvcHORO5lP3ap7IbY28k+vp/ONw11SaX90f6XSazxi6m8fcbK6VzWaRzWaX3U7Fzcey2Sw/F3oQuL8vsVgMoVC45Pswm80wm81oampa8vlerxednZ3405/+tOyWMwpmEHKfL1ATExP4+OOPcerUKYyPj6O6uhrPPfccDh48CIPBwBcaEggEsNlsKCwsxIYNG1BfX48PPvgALS0tOH78OEwmEx/4WGkgIxwOIxgM8sWN9Hr9ql/E4/E4ZmZmoFKpYDQalzx+LBaDz+eDXC6HwWCAXC6negbrEFfANhAIIBAIwGAwQKfTrSgDIhAIwOPxAADy8vJgt9vv6L0EAgH4/X4UFxdDLpeDZVl4PB4EAoEHGtEnhBCyclKpFCUlJaipqVlyTpVKpbB3716UlJTg+PHjaGlpwR//+EeoVCqUlJTc8nrh9Xohk8lgMplgNpvXxDzR6/UiGo2CYZg7up7OP45YLIZOp6P51X0KZIyMjECj0Sw7h7mdx9xqrhUOh5FIJJbcTjV/PhYOh/m50IMQCAQwPT0Nq9UKtVq94q1fmUwGQ0ND/CLug0bBDEJwPco4Pj6Ojz/+GAMDA3A4HHjqqaewe/duuFyuJaO0CoUCSqWS72RisVggEolQUFAAmUx2y4hrLpdDKpXC2NgY3/Fkenqaj3AqFApYLBYUFhaiuroaRUVFUCgU/EVvuW4mEokEk5OTuHbtGsbHx2G32+FwOBAKhTAyMoLx8XEEAgHIZDLY7XaUlZVhw4YNkEqlGB4eRl9fH9xuNwKBACQSCaxWK0pLS9HY2AiHw7Fk5xZyfyzXzWSp82pgYADt7e38lpZoNAqVSgWr1YqSkhK+s878FTKuKOfY2Bi6urowNjYGn8+HQCAA4PpKnNVqhcvlQkVFBSoqKiCVShec65cuXcLp06dhsVhQUFAAi8WC1tZWjI2NIZVK8dtkTp06hc7OToRCISSTSfzXf/0XioqK+KKlkUgEDMPgySefhN1uX/aiH4lEcOTIEczOzsJoNOLTn/70mpj4EkLIw0woFEKpVN60ZoFOp8OhQ4fg9Xpx5swZ9PX1YXJyctH8KxQKYWBgAFevXsXc3BwCgQCCwSCkUil0Oh2sVivKy8tRXl6O4uJiAMDg4CDa2trg8XhQVVWF3bt3Q6lULligmd+RQaFQoLS0FM3NzdBqtUteR0KhECwWCw4cOACj0YhMJgOv14uBgQF0dXXB4/HwXe1UKhUMBgMcDgc2b94Mu92+oOj2/C5jMzMzOHz4MAKBAC5cuIDR0VHYbDY0NzejoaGBtt2sgvmftd1uR21tLTweDzweD8bHxzE9PQ21Wg2n08mfS3a7He3t7RgcHMTw8DCmp6chl8v5eU5NTQ2qq6v514jFYvj4448xPj7Oz08ikQja29vh8Xj4bnV5eXkoKytDbW0t7HY73G43Ll26BI/Hg2AwiHg8jry8PFRVVaGhoQEul2vBHGf+PKqurm7J7IhIJAKPx4MzZ85AqVQu6DYy/32yLIvDhw8jkUgsmNeFQiEYDAZYLBa4XC5s3759QV2M5bqZ9Pb28sXm+/v7EQgE8Prrr8NqtUKpVKK5uRmzs7MYHh5GQ0MDysrKUFBQsORnlkgkcOnSJQwPDyMcDuPgwYNwOp0r/nugYAZ55HE3f+Pj4+jo6EAkEsGuXbvw2GOPoays7KbpZnK5HMXFxRCLxSgoKIBAIIDT6Vx0oVxKOp2Gz+dDS0sLjh07hvb2dgSDQf71GIaBSqXChg0b8OSTT/KvwXUrSSQSOHPmDF577TUwDIN//Md/RGVlJVQqFcbGxnDs2DGcOXMGjY2N2Lx5M7xeL1paWjAwMIBUKoVEIsHviWNZFjqdDmfPnsVHH32E0dFRpNNpJBIJ6PV6bN68GUKhEFqtFnq9nlYRHpBQKIT//u//RmtrK8rLy7Fnz55FwYxsNotgMIhAIID29na0t7cjEokAuF6nwmQyobq6Gi+99BKamppQVla2YFI5MzODS5cu4Z133kFraysSiQR/zjEMA5FIhE2bNuHQoUPQaDSLViBaWlrwr//6r2hsbERzczNKSkrw9ttv8+2Jm5qa0NvbizfffBOzs7PIZrOYm5vD1NQUCgoKUFxcDIZhMDQ0hGAwyO/XXCqYwTAMfD4ffvKTn2BkZIQvNEfBDEIIefBkMhlqampQVFQEhmEwMzODaDS6YP6VTCZx7do1HD9+HO+99x6CwSC/FZZL3Ver1di3bx8+9alPwWw2Q6lUYnR0FO+++y7OnDmD5557DrW1tZBKpQuCGWNjYzhy5Aj+93//FwaDAYcOHUJ5efmCOVo2m4Xf78dPf/pTeDwebNq0CU1NTdBqtQiFQrh8+TJOnjyJEydOIBaLIZfLQSgUgmVZiMViWK1WfPnLX8bOnTuhVCr5AP/8LmNXr15FcXExRkdH8T//8z/w+XxobGyESqVCRUUFBTNWgcfjwfHjx/GrX/0KDQ0N+MxnPoPu7m709PSgp6eH3+Ihl8tx4MABPPHEE8jlcjh9+jTOnTuHjo4OCAQCfsvr9u3b8fnPfx4lJSX8ZxqNRnH06FGcOXMGsVgMVqsVMzMzOHLkCEZGRvjzI51OY/v27Th8+DCam5tx+fJl/PKXv8T4+DgfDJubm8OuXbvw8ssvw2AwQCqV8nPr+fOoL3/5y8sGM3p6evCf//mfsFgseOGFF1BYWAiVSrXgfSYSCRQXF/MFVC9fvoxwOMwHZ0wmEzZu3Ii8vDzI5XK+icH88SwpKeGP39XVhZ/85CcIh8N8m9zf/va3EIvFMJvNEIlE6OzsxHvvvYeXX34Zzz777LLBjFgshv/7v//DqVOn+Mxdo9FIwQxCViqdTmNychLj4+PIZDIoKiriWz7dTuqVWCyG3W7nb6CkUimkUuktCxNNT0/jww8/xAcffIDp6Wk0Njairq4OeXl5EAgE/H60gYEBvPPOO4hEInjmmWdQUVGxot/t6tWriMfjUCqV2LRpE5566imIxWK0trbiypUruHDhAmKxGCwWC/x+PxoaGvDcc89BJBLh0qVLuHz5Mjo6OmC326HT6dDY2HjfOraQlYtGozh79izEYjHS6TS+9KUv8edmV1cXOjo60NLSglQqhVQqtSCYEYlE8O677+LkyZNob29HSUkJGhsb+QspV/C2ra0NXq8XQ0ND+MY3voHCwsIl30t7eztaW1uRn5+PqqoqFBQUoLq6Gi6XC1qtFj/84Q8RDodRWVmJ5557jl+dmJycxMmTJ3Hq1CmcP38eer0e+fn5S/4NdXR0wO/3w2q1YseOHTQpJISQdSKRSGBoaAjf//730dXVBZFIhBdeeAFFRUXQaDRIJBK4evUqPvnkE5w4cQKhUAgMw+DAgQPIz89HY2MjWltbEQ6HMTExAZPJtGDe5vP5cPXqVX4bb39/P5LJ5IL3wD03GAzCZDLxQQauwOFrr72GyclJ5OfnY+fOnbDb7VCpVJibm0NLSwvOnj2LH/zgBxgdHcVf/uVfoqSkZFHwPRgM4mc/+xlYloVarcamTZuwYcMGVFRUUOH2e6CzsxOpVAp6vR5NTU146aWXkEgk8Kc//QnHjh3DsWPH4PV60dHRgatXr8LpdOKpp56CQqFAe3s7Tpw4gcuXL6OgoIBflLnxcwqFQvjNb34Di8WCDRs24DOf+QzEYjGmp6fx61//Gp2dnZidncWlS5eQzWZht9tx+PBhKBQK+Hw+/OpXv0JXVxd++tOfory8HEql8p4UQZ+bm8Mbb7wBtVoNiUSCr3zlK9Dr9WAYBufOnUNvby/a2tpw8uRJCAQCbN++/abH27ZtG/7pn/4JR44cQW9vL7LZLP72b/8WTqcTcrkc9fX1CIVCfHZIWVkZHnvssWXvUbq6uhAMBlFSUgKXy7Ugu4mCGYTcplQqBa/Xi4mJCeRyOeTn58Nms0Eul992cR6ZTLbiPWeJRALT09NIp9MoLy/HwYMH+faUAoEAoVAIdrsdsVgM165dQ3t7O3bs2LGi12BZFtPT0ygoKMCuXbuwceNGmM1m5HI5qNVqpFIpfPLJJ7hy5Qrq6uqwdetWNDU1weFw8LVBFAoFnx5aXV2N8vJyCmasYdw2kebmZuzevRuNjY3Q6/XI5XKoqamB0WjE7Owsent70dfXB7/fD71ej0wmA4/Hg7Nnz2JsbAwlJSV48cUX0dDQwEfV5+bmUFVVBbFYjL6+Ppw/fx779++HRCKBzWZb8B4mJib41OBDhw7BZrNBp9PB6XQCuL4a9uabbyKTySA/Px/btm1DcXExBAIBSktLMTExgY8++gjt7e2ora3F/v37F/2uPp8PHR0dfEBk69at1KaNEELW0PxqaGgIY2NjkEgkcDqd0Ov1/L+Pj4/jzJkz6OjogMFgwBNPPIFDhw7BarVCLpcjk8mgoqICBQUFePPNN9HZ2QmdToctW7bwWYZKpRKBQADDw8OorKyEWq3mt0z6/X643W7U1tYiGAzyQYtkMsnfnAaDQQwNDSEej8PlcqG+vh4KhQIdHR344IMPcO3aNVRVVeHw4cNobGzkAybc4202G44cOYLOzk5cuHABFotl0Y1vKpVCX18fmpqa8OlPfxoulwt5eXm3vWhGVj4PEggEeOyxx1BfXw+n04lMJgOVSoVgMIgLFy6gu7sbUqkUe/fuRU1NDUpLSyGVSmG1WiEQCPDuu+/C7Xajv7+fvyeYL5vNIpPJwOVyYdu2bbDb7RCLxZiamkJPTw/a2tpw7do1yOVybNmyBTt27EB5eTlkMhlmZmYwMzODc+fOYXh4GD09PbBYLPckmJFOp+HxeLB9+3bs2bMHLpcLarUaDMPAbrfjyJEj+N3vfoe2tjaUl5ffMpjhcDiwc+dOtLa2YnR0FCzLYvPmzaisrIRIJIJer0dxcTGqqqrg8/kwPj7OzzPnZ7rPzc1haGgIHo+HD/Dp9fo72spOwQzyyEun03xxQuB6XQCNRnPPt1JwxZ+qqqpQU1ODXbt2oby8fMFjpFIprl69iq6uLkxOTiIUCvFdKW5XNpuF0WjEzp07sXHjRv535rbWtLe3Y2pqCjKZDHv37sWmTZsgkUjAsiwMBgNisRj/GI/HQ10n1smFvLKyEi+++OKCOiulpaVIJpPo7u7GmTNnMDExAY/HA5VKhXA4zNdMEYlE2LZtG5599lk++AAAhYWFKC4uRiaTQTqdxpkzZ9De3s4HAOe//vj4OCoqKnDo0CE8+eSTi7Z+OBwOPiVYpVLBZrPxRbdsNhtKS0uh0WgwPDwMj8eDVCq1qD7HzMwMuru7kc1m4XQ6UVtby2+JIYQQcu9ks1k+w+9GXDAhEAjg7Nmz6Ovrg0KhQHl5+YJrxdjYGE6fPo1oNIo9e/bgxRdfRHl5+YLv8cLCQjidTn4rwKVLlzA3N4fi4mIUFhZCrVbzNcG4jNhsNotoNIrZ2VlEIhE0NzdjeHgYLS0tmJmZQSQS4W9O5+bmMDw8jFQqBYvFgoqKCkgkEgwPD+PUqVNgWRaNjY14/vnnYTQaF9xsFRUVweVy4erVq5iensbFixdx4MABWCyWRWPCMAyqq6vxxS9+ccF1maw+tVqN4uJiPnA0P6g0NTWFrq4uxGIxpFIpPP300wsynmUyGVKpFE6cOIFgMIiRkZElb/ClUikcDgcaGxuxd+9e/uc6nQ4bNmyA2+3GxMQEBAIBKisr8cwzz/CPsVgs2LNnD2ZmZuB2uzEyMoLq6uoVZV5znXSWWnQVCAR80wKhUAiVSoW6ujo8++yzC/5GnU4nxsbG8M4776C/v/+2CnpqNBo4HA6o1WpIpVIwDMM3RZj/N9vU1IQ//OEP8Hq9cLvdUCqVC4IZ09PTuHr1KoLBICorK9Hc3HzHi1EUzCDkAXE4HHjppZeQTCahUCiWzHYQi8XQarVQq9VIJpOYmJiA3++/7ZoAEokEZWVlqKurW7Aawn25abVaKBQKuFwuVFZWwmQy8RdqkUgEo9EIi8UCqVSKUCiEVCqFbDZLH94aJpPJUFdXh9LS0iUnTPNTc6empnD16lU4HA4+HTcWi2HDhg3Ytm3bkhcWhUKBnTt34tq1azhx4gQGBwfR0NCw5HspKSnBvn37bquGzI2cTie2b9/OZ4oMDQ0tSvX0+Xzo6elBWVkZqqqqYDQa77h1LCGEkNuXyWQwMjKyaHEll8shkUjA7XbzKfuTk5Mwm83Yt2/fgu4nHo8HFy5cgFQqRVFREb9yfeM8Rq/Xo6GhAX6/H36/H4ODgzCZTMjLy0NRURHGxsYWbCFhGAbDw8OYmpqCSqXC7t27odFocOXKFYyMjKCoqIgPOAQCAQwMDAC43o7SZrMhFothZmYGwWAQpaWlcDgcS15fFAoF/x6mpqZw5coVxOPxJa+bW7duRVVVFQUy7gObzYaGhgYolcoFP9dqtfx2CG7b9I3zHIVCwRfCnJmZWXJrEjfXqq2tXbTNViQSwWAwQKPRQKFQYMuWLQu283Jze67rIff3cqut6UudU/MLdt4YaCktLUVvby9mZmb47JMbAx5yuRxarRYGgwFTU1OYnZ1dtfsbbv7mdrtx8eJFOByOBZ+Hx+PBn/70J0QiERQUFNxVZi3N+sgjj+spPb/4zv266bRYLAgEApicnOQ7O6TTaT5gMD09jf7+fsTjcSgUCiSTyQX/fisikQgWi2XRlwj3byKRiA+YmM3mRWl03LgIBAK+f3Yul6OTZg0TiUQwmUzLZhep1Wo4HA5+9SEcDoNlWfj9fvT29vKtey9fvoxAILAo04ErbjUwMIBMJoPp6WmEQqEl34tGo0F+fv4dpQ0WFhZi7969uHTpEsbHx9HW1sYXqEqn0xgbG8Pg4CDC4TD2798Pl8tFnXYIIeQ+CYVCePvttxe11uayMmZnZ+H1esEwDJqbm7F161Zs3rwZVquVfyzXzrKsrAwGg2HJzDqBQACpVAqbzQaDwQCv14tgMIhEIgGDwYCSkhL4fD6MjIzwbVPT6TSGh4f57boOhwPBYBA2mw1utxtTU1PYsGEDH8wYHh5GQUEBHA4HxGIx5ubm+AWcdDqNnp4evPPOO8uOg9vtRigUQiKRWFTklJvvVVdXw+l0UiDjPjAajSguLl4UGBOJRPwWcrVaDbPZvCgYIJfL+SBBOp1GLBYDy7KLXkMikaCoqGjJxUWxWAyRSASJRMIHwm48p2UyGSQSCV/kdqULhfPfZygUgsfjQSaT4Y+vUCggk8kgEomQl5e35IIpt7BpMpkQDAb5598ts9mMDRs2ID8/HzMzM7h48SI+9alPLfh+4GqwFRQUoKKiAmaz+Y7ncBTMIBTMEAohl8v5G/n7dcOeTqcRDAbR19eH9vZ2vi1UMpnkv9SSySR8Ph/C4fCCzIqV/G5c1FUqld7091epVCvavkLW7vnMrQgsF0TTarWLPmuuCFo6nYbb7caJEyegVquXPSe8Xi8fELnxAigQCCCRSCCVSu94P7DNZkNTUxMMBgOmp6dx5coV7Nu3j//b6ezsxNDQEIRCIaqqqhZshyGEEHJvxWIxnD9/ftlsOG6hZOPGjXyHOC6Qzt3QZDIZfp5ys0KYQqEQarUaCoUCuVwO8Xic33pYUlLCd63g6mEwDIOxsTEkk0k4nU6oVCpYLBY+g2JmZgbA9QyOQCCAqakp7Nu3Dw6HA7lcDtFoFIlEAizLIhwO49KlSxgZGVnyvXF1qpLJJFQqFQKBACKRyIIFJLFYzAdjyL2nVCqXDFTcGNhYal4sk8mg0WhuOR/munfcLPOUm4/diyKvMpmMn7cHAgF+/naj+VtOlsK1P17NrFaNRoPCwkIUFhbyGcDBYJAP5oXDYXg8Hrjdbjz99NMoLS29q9oxFMwgjzypVAqTyQSLxQKBQIBIJIJIJHJPt1NkMhkMDg7iyJEj+Oijj+D3+6FWq+FyuVBeXs5HJwOBwJIpiyshkUggk8loNeARIZPJUFpaumT3j9VkMplgMplQWlq6aILGrViYTKY7Pr5CoYDVakV1dTU6OjrQ3t6OWCwG4Pq+156eHkxOTsJoNGLz5s0oLS2lD58QQu4Ts9nMdzFYChc8UCgUUKvV0Gq1bOtS6wAAIABJREFU/M1jJpPB8PAwfD7fil+XK2gYDAZRXl6O2tpadHR0oKOjA0NDQ3A4HNBoNBgaGkI6nUZNTQ3kcjm/Wn/+/Hn4fD4wDAOv1wufzweWZZfcMnBbN1JiMZxOJ2w2G4xGI3UneUQIhUIoFIplFwrvtUwmg0QisWa3fisUCuzevRuhUAidnZ3o7OyEXq+HzWZDb28vxsbGoFAosHnz5kXbcCiYQcgd3OxbrVZYrVawLAu32w2Px3Pb+9e4PulceiO3B205DMPwXRj+/Oc/w+fzoaysDJs3b0Z1dTWMRiMfER4fH0ckEsH4+PgdByNuViSIPHxYluXbYq10QsYFvUpKSvDEE0/wq2jL4SpXl5SULPr53a5GcOmPGzduhM/nw/DwMHp7e6FWq8GyLN9yuKGhAfn5+VT4kxBC7iO5XM53MViKRqNZNhNBKBRCr9ff0R55sVgMk8kElUoFsViMsrIyFBYWQigUYnJykt/aMjo6CrVazdfhMBqNKCkpwdGjR+Hz+fiuXm63GyKRCGVlZQuKk3KvZTabsW3btlt2eeBu4CoqKqDRaJbcmkAeLiKR6IHNrWOxGKanp1dta8i9+H7YsmUL+vv7cfHiRXR1dcHlcsFoNKKrqwtTU1OwWCyora3li79TMIOQuwhmGI1GWK1WSKVSTE9PY3R0FKFQCAaD4ZZ7uFiWxezsLL9f02azoaKiYtkUtWw2C5/Ph76+Pr4o1v79+/HUU08tWl3u7e3F5cuXIZFIKBhBbgvXSWS5Qk4syyKVSiGXy/H1Yrg0RG77idPpxOOPP476+nqo1eoVvweBQLAqATS5XI6Ghgb09fXx/eC1Wi30ej0GBgag0WiwZcsWasdKCCEPYO50YxeDlQQkrFYrTCYTRCIRMpnMLW/+GYYBy7KQSCR88UTuOFarFUqlElNTU5iYmEAul4PX60V1dTVfOFokEqGwsBDpdBqzs7OYnJxET08PfD4fNBoNnE4nX9tAIpHwdcWMRiOam5vx8ssvr+h3XK6WFFk/VmsucyevKxAIkEqlwDDMssGMqampNRvMkEqlqKys5OuZ9fX1ob6+HpWVlejr68Pc3BwKCgpQUFBw19uvKO+cEFyPrlqtVtTX10Oj0aCvrw/nzp2D2+2+6fOy2SwikQhaWlrwgx/8AN/97nfx3nvvwe12L5vZwVUuDoVCfEujsrKyRdkcmUwGoVAIU1NTCAQCFOUnt4VlWQSDwUUFyDiBQAD9/f1IJBILqmEbjUZUVFRAoVDw+xlXWl17/rnLpQHfDZlMhqamJlRVVUEoFKK7uxutra18VkZJSQn279+/ZGErQggha5tCoeA7KdzsesEwDCYnJ+H3+/nihvPT+7msC4/Hg+7ubr4DhclkQllZGR+s57IN/X4/enp60NXVhXQ6jaqqKuj1ekilUr6+hclk4herlruekoebVCqFUqm879u0xWIxJBIJBgcHl92KFY/HMTs7e8fztPsRkJHL5SgpKUFTUxO6u7vR2dkJr9eLK1euIJfLYceOHXe0YLZovOhUJeR6MMPlcmHfvn3w+/24du0a/vjHPyKbzUIgEMDhcCzaF5dOpzE1NYVLly7hgw8+QG9vLywWC5/+eLMvPy7quly0l2t51tbWxt9U3klR0lwuh0gkgrm5uTX7hUdWVyqVQn9/P8bGxvgiZCKRiC+4Nj4+jkuXLiESicBisfABjLy8PNTV1UGlUvGttDZt2gStVrugMFQqlcLQ0BCGh4fh9/uxefNm2O32BZF1hmEwNzeHRCJxV78LVzyrqKgIVVVVGBwcRCwWg91uh1QqRUFBAQoLC6mLCSGErEN5eXloaGhAW1sbhoeHcfXqVZSXly/YNphIJOD1etHV1YXp6Wk+k3b+AlBeXh6qq6tx9uxZANcXmpRKJfLy8qDX6/kMRLVaDafTiVwuxwcztFot6urqoFar+ZV4jUaDvLw82O12zM7OYnBwEH19fXC5XAu2T3KLB8eOHYNIJEJ5eTlqamooW/AhoVarl+3Ils1m+cyJ1W4Jr9PpUFRUxHdsW2ouNzIygvPnzyMcDj/Q8+1m4yAUClFQUIBt27ahs7MT7e3t0Ol0GB8f5zscrcZ7p2AGIbgeBXU4HNi2bRt6enrQ3d2NlpYWft9+U1MTdDodH3zgggRdXV344IMPcO7cOWg0GmzatAlNTU0L6l4sFciQy+V8teS5uTl+xUEikSCbzSIajaK9vR1tbW2IRqNQKBRgWRbRaJTvbHI7mRpc5kgwGKRgxhoTj8cxPT19y8eJRKIVVZpmGAZTU1MYHh7G4OAg7HY7Xz1+bm4O/f396OzshFAohN1u56tIG41GVFZWwmazYWBgABcvXsTBgwchlUqh0WggEAiQy+UQCoVw9uxZfPLJJxgbG4NWq+U75swPoiUSiVumPwqFQmSzWSQSCczNzWFubg4SiQQKhWJBMNDhcGDjxo34zW9+A4/HA6fTCbPZzBd6I4QQsv44HA5s2bIFfX19GBkZwenTpyGVSpGXlweRSASWZTE9PY3Ozk709vaCYRiUl5fDZrMtWNE1m80oLy/H+++/j1gsxhd2N5vNC+o+cQtXbrcb3d3dGBwcxJYtW1BdXc0HKbhWsHa7HRs2bMCFCxfQ3d2NTz75hG99zt1UxmIxDAwM4Ec/+hH0ej0++9nPwuVyUTDjIaFSqWA2m5ecz3P18jKZzKoHM4xGI8rLy+HxeBAIBBbM5ViWxdzcHK5du4bu7m7E4/H7fr5xHeu4v1Gfzwefzwe1Wg25XM63pgWA/Px8NDQ0QKfTob+/n+8U5HQ6UVtbuyr1ziiYQci8gIbT6cRzzz0HmUyGDz/8EBcvXkRPTw/sdjvy8/P5iyfLspiZmcHw8DBmZ2dhsViwf/9+PPPMM2hsbIRcLl/2Ro7b0lJWVgalUon29nakUikMDAzAbrcjHo9jYmICHo8HALBx40YYjUb09/fj5MmTyOVy2Llz5223osxkMkilUmu24vGj6pNPPsG3v/3tWz7ObDbjq1/9KhwOx20dV6lUYuvWrfB6vfjmN7+JHTt2wGw2I5fL4erVq3xXkN27d6O+vp4PHCgUChQVFeGVV17BH/7wB5w5cwbf+973UFNTg8rKSigUCiQSCUxOTuLEiROIxWIoKytDWVnZHXVO4VKFw+EwWltb8dZbb6G8vBwulws7d+5c0Iq4qKgI+/fvx7Fjx9Df3w+5XI5Dhw6htraWTiRCCFmnioqKcODAAbS2tuLatWt4/fXX0dvbi+LiYhiNRgSDQQwMDKC9vR3BYBD79+/HX/3VX8FisSx58yeXyzE0NIR4PI4dO3YsKugplUpRWlq6YFXbZDLxz52vvr4eX/nKV+DxeNDV1YX//M//xKVLl+ByuWA2m5FIJDAwMIC2tjaMjY2hqqoK9fX1FMh4RHDBjHQ6veoFyPPz89HY2IjW1lacPn0aMzMz2LFjB7RaLVKpFDo6OqDT6fDss8/izTfffCD3Sw6HA2azGRMTE3jjjTf4+VtTUxMKCwthNpv5v83Kyko4HA5MT09jaGgIlZWVqKqqgtFoXJVAEAUzCJlHpVKhuroaQqEQFosF3d3dGB0dRSQS4buVsCzL76Ezm83YsmUL6uvrUV9fj6qqKj7gwRVVNBgMsNvtsFgsfK9npVKJ+vp6PPnkkzAYDAgEAmhra8PAwABUKhWkUimqq6tRVlYGq9WK/v5+qFQqRKNRjI2NobCwEBaLBXq9Hi6XCwzDQKfT8ZWVZTIZTCYTCgoK4HK5YLfbF1youaiqVqvl94Yu11dbLpfDZrPxdRUopf/uzi+bzYZQKAShUIjBwcFbPicajfJZNdwFhCucxH0WXFpsfn4+KioqsGvXLjAMg4GBAQwNDaG7uxuxWAyxWAwGgwGHDx/GoUOH0NjYyGdAcMfYvXs3ZDIZdDodJiYmMDQ0hJmZmQUXcKfTiZKSEmzbtg1Op3PBFiytVovy8nL+InazsfjMZz6DvLw8DAwM4Nq1a/y2lObm5gWP1el0KCkpgcPhgM/ng0wmw8aNG+FyueikIoSQ+0QkEsFsNsPpdPLFOO+GWq1GWVkZvvjFL6K1tRVdXV3weDyYmJgAy7JQqVRIJpMwGo3Ys2cPdu7cifr6eiiVykXXk4KCAtTV1fGZFXV1dYsWAbi51cjICHp7e2G1WlFRUYGCgoJFW4m5wp+vvvoq2tra0N/fD7fbDbfbjWw2C4PBwK+Kv/DCC9i5cydcLhd/nPnX5aKiIqjVapo/rdK5F4/HF40nl2FaVFTEz7dv3O4tEomgVCr5Yq9c0fPlbtZv9h4ymQz0ev2ijm+3+7lz79flcsFkMi0IiNhsNuzbtw/T09Po6enB1NQUTp8+DZ1OB71eD4PBgIaGBpSVlaGlpQWJRAIWi2XJOeGtzr3589L5c7b542mz2RaMlUKhwPbt2xGLxRCPx+H1epFIJBCJRFBaWrogiCiRSKDX61FXVwefz4exsTFs3LgRZWVlq/b3QMEMQm74ojIajdi8eTNKSkrQ3d2NK1euYHR0FDMzM5idnUUmk4HJZILVakVJSQm2b9+ODRs2QK1WL/ji5LaoFBYWIhKJwGazQafT8QWFysvLIZFIkJeXh5aWFgwNDfFfSBUVFdiyZQufgmW32yGRSDA0NASxWIxcLsfX8ti0aROy2SzsdjvEYjGEQiG0Wi2KioqQSCRQUlKCkpKSBasF3MU+Pz8fdXV10Gq1sFgsS/bL1ul0qK2tRSgU4nvGkztjMBhQW1sLrVaLZDJ5W88xm8185FoikaCurg4ajQYWi4Wf0InFYuTl5aGqqgpyuRzNzc1QKpWorKzE6dOnMTAwgEAggIKCAmzYsAHbtm3D1q1bFxWdlUqlKC8v5wulnT59GmNjYwgGg4jH41AqlbBarWhoaMCWLVsWBR2A6ysK27ZtA4CbVrlXq9U4fPgwbDYbTp8+jdnZ2WXbCEulUqjVahgMBpjNZhiNRpSWliIvL49OKkIIuU+kUimKi4uRTCb5hZ27nXOZTCY888wzfMC6v78fQ0ND8Hq9qKysRFFREQoKCvDkk0/C5XItum5xN14WiwXbt2+HyWRCNptFQ0PDopaPEokEpaWl2LhxI2ZnZ6FUKlFbW8uvIt94TIfDgVdeeQW1tbU4deoU3G43RkdH4fV6oVQqYbfbl31vN16XuRtscvfnXjKZXDSearUahYWF2LRpE8rLyxfNybljGI1GNDY2QqPR8F0Mb8TNtVKp1IKb+BvP/7y8vEUZPbfzuQuFQiiVShQVFWHz5s1wuVwLCpmbzWaoVCpkMhkUFRWhtbUVbrcb8Xgcdrsd+/fvR319PQwGA7Zs2YJIJMIXul3puTd/Xjp/zjZ/PC0Wy4KxksvlaGpqAsMwiMfjcLvdfF0/bvvJjePucrlgtVoxMzOD+vp6FBUVrdq5IcjdSVVBQu6zQ4cO4cSJE/jOd76Db37zm/flNTOZDJLJJOLxOF/chmEYZLNZvtKwXC7n94gtFd1NpVKIx+NIJBIQi8XQarWQSqV8rYB0Oo1oNIpYLIZUKsVfQOVyOVQqFRQKBQQCAZLJJCKRCNLpNJ+er1arEY/HEYlEkMvloNfr+doG3HFTqRRf80AikSz4Yue+hKLRKB+t5goMzZdMJjE3NweGYaBUKvljkZWLx+N8Mdbb3fYjkUiQn58PqVQKhmHg8/mQSqUW/DybzfIR8lQqBYPBAJFIhHQ6jXA4jFQqxa+iceeOSqVatq4Ld+6Hw2Gk02n+vBcKhZBIJFAqlVCr1UtOZMPhMPx+Px8IM5lMS75GLpdDOp1GLBZDJBLhi0dx1e3nn2PxeBx9fX34m7/5G0SjUezduxd///d/D5fLRS2LCSGPtPPnz2P37t389+q9xBW8TCaTyOVy/DXobnG1k6LRKH+zyjAMZDIZJBIJpFIp321kuesWy7Lw+/1863G9Xr+o6wl33eHqj3GLPzdrDZnNZhGPx/nrITcfvNV7W+q6LJfLaf60CucelxkzfzxTqRQ/n5bJZPxnMn+OwLIskskkgsEghELhsnMhbq6Vy+Ugl8v5IrK3c/7fzuc+/zyMRqNQqVT8nH+p40SjUWQyGb7mnlar5efrPp8PLMtCLpfzc6eVnHvz56UajYafs80fT7FYvGisuNeY32BAIpEs+VozMzP43ve+h48//hipVAqvv/46GhoaVi24R8EMQsEMQsia1tPTgw8//BCvvfYaqqqq8JWvfAUHDhy46TYWQgihYAYhhDw4fr8fnZ2d+O53v4u5uTnU1dXhW9/61qpuE6ZtJoQQQtYUlmX57JBUKoUrV67g+PHjYBgGJSUlaG5upiJrhBBCCCFrTDqdRiKRAMMwuHbtGs6dO4fBwUGUlZVh9+7dCzoRrQYKZhBCCFkzuDTOwcFBtLW1obW1Fb29vfB6vdiyZQu2b98Oh8OxKqnNhBBCCCFk9QwODuLcuXPwer3o6upCe3s7ZDIZmpubsW/fviXr3twNCmYQQghZM7j9yb29vTh27BiCwSC0Wi3q6ur4DixURI0QQgghZO0ZHx/HyZMn+bodRUVFeOyxx7B7927k5+evet0YCmYQQghZU7LZLCKRyG11YCGEEEIIIWtDIpFAMBiEUqlEaWkpKisr8fzzz8PpdN6TxSgKZhBCCFkzxGIxbDYbXnzxRRw6dGhRBxZCCCGEELI27du3DzU1NRAKhQu61N2r7cEUzCCEkEdAZ2cnAKCurm5Nv0+BQACZTIb8/Hzk5+fTB0cIIYQQsk4YDIabtjtebUIackLurVAohFAoRANBHqif//zn+PnPf04DQQghhOZahJCHAgUzCLnHjh49iqNHj97246lPPFnJeREOh+HxeG75/Pfeew+///3vaSAJIYQ88nMtmm8R8nCgbSaE3GNHjhwBALz88ss3fdzIyAgkEgkMBgOCwSCkUiny8vJoAB9xuVwO2WwWuVwOLMsCAEQiEWKxGObm5pBMJqHX65FMJiGXy5c8RmdnJ4aGhgAAx48fx6FDh2hgCSGEPHJzLQAYHR2FSCSCyWRCNBoFy7Kw2Ww0iISsQxTMIOQeCoVCeOedd/j/1ul0yz62v78fkUgEarUaIpEIAoEATqcT+fn593XvGVkbcrkcH8jIZDKIx+NgGAbpdBrpdBrxeBwikQh2ux16vf6mx5q/veTdd9+lYAYhhJBHcq7FzbfC4TA0Gg3EYjEymQwCgQDy8/NhNptpQMk9tV5qmK0XtM2EkHtofsrjv//7v9/0sU888QSEQiHfkjIWi2FiYgL9/f24du0a/H4/DegjIJvNIpVKIZ1OI5VKIRKJIBgMIhAIIBAIYGZmBsFgEIlEAjU1NbcMZADXt5hwzp8/T4NMCCHkkZxrAcChQ4f4+Zbf70cikYDH48HAwAD6+vrg8/mQzWZpYMk9QTXMVhdlZhByD3FpjwDQ3t5+y8d/9rOfBQC8/fbbSKVSSKVSiMViCAaDmJiYgN1uR15eHkwmEw3uQyabzSKdTiOZTPLbShiGQSwWQzQaRSqVgkAgQCaTwfbt22/7uOPj4/wWEwDo7e3F+Pg4CgsLadAJIYQ8cnOtG+dbmUwGoVAI8XgcoVAIbrcbZrMZNpsNFosFIpGIBpkAuJ41KxAIFvyMZVlEIhFEo1E4nc5bHuO9996DUCjE9773PRpQCmYQsrZxaY8AcObMmdt+3osvvggA+M1vfoNEIoFUKgWpVAq3243p6Wk+FZLSIR+OIEYmk0EymUQ6nUYikQDLsgu2lySTSYhEImzdunXFx//ggw+W/NnXvvY1GnxCCCGP7FzrxvkWy7JIp9P81pNIJAKv14v8/HxYLBZIJBIa7Ed4rpbNZsGyLFiWhUAggFAoRDgcRjgcRi6Xu+X2JoBqmFEwg5B15Maq2pFIBEePHsXTTz9928f4whe+wF9kuVoJYrEYiUSCv8CazWYqFLoO5XI5JBIJMAyDTCbDBzJSqRSSySTi8TiEQiEEAgF27Nhxx6/zxhtvLPrZm2++ScEMQgghNNe6Yb719ttvI51OI5vNIplMIhwOIxgMLghqyGQyGvhHJIDB1S9jWRbxeBzpdBoMwyzYDqxUKuFwOKBUKm95TKphRsEMQtaN999/f8mfrfQCO/8i+6tf/QqZTAYsyyIWiyEej2NiYgJmsxl2ux1Wq5UGfh2YH7DgglRCoRCxWAypVAoMw0AgEKxoO8lSxsfHcenSpUU/b21tpa0mhBBCaK51g6UyNZLJJKLRKGZnZ6FWq5Gfnw+73Q6FQkEfwEOIW2TiAhlc0CIejyOVSvELUFyR9oaGhts+9vwaZufOnaPBpmAGIWvX7373uyW/xH784x/f8TG/+MUv8hdZ7qZXKpUiHo/D6/XCbrfDbrcjPz+fPoA1aP4FMZ1O89tLEokEXw+DYRjs3LlzVV5vqS0m8/+NsjMIIYTQXGuxGxeRkskkMpkMEokE/H4/PB4PHA4HbDbbba3Ik7Uvk8ksyJQVCq/3yYjH4/wCokgk4oNcu3btWtHxb6xh1tfXRwtLDyqYwaXd3AqXIr0acrkc4vE4stksxGIxZDIZf5IRstYcPXoUgUBg0c9nZ2fvKP1xuYvsr3/9azAMw0eHJyYm4Pf7YTQaYbfbqW/6GsGlI3L/C4VCSKVS/AWR23/JMAz27Nmzaq+71BYTDm01IeTO5iJcTZv58yCBQACRSLSq8x4CflVcJBJBIpFAKpXSoJD7NtcC/v8i0s9//nN+vpXL5RAIBBCNRjE1NQWLxQKbzQaNRkMfyjqdo924dSSVSvG1y7h/z+Vy2LJlyx2/DtUwWyPBDJZlMTs7i0QigUwms2wQQyKRQK1WQ6vVQiAQ8P+7U+FwGG+++Sbi8ThcLhcOHjxIHR3ImrVU2uP8f1uNCywAvPTSSwD+f00NLqIciUQwMTGB/Px8FBQUwOFw0IfygC6QiUQC8XgcuVwOkUiET1Hkghm5XA6pVGrV900ut8WEQ1tNCFlZEINblfX5fAgGgwiHw9cnUmIxFAoF8vPzodfrodVqKaixSlpbW3Hs2DFYrVY0NTXd9dY7QnOtO/WlL30JAPDb3/6Wv25zcy6/34+xsTE4HA7Y7fbbaplOHvx3ejqdRiwW47eUcPUwuIzZVCrFP/5uapdxqIbZGglmpNNp9PT0wOPxIBQKLRvMkMlkMBgMyMvLg1arhcFggNFovOOMimg0ig8++AB+vx/bt2/Hjh07KJhB1qyl0h45q5H+eCMuU+Ott97iVw0BIJlMYmZmBsFgEBaLBWazGSzLQiQSUauxeyidTvNdSLiLIve5RKNRMAzDBzIef/zxe/IebrbFZP5j6CJKyM2xLAu/3w+fz4eJiQkMDw9jamoKMzMzAACpVAq1Wo2ioiI4nU4UFBTA6XRCo9FQJsFd6ujowH/8x3+gsbEREomEghnkgc61AOCFF17g//sXv/gFv2KfSCQQCoUwPj6O4uJi2Gw2aLVaZDIZPmuLPHjZbHZBtixXw4xboOc6yzEMAwCrtu2XapitoWBGPB7HyZMn8ec//xljY2NQq9UQi5c/jFwuR2lpKZqamrBr1y6UlpZCpVKt+I9aKpWirq4OoVAI5eXlVEmYrFnLpT1yVjP98UZf/vKXAVxPh5wf1BgdHYXX64XZbIbJZILRaOQzqKjV2OrhMjG4FRuuNgb3/0KhkC8sdeDAgXv6Xm62xYRDKwKE3Fwmk0EgEMDx48dx8eJFdHR08OnH3DYTLgMjl8tBpVLB6XTiC1/4Aurr6+F0OiEWiylLg5CHaK7FeeWVV/igRiqVglAoRDabxdDQEKamppCXlwej0QidTgeBQACxWEwLSQ8Iy7J8Af1EIoFIJMJv8+WyMbjHsSy74noYt0I1zNZQMINhGAQCAXg8HszOzmLv3r2L2kJms1lEIhHMzs5iamoKV65cwcTEBMbHx/HCCy+grKxsxSlYGo0Gzz//PNLpNAwGA7Ra7W0/N5fL3XIicTuPuRfPJQ+fm6U9zn/MvbzAcumQb731Ft9ijGEYMAyD6elpWCwWGI1GaLVayGQyyGSymwYlya2DGFwWBsMwiEQiyOVyiMVi/M+4z+B+tOG61RYTTmtrK0Kh0G31RifkUeTxeHDx4kX8/ve/x/j4OIRCIbZt24bCwkI+O5RhGESjUXR1dWFoaAhXrlxBMpnE448/jqeffho2m+2WCzA3BkYehNWayzzoORHNyWiudb/mWjcGNd58880FW0kzmQympqZgMBhgNpuhVqshlUohlUppznWfcMVbua298XgcLMsiGo0u6kqSy+Wwd+/ee/I+qIbZGgpm3Bhg+PSnP42KiooFP2dZFqFQCF6vF/39/Th58iQGBgbgdrtRXFwMpVJ5y2AGt3opkUggFAohl8vvKNWHSyNSKpXLZoPczmOWwhWGSafT/M3gnaSRcX9IAoGAUlIfAjdLe+Tcq/THG3GZGm+99RYEAgGfHSAQCBCLxSCXy2E2m6HX6/ksDcp6un0Mw/AVrhmGQSKR4NNNuRZeQqEQLMves+0kS1lJu6+jR4/i5Zdfpg+TkCWMj4/j+PHjuHDhAvLy8vD444/j2WefRVVVFd8KO5PJYG5uDi0tLTh37hxOnjyJjz76CGKxGDU1NTCZTMt+r86fRwC44wLnXLD0TuYQ89/D3RRYn38cqVS6omsJwzBIp9P8Fsg7udG78fXv5jjcVkAqNk9zrZX4i7/4CwDXs2NTqRQfpIzFYojFYtBoNNDpdNDr9XxAg7Jj710Qg8uKTSQSfObF/G5yXAZzNpvFY489dk+vI1TDbI0GM6RSKQoLC1FWVrZsMGLz5s2w2+348MMPcebMGZw6dQpmsxk1NTUAwLcpZBgGcrkcSqUSsVgMMzMzmJubg9VqhU6ng1KpxNzcHLLZLKRSKVQqFUQiEV+Eh1v9VKlU/EmcSqXg9/sxOzuLwsJCqNVqyOVyyOVysCzLR+pmZmYWPEYmk0HO3hy0AAAgAElEQVShUCy6gHHFYbjq2olEAsFgEKFQCHl5edBoNFAoFFAqlRCLxQsuoje+T7VajWw2i3g8Dr/fDwBQKBRQKBR8sVSdTnfTLzmGYRAOh/kOLxqNhtLXHrDz58/fNO2RMzs7i87OTtTV1d2X98UFNX75y19CJBIhFAohHo9DKpUiEolAo9HAYDBAo9FALBZDqVRS//TbuEiKxWJEIhG+JkY8HkcikUA2m+WDRvv27bvv7+/IkSMreiwFMwhZms/nQ1tbG6LRKA4ePIgvfelLcLlcC7oWSCQSGAwG7Nq1i9/K984770AgEGBmZmZRsXSumGg8Hkc4HObnEQKBAAqFAna7nZ+LSKXSJbMMuGNwe76j0Sji8fiCwLRCoVhykYV7LlexPxqNIhQKIRQKQalUwmKxQK1WQ6lUQi6XL3p9LkWb6y4ikUgW/S56vR52ux1KpXLZ7Yzce0gmkwgGgwgEAlAoFHydNYVCwW+VXA7XEYprnRgMBhEMBvlCrFqtFnK5nF8Nv3EOxc3luN+TZVmEw2HEYjGk02lYrVb8P/beNDbO87zXv2bfZzjDfd9FSiJFiVqs1bISOV6i2E6dNouTtjhFUODEaNGiOR9yAhz04JwvDU6BExSnbVwEaW05iy1ZTmzZlhdJtiRbO0VKFPdN3Ibk7Pv+/+D/85QUSUu2tVDSewGEZc5w5p3lfZ/7+d33/bu1Wi3ZbBabzSYTbMuJIKFQiFQqhVqtxm63K9n3ByzWEojq2Jdffll+1+BT/7+5uTmcTidOpxOLxSKrY5VE0q1BtPsKjzJRmRGPx6V4MV/MuBPVsoqH2QoWMwApDiyH1Wplz549jIyM8NZbbzEwMMD09LS8vbe3l6NHjzI5OcmmTZt4+OGHeeutt+jp6SEYDLJjxw42bNhAaWkpv/zlLwmHw9TV1fHkk09SUFBAIpHgwoULdHV1ce3aNZn9FLN8Z2ZmCIfD5OXlUV1dTWtrK1u2bMHj8XD+/HmuXr2K2+0mEongcDioqKigubmZ3bt343Q6F7yWZDJJb28vPT09dHd3EwgECIfDxGIx7HY7VquVoqIitmzZQkNDA2VlZQtOLnGcExMTPPHEE0SjUTo7OxkeHqakpIT6+nquXbuG3+9Hp9Px/e9/n6qqqiWDANEu8OKLLxIOh6murubpp5+msLBQ+VbfRW6m7FHw4osv8g//8A939PjEpvU3v/mNrNQQwXAoFJITiISwJgJBhf8MvkUAHggE5FQnYSYllH/gjlZizCcQCPDKK6/c9P1feeUVpdVEQWEZkskk4XCYTCYjN/oWi2XRJlWr1eJwOGhqapJmoGazmbq6Osxm84L7hsNhxsfHef/99xkbG8Pn8xGLxVCpVBiNRoqLi2lsbKS1tZWmpiaZpJkvRsTjccbGxuju7qanp4fZ2Vm5KXc6nVRUVLBlyxbKy8sXxDLib4eHh7l06RLd3d34/X65qdfr9TgcDsrLy2lvb+ehhx5alNw5d+4cr7/+OmVlZTQ3N1NXV8cHH3zA2NiYnHZnMBgoKSlh165dNDc3U1NTs2jjPz4+zsWLF+no6GB2dpZ4PI5Wq6W4uJiGhgY2bdq0rNG8iIPm5ua4cuUKZ86cYW5ujmAwSCwWk4ml/Px8Vq9eTUtLC83NzVKYSafTTE9Pc+bMGc6ePUt7ezsajQa/309PTw8ATqeT/Px8Ges988wz1NXVLXutDIVC/Pa3v2V8fBy73c4PfvADiouLlZPoAYy1BGKs669//Wui0SgqlQqdTkcymcTv92Oz2WScZTabsVgsSiLpCyL8ysSPMPEUZuzCGwNgz549d/TYFA+zFS5m3AidTkddXR2lpaXSbyMajcrbh4aGOHjwIJcuXWJqagqbzcZbb73F4OAgBoOB8vJy6urqsNls/O53v2N2dpZdu3bJDEgikeDq1ascPnyYU6dOyUV0YmKC6elpYrEYsViMwcFBysrK2L59OyqVCrfbzfvvv8/ExIQ0gBkdHcXpdLJx40YqKytpbm6WQUQikWBqaor333+fTz75hO7ubiwWC3q9XpaRh0IhstksExMTcnSsyKrMP86zZ89it9vx+XwcP36ccDhMa2srJpOJs2fPcvnyZaLRKJs2bcLhcFBQULDofQ2HwwwMDPDyyy9LM8E7oS4qfDYHDx686fseOnTori2wYvrJr3/9a1lOK5TqVColxYx0Oi2Dwgc5azBf2RdBfzAYJB6Py7YStVpNLpfj0UcfvavH+sYbb3yhv1GqMxQUFmMymcjPz5dToYaHh6Xx+VIZ+ry8PPLy8li7du2i24SQ0N/fz7Fjx3j11VcJBAKyajSXy5FOpzl9+jTV1dVMTk5iNBqprq5eIGgkk0k6Ozs5d+4cn3zyCePj46RSKbRarcw8WiwWPB4PW7dupb29XQoSYiLdqVOneO+99+jr60Oj0cg4Q7TI6fV6JiYmMBgMtLW1YbVa5fN3dXXxz//8z6xdu5aHHnqI1atXc+zYMTwejzTPc7vdBAIB3G639A0R8VAmk2F2dpZz585x4MABzpw5g1qtprS0FI1Gw9TUFNPT04TDYfr6+pb8XDKZDH6/n1OnTnH06FGOHz8uW1tEAigYDBKNRlm3bh3hcJiioiLy8vLQaDTyGE6ePMmvfvUrvvnNbwIwNTXF+Pg4+fn51NfX43a7uXLlClevXqW0tBSTybSkmCG8EQ4cOMDIyAhNTU08/fTTipjxgMdagu9+97sA/Pa3v5U+ZmLTLdpPzGYz4XAYh8OByWRSEkk3gah6j0Qi0qMkHo9LYVKIGJlMBuC2tpIsh+Jhdh+IGSLQTyQSMuuwXOuE8Ncwm81s376d6upq1qxZc9OLQTQa5fjx49TW1lJfX89jjz2G0WhkenqaX//614yMjHDkyBEikQgGgwGNRsO3vvUtKYr84Q9/oLu7m9OnT7N9+3YsFgvNzc0A+Hw+Ll++zOHDh/H5fKxatYqvfOUrFBcXo9VqSSQSfPLJJ7z99tscOnQIjUbDmjVrKCsrW1TaGI/HOX/+PGq1GqfTya5du2hqaqKyshKr1Uoul+Ojjz6is7OT4uLiJcUMYawai8VYtWoVu3fvXlD2qnDn6erqYnBw8Kbv39/ff1fKH5daYH/zm9/IC342myUejxMMBgkGg7K/U1RhPUgLrFD1xThVUcotgldhqqpSqW77dJKbZXR0dElB5d133wWgubmZysrKRX+joKCwmJKSEjZv3szk5CQ9PT0cPHgQtVpNTU0NVqsVnU4nvRlu1OaZSqUYGRnhvffeY//+/QBs2rSJ3bt3Sx8xj8fDRx99xMDAAK+++io2m43du3fLdSKZTDI5OclLL71ER0cH8XicPXv20NDQQFFREYlEgrNnz/L++++zf/9+ZmdnycvLo6GhAb1ej8fj4ZVXXuH06dO43W5aW1tpa2uTjz83N0dfXx/vvPMOx48fJxgM8nd/93fU19cviGWy2SyRSISuri5mZmbkdaWwsJBEIsHHH3/MG2+8wZEjR7Db7axfv17GQ7FYjJMnT3L48GFOnjxJfX097e3tbNmyBaPRSDAYZHx8nJMnT3L58uVl473R0VFeeeUV+vr6sNls7Nu3j+rqaim8dHZ28v7773PmzBlMJhO1tbVs3LhxUayUTCYZGxtDpVKRSqV4+OGHqampobS0FKPRuEA8Eomu6/F6vQwMDOB2uyksLGTHjh1KTKbEWov49re/LUWN+YmkbDYrK6NEtbfZbH7gE0nLIeJUUX0RDAZlDDv/3+LnbogYAsXD7B4QM3K5nDS4mf+7+UJGZ2cnQ0ND0mPD5XIt+ViBQACfz8cTTzxBRUWFzHCIKoabPZaGhgaeeuopKioq0Ol0eDweZmZm+OCDDzh37hzd3d3s2rWLr33ta6xatQqbzUY8HiebzZLJZDh27Bj9/f2sWrVKLlqhUAi3241er2fNmjU8/PDDbNu2TY64zGQymEwmwuEwb775Jn19fXR1dUmTn/kkEgkGBwfZtm0bzz77LJWVlbhcLsxmMyUlJYyOjsrxtzU1NWzatGnRa7127RonT54kmUxSVVXFunXrFpWyKtxZXnzxxS/0N3c7YwD/Walx8OBB2Xqi0+lkP7Xf78fhcGCz2TAYDFgslvv6+yZ6qcVPOByWfdnZbFZmF4EVI2IIfvKTn/CTn/xk0e9FefXzzz+vlDIqKNwklZWV7Nq1i7NnzzI1NcXx48eJRqM0NjZSV1dHSUkJLpdrgeeQWq1Go9Es8poQiYxz587h8Xj44z/+Y3bt2kV7e7sUiSORCJWVlbz99tu88cYbvPfeezidTlpaWmRV6ZkzZzhz5gzZbJbNmzfz+OOPy018JpPB4XCQyWRky25HRwdlZWXE43GGhoY4e/YsXq+XlpYW/uRP/oTm5mbZoioSJIFAgAsXLnD27Fk6OjowmUwLWkVEm0ZpaSnr1q3j4Ycfll4fIh6KRCK8+eabDA4OLoiHhJjR0dFBLpfjm9/8Jps3b6a6uhqtVkssFmNycpJIJML4+PiyYsbs7CyZTIba2lpaW1vZu3cvpaWlMmFWWFiIXq/nn//5nxkeHqarq4vVq1cvEhkSiQS9vb3s2rWLHTt20NLSQn5+PiaTCZ1Ox9jYGCaTiUuXLrFu3TrpiTSfyclJTp8+jd/vZ/Xq1ezcuXNBNYuCEmstJ2qIPYbw2gsGg/j9fnlNMRqNCzz1HmSEUXAul8Pn8xEOh6UHhmj1TaVSqFQq1Gr1XfEsux7Fw2yFixlCAfP7/YtEBWGGNzk5yZEjR+ju7sZms9HS0rIoKyjQ6/UUFhayfft2KioqFtx2M2KGXq+nvLycdevWsW3bNvl7m83G5s2bGRkZkRUR9fX17N27F4PBIL0DHnroIXp6enjvvfdk7+f8x3a5XDzyyCOUl5ezefNmqqqqFiima9euZXp6muPHjzMzM8PVq1fZvHnzsu+d8P4QxwDgcrmoqanB6XTS09PD8PAwiURigQlYIpFgYmKCrq4ubDYbVVVVVFZWKpNQ7jI/+MEPeOqppxb9fteuXQD8zd/8DX/0R3+04LaVVk4mju/QoUOy8kC0VUSjUQKBACaTCavVisPhuO/6OzOZDJFIRIoXiURCZkxEhYY45+90z6WCgsKdp7CwkA0bNrBz5046OjqYnJzk2LFjXLlyhZqaGqqrqykqKqKoqEiOu3a5XLIlYX4lajwe58yZM/T392Oz2dizZw8PPfTQourTiooKgsEgFy9epKuri3Xr1hGNRjGZTExMTPDxxx8zMTHB+vXr2bt3Lxs2bFjgi6HRaNDpdHJilcDv99PX18f4+DgFBQVs27aNXbt2LXr+/Px8RkZGmJ2d5cMPP6Szs5PKyspFYobX66WoqIi9e/fS0tKyoBVmfjw0NzfHwMAAW7ZsIZfLEY1GuXr1KjMzM5SXl/Pwww/T0tKy4L0qLCxkZmaGsbExLly4sORnY7FY2LZtGzabjdbWVtasWbPgGITg/vLLL+P1ehkZGZFTY+aTzWYJBALU1dVJ77H5x1JTU0NlZSWDg4PS40S0qwgmJiakwFRRUcHq1auVNgEl1rppUUPEXJlMBrVaTSqVIhwOL/AxMxqN2O12LBbLAydqzPfCEBUZoVBIjllNpVILzILvlmfZ9SgeZveAmJFIJLh06dIigybRwzQ+Ps7Vq1c5c+YMkUiEVatWsWvXrkWjXAVlZWW0t7d/4YyvXq9n9erVi4QQrVZLYWGhzAqIlo75IoIwnXI6naRSKWZmZha8rtLSUvbs2cOWLVtksOD3+xdcUMLh8IJ/T01NLXIxF8e51DGI22pra9m6dSsffvgh4+PjTE1NyfLMdDrN7OwsExMTeL1e9uzZQ2Nj46LHUbjz3KiEsb6+np07d94Tr+WZZ54BPq3UEH3eQv0OhUJyEcnLy8PhcMgJKPeyiBEOh6VwI5zsxUKZyWTI5XJotVpFxFBQeIAwGAxUVlbyF3/xF3R2dnL27Fn6+/vx+/309vbS398v76vT6SgtLWX16tU88sgjNDQ0UFpailarld5Zly9fZnp6murqamw2G5lMhpmZmUUxlMlkor6+nqGhIdxuN9PT01RUVDAzM0NnZyeRSITS0lI2bNiw6Nqbn5/P5s2bqaysRKvVyuv08PAwfX19xGIxioqKWL169ZJitF6vlybmojXm+mMUbcMVFRW0trYu2rgbjUby8vLQarVyapvIqgaDQbxeL0ajkVWrVmG32xe1H+t0OpqbmxfFc/Nf44YNG2hoaJAbwHA4TCQSWSBSiKlS8Xgcv98vK+quf73V1dWyTeb6YykvL2fbtm2MjY0xOjrKpUuX2LRpE3a7XU65m5qaoq+vj7KyMqqqqnA4HMp0OSXW+twx16FDh6SfhvhuCVHSbDbLSR1i4tz9PjZYvF4Rk8XjcXmOixHKwsZApVKtGBFDoHiY3QNiRiAQ4PXXX8duty+6LZ1OEwqF8Pv9mM1m2tra2L59O+vXr18wcUOUAqlUKmw2GyUlJV945rJOp6OiooL8/PwlbxPzy/Py8hYpm2q1Wo5IEheQ+UKEGHMWiUQYGxtjeHgYr9e7YGEMBAKMjIwQCoWwWCyEQqElF05xDFardZEAoVKpKC8vZ8uWLZw+fZrx8XEuXbokhZhUKsXAwADXrl1Dq9Xy0EMP0djYqAgZCrcFkd04ePCg7FE0GAwyaBQZKr1ej9FoJD8//57qExZ936FQiEgkIs2jxKhVUZmh0WhWXDuJgoLC7UeMS62vr8fhcFBfXy+nZgQCATwej0wwjI+P09/fz+joKENDQzzyyCM8/vjjFBUVoVariUajhEIhwuEwoVCId999l46OjiWf99q1a4yNjRGNRmW7Xzabxefz0dvbSzQaXTZm0mq1sudepVLJTbXP52NgYIBYLPaZ8ZZKpZJxkpgYEgwGF8VUlZWVlJSULClkq1QqOfElFovh9XpJp9NEIhFmZmbkMVRWVi5ZwaDVaikvL1/SM0zEUQaDgVgsxszMDIODg0xPTy9KIImRryLbvdSoV71eT01NDUVFRUu+H2VlZWzZsoXDhw8zMTHBuXPnWL16NXa7nVQqxfDwMGNjY8Tjcdrb21m1apUiZCh8KVFDJJKEJ4Q4d4LBoGzBt1gsaDSa+3IEcDQalaOnxch7EZvNb/NdCabrn4XiYXYPiBnZbBav10sikVjydpPJRFNTE6tWraKtrY0tW7YsUr2NRqNUsIVg8EWVRrVajcPhuGFpnxA2llo8l1uAotEoU1NTnD17lqtXrzIwMEAikUCtVsvXE4vF8Hg8xONxaRq11MKpVqsxmUzLtoUUFRWxbt06XC6XnHG/adMm8vLyZGZnYmKCvLy8z2zbUVC41aLGa6+9JvsRM5mMVMyNRiNWq1WOd3W5XCu6TC6bzRKNRolEIrL6QrwWUeopzt8nnnhC+QIoKDzggoaoQhCVAsIceGZmhunpaUZHR+nr66O/v5+enh7effddkskkZWVl7NixA61Wi9/vl6Z/fr+fEydOLNumF4vF8Pl8mM1mOekEPjWrDAQCZDIZGTMtG+Bdt8GJRCLMzs6SSqWwWCwUFRUtuQkSsZTFYpHXyuvjPK1WS0FBwaKxsUshpg1kMhni8TiBQIB0Oo3T6aSgoGDZY7DZbMu+vng8zuzsLBcvXqSnp4f+/n5ZTTs/xhTX+c8S2UVl7lKJOfi0CqSpqYmysjImJye5cOECzzzzDMXFxaRSKXp6ehgbG0Ov19Pe3k5tba1y0ijckpjr4MGDsjpUpVLJlte5uTl5fohWFLvdfk+3m4uEWSQSIRKJyIpglUpFNBqVI1bF9eJeqJJVPMzuATHD6XTyX/7Lf6G6unrZBaC8vFwuuGazedGi5XA4qKmpuamxNXeTkZER3nnnHQ4cOEA8HqesrIzGxkYKCgqkyZOozBgYGLhhYCSqQJbC4XBQV1dHY2Mj3d3dnD17lm9/+9sUFhYSjUa5cOECs7Oz1NfXU1FRsewCrKBwqxHj60TWQK1Wy9Jhv9+PRqORFVl5eXkrTtQQpsRCuBBqv9iYBAIBtFot6XSaffv2KR+4goLCshtgMVK1rKyMlpYW9u7dy8jICKdOneJf/uVf6Orq4vXXX2ft2rVYrVbpsq/VarFYLJSVlS27yRaG5NlslpaWFux2u0yEFBUVMT09/aWO32AwYLfbl0zgiGzvrWod1Ov1SyaqRGXuZ12vrzeYF4yPj/PBBx+wf/9+QqEQpaWlNDU1UVhYuMB40+fzLVv9cv37sVxVsMFgoKioiM2bN3P8+HGuXLkizU9TqRRdXV243W7Ky8tZs2YN5eXlygmicEtFjUOHDpHL5VCpVGSzWVKpFKlUCoPBQCQSwePxyMlzDofjnpqAMt+rLJVKEYvFZHtNJpMhnU6TSqWkqbLS6qtwS8UMg8FAa2srTU1NS95uNptvqNqLUsGV3CaRy+Xo7+/njTfeYHR0lO3bt/Od73yHkpISLBaLVELdbjc2m41jx44tWZFxfaCwXAWJuH3Tpk14vV6uXbvGxMQEDocDj8fD8PAwRqORrVu34nQ6lXJGhbu2wP7+978nlUpJkXJ+f6fIIIhWFDF68G4hSrsTiQTpdFoenzCVSqfTADz++OPKB6ygoLBAUBATSuZvvtVqNXq9Hr1eLzf+4r+//e1vGRgY4PLly8RiMYqLi2Ubg9VqpaamhmeeeYaysrIbHkdhYaGsajWbzRQWFjI3NyePcTlBQHj9iFaT+VNWwuEwbrebioqKRRufdDotfcOE4PBlevPtdjsVFRXSyFz8hMNhZmdn5bX3+rhLTCZYisHBQd588016enrYsGEDzz77rPTfEDFZLpdjcnKSAwcOEAqFPvMYP+v1iQTUhg0bGB4e5sSJE/T29lJcXIzNZuPq1avEYjHWrl1LUVHRfWWKrbAyEO0nBw4cQKVSSaFPjCVVq9XE43F8Ph8Oh0MmklayqCGEC+FXJmKxWCwmPdpEpbtKpbqr41UV7mMxQ3g/zPfAuB+DmWAwyMjICB0dHTgcDtra2vj617++YMKIEHf6+/vRarVLOmYvFWQsh8lkYsOGDfT29tLZ2cnVq1dlqdXMzAxr1qxh+/btN1XiqaBwuxCO4gcOHECr1ZLNZsnlcjJzkEgkMBqNBINBQqEQdrv9jldqhMNh2XPp8/mIxWJoNBpZlSFQ2kkUFBTmr9Fzc3NMT0/j8XgoLS2lqKhoSU+u+dhsNioqKrBarbIVIp1OS08hMV5Rp9PR1tZGU1PT5xIKrFYr5eXlDA0NEYvFCAQCS1ZYpNNpxsfHSafTUgCZb8oZCoWYmpqiuLh40YYnm80yPT0tvSZEf/4XxWw243K50Gg0aLVabDYbGo2GcDjMzMzMkoJFJpPB4/Es8uoQTE9Pc/78eQBaWlr4+te/Tn5+/oLqilAoRCAQuCUJH4PBQEtLC52dnZw4cYJLly6Rn59PTU0NY2NjWK1WNm/ejMPhuO9NGRXuHs8++6z898GDBzGZTFJ0jUaj6PV6ksmk9KlxOp3k5eWtKFFDiBiidSSZTKJSqaSxvHg9YpiEEpsp3FYx435lvqeFCGg8Hg+pVIr8/HwcDsciISOVSjE1NUV3dzfRaPQzzXhSqRSzs7OfmSnQarU0NDRQXV2NWq3mk08+YWZmBqPRiFqtprq6mrVr1yoZAIUVtcCK9pN0Oo1er5c9jsK4KRwOS+O32y3ECbMs0VYi+tRFFYZok9FqtXzta19TPkQFBYUFYsDw8DAffPABJ06cYOvWrezYsYPt27djMBiW3bDGYjFmZ2dJJpOLfMA0Gg0FBQUMDw8zPDzM5OQkpaWli6rWcrmc3IgLc3QhAhcUFLB69WrOnz+P2+2mu7ubtra2Ba0VyWSSubk53nnnHdLpNDU1NezcuZPCwkLWrl3L+fPnCQQCjI2N0dzcvMgQPZ1O43a78fv9GAwGVq1adVMVJDcrxpSUlGC1WvH5fLjdbmKxGOl0ekHcFI/H6e7uZmxsbMnHSSQShEIhCgsLKSgowOl0Lvj7dDrN6OgoJ0+elF4an5VAuhE6nY7a2loaGxspLCyko6MDrVaLx+PB7/fT3Nwsx8QqKNwJ5vtqiPYTUbERjUYxm81EIhE56vNuixrxeFyKF6ICY/50EtGGJ9qXlxq/q6CgiBmfY9EqKyvD6XQuMqESRjzCBFEsmrOzs/T393PlyhWi0Sh2u12ODbp+okkul5P9bsuh0WgoLCyktraW2tpa+vv7cbvd5OfnU11dTWNj46LFW0FhpSyur776KrFYTIoFwp9CGGyKiT/CuOpWixjiJxaLSfM5IaiIc1aj0Si+GAoKCksiJnqk02m6urpkoO1yuaitrV3kASE2Eb29vbzzzjvMzs5it9upr6+XbQ96vZ6NGzfKdtGLFy/icDhYt26dbL0QJnjnz5/n2LFjWCwWtmzZwiOPPAJ82nIiPDQmJyc5deoUlZWVCxIsU1NTXLhwgcOHD2Oz2dDpdCSTSUpKStiwYQOvv/46U1NTnD59mra2tgWG5LlcjnA4TF9fH9PT01gsFpqbm2+ZmKHT6XA4HJSVlTE1NSWntrhcLlwu14KY6tSpU/T09CwdvGq16HQ6gsEgwWCQeDy+4D30+/1cuXKFjz76iFAohMlkkr346XT6M1uBl0OM6W1tbeXjjz/m/PnzssS/rKyM6urqe9qAUeHej7vE91rEWaIqVZid22w26fVzpxAJJb/fTzwelwkv0eabTCbl9VOJyRQUMeMWoVarcTqdWK1W2UpTVFREQUEBoVCIoaEhOjo6sFgsZDIZAoEAAwMDjI6O4nK5MBqNZDIZfD4fIyMj8nE+T1ZApVJhMBioqqqitbWVt99+m8nJSUpKSti9eze1tbWKkKGwYvnWt74FwCuvvLIgaBQiQigUQqPR4HA4CIfD2Gy2L53RCofDso1EZADmTykRrtjZbFYu/goKCgrLbZZLS0upr6+ntrZWep1kbpcAACAASURBVCVotVrWrl0rjSbFei+mdJw7d4533nmHaDRKY2MjO3fulNc2s9nMtm3bcLvdjI2NceLECTl+UUx1S6VSXLt2jaNHj3LkyBFaWlqoq6uTx+V0Olm1ahUNDQ2MjY3x4YcfUlFRQX19PTabjUQiQXd3N0ePHuXy5cusW7dOTgyx2+2sXr2ahoYGenp6OH36NE1NTczMzFBYWCiF59HRUc6ePYvf76exsZGmpiaKiopuWXxlNptpbW1lamqK/v5+PvzwQyKRCLW1tWg0GoLBIMPDw/T39+Pz+ZZ8HKfTSV1dHb29vfT39/PJJ59QWlqKWq0mHA4zOjrKlStXyGQyWK1W6QMyMDAgPU6uTzTdDGVlZWzcuJETJ07IMbdCyFCqMhRWQtz16quvypYuYaAZCATk6PlAICATSberultUl8XjccLhMLlcDo/HQzQalbFgMplErVajUql47LHHlA9Q4c6JGWKTbTKZSKfTX7o3UKPRoNfr5XQPYU613AJoNpsXlHiK3lOj0YjFYkGr1S55TPOfR6/XL9tDKQy2xMkIn2ZTamtr2blzJxcvXuTSpUtks1mKiopIJpN4vV7cbjdtbW0899xzRCIRhoaGmJyc5NixYySTSRobG+V4txsdw/UL55YtWzh27BjT09PYbDaam5upqqpSvr0KK54//uM/BuDXv/41uVwOk8lEKBRCpVLJuenhcBi73Y7BYJBO3J/HEFj0XQYCAbxe7wJHbFFFJcYxP/3008qHoqCgcFObbpvNxqZNm4jH4xw6dIipqSlef/11PvzwQwoLCyktLcVms0kTvomJCdlC2tLSwp49e/j6178u20j0ej1tbW3MzMwwPDzM+Pg4R44coa+vj/LyckwmE6lUisuXLzM5OYnNZmPLli3U19fL4zKbzVRVVfG1r32Njz76iCtXrvDyyy9TVVVFWVkZkUiEwcFBent7qayslK0xVqsVrVZLUVERjz76KEajkc7OTg4ePEhlZSVVVVUYjUY8Hg9DQ0OMjIxQVVXF7t27qaurW7BR1+l0WCwWjEbjshNAhNmoyWSS9xPXdbPZzCOPPEIoFMLtdvP222/T3d1NbW0tNptNxlSVlZXU1dXh9XoxmUwLnqumpoYnnniCVCrF8PAw//7v/059fb0UQ8bHx6mqquIb3/gGDoeD3t5e3G437777Lh6Ph1WrVsnPRMRkNxPPFhcXs2HDBvLz83G73czOzvLkk0/S3NysnDQKK07UEOecVquVFUzJZBKn0ynHudpstls2uUh4d0SjUfx+v0woCR8PUYkhRIwnn3xS+cAU7ryYIVowGhsbyWQyX7r/ymQyUVxcTFNTE5WVlZhMpiU3+Vqtlrq6Olwul3TFFiJFXl4eVVVVxONx8vLyFpX5CRGhpKSENWvWUFZWtmy/vsvloqmpacHrUqlUrF69mu9+97u4XC4mJiYYHh5mbGxMGmrt2rWL9vZ2GhoaCAaDnDlzhu7ubjmJpLq6GofDQVVVFcFg8DOPYT5FRUW0tLRIA66CggJaWlrkrHsFhXuB7373uwC8/PLLZDIZGZSKKopAIIDJZCIYDErDKqvV+pmihqi4EKNgvV4vmUyGcDgssxE6nQ6dTqdUYigoKHwhQaOqqoq9e/dSWFhIT08PV69eZXZ2lqmpKennoNVqMRgMGAwGGhoaqK2tZePGjdL3an684nK52LZtG2azmfPnzzMxMcHMzIyMJywWC2q1mo0bN9LU1MSuXbsWrPfCkPOxxx6juLiYsrIyRkZGGBoaYnBwELvdjlarZcuWLezevZu2tjZZmQGfThZ57LHHqKiooKGhgYGBATweDzMzMzKbazQa2bNnD+vXr2fr1q0UFhYuiMtcLhetra3U1dXhdDqXDi61WhwOh2yJnW/OqdfraWlpIZPJSFHF6/Xi8/mkQLRq1Sr27t3LlStXyOVylJeXL3iuuro6nn76abLZLENDQ/j9fk6fPi2NVtvb22lra6OxsZGSkhLOnTvH+fPnmZubY3x8nKKiIgoLC28qLpyPxWKhvLycmpoapqen0el0bNq0iYaGBuWEUViRosbLL79MLpcjGAxKL0DRfhsOh+XkSYfD8YWri5LJ5AKPslgsRiqVIpPJyN+LytxMJqMklhTurphhNBppb2+nsLCQbDb7pScTuFwu1q1bh16vp7y8XDpeX4/ZbGbv3r1Eo1HKy8vloiNEjmw2S2NjIzU1NYsWJCF4tLW1odfraW5upri4eMnjqa+v56mnnqKwsHDBfYqKiti6dSs6nY7R0VHcbjeJRAKr1UppaSmbNm2Si+HDDz9MUVERtbW1AFRUVGC326mrq5PH+1nHcL0QI7IFBQUFNDc3U15evsDs60HgwoULAKxbt045a+9hvve97wHw0ksvodPpZDWWGOkqeigjkQgWi0VmDuaLGtFolGAwKEeter1eotGo9KARfjYGg0ERMRQUFL4UJpOJqqoqnE6nbLmYnJzE4/Hg9XpJJBIYDAYcDgf5+fmUlZVRV1dHU1PTkiXcGo2GyspKXC4XZWVljI6OMjo6ytzcnBQA8vPzqaqqoqGhgdLS0kVJI51OR11dnUxw9PT0MDMzQygUkmaYIi7Jz89f0JIq/tZut1NSUiIrFkQ7h91uX+DXVV1dvWSc9Mwzz1BYWLigauT6962srIzHH38ck8lEfX297NPXaDTk5+ezbt06OaZ2enpaHn9RURFVVVVs3LiRgoICDAYDNpttwXPl5eWxdu1aYrEYY2NjTE5OMjc3h9FolK+9urpaZqDz8/MpLy8nkUhQUlIiJ9PMjwsLCgpu+H0Qgo9Wq8XpdFJcXExtbe0Np9zcTi5dugTApk2blBNWYdm469VXX5VVEel0mlAoJP1kzGazTCbZ7fabNmhPJBJEo1EikQgej0f6osXjcVmlIUZDK9WxCitKzHjooYdob28nl8t9aTEjLy9PKvwiIyDKkERFhZjx/cQTT5DNZhfMdNfr9TQ2NlJVVUUqlZKllNcvPi6Xi82bN9Pa2orBYFjWpKm5uZmKigp5LPKN+v+DjG3bttHe3i7noos2F7PZjFarRaPRUFJSgtPppKWlBbfbLS8atbW1NDQ0kEqlPvMYBNlslsnJSS5cuIDf76e8vJxt27Y9kONYPR6P/L4o3Pt8//vfB2D//v0YjUb0ej16vZ5sNovH4yEej+P3+/H5fNhsNpxOJ3q9XooXfr9fihmiCiOTycjzcP74MgUFBYUvg0qlwmq1UldXR3l5OalUSl5zcrncgmBdiLSfVbWq1WqxWq20trbS1NREIpGQ3kLCNFlcE+e3VojnFF4PRqORpqYmamtrUalUss1WHIe4Hi6F0+nEYrHQ0NCwwKhcPL/BYFi2hWS5OGk+ZrOZ6upqCgsLZSx3/XvidDppbW2lvr5eVoek02kpZpjNZhobGyktLUWj0Sx6LoPBQHt7O2vXriWVSklfJK1Wi9lslu28LpeL9vZ2Vq9eTS6Xk69PGK2LuPBmKo39fj9DQ0OMj4/jcDjYvn07LpfrrnqYiWkty1XJKCjAf1Zq7N+/H51OJ1s9RFuImD4XCARkpcZyBu1iCkk0GsXn8y2oykin08TjcbknUqlUPPPMM8oHoLByxAyxqN8qhHIXCARIJpOLFqq6ujo5jnSpC7XIwN5oERJK+o2EAKPRuOzirNFosFqtN3z9orQ9k8nIdpNMJsOPf/zjG3pdZLNZOWM5Fotx5coV3nvvPVKplCxdfdDEjPmj2RSvkPuL5557DvjUU2N+X3UoFJLjXU0mE263W24cxOIpAuRkMkk2m0WtViuVGAoKCrcFtVp90xvem0H4SdysAZ8YLR0IBAgGg4tuLy4upqSk5LY9/83GSZ8nNpt/DIODgxw5coSxsTG++tWvsmbNGhkHLvcYKpVKeqndTPy31P2EZ8Zy5HI5GZNls1muXr3K4cOHmZqaoq2tjU2bNt31StmRkRHgUx8RBYWbjbt+85vfSNFUq9XKkc5msxm/34/f78dut5OXlycrZEOhEOFwWIoeYtx9LBYjl8uRSCRQqVTyMRURQ2FFihm3Gp/PR1dXF11dXYRCoQW3OZ1Ovve9793REUK3kng8TkdHB8eOHSOdTvOXf/mXNxQyRDZ6dnaWyclJjh8/TkdHBzU1NbS1tVFXV3dX50TfDf7whz8An5a2KmLG/Ynw1HjxxReloW8ul5NeGFqtVo7zyuVyUu1PJBILFmcFBQWF+5F0Os3IyAg9PT309fUtun379u23bHzq3UDEO5cuXbqpFtw7gdic+Xw+pqenmZub4+TJkxw9ehSj0UhjYyNr16696zHqwYMHAdi9e7dyoijcNN/5zneAT6fOCZN0Yc6eTCalYXs0GmVqagr4z5Gvwq9MVMam02lsNhtarVZWgCgoPDBiRigUYnh4mDNnzuDxeMhkMszNzRGNRikrK+OJJ55YMQvb7UaMZOvs7OTChQsMDQ0xNzdHYWEhX//619m6dasc8/og8X//7/8FULLuDwA/+MEPSCaTvPTSSwCyGkOUcmcyGVQqlSwl/ta3vqWMw1NQULjvyWQyTE9P093dzSeffCLjJ5/PRzKZRK/X8/jjjytv1C0km80SCATo7Ozko48+Ynh4mKmpKXK5HLt27WLr1q2UlZUt245zJ9i/f79sw923b5/yoSl8bsTUuf/4j//AYDDIavhYLEY0GmVmZkbGX+l0mlQqJS0ARNubWq1WqjAUHlwxw+l0sm7dOoxGo3TWPXz4sKxOEN4UdwIxivWzJiiIjRXwpcfSLrdwDg8P09HRgV6vZ82aNaxfv549e/ZQUVHxwAkZ+/fvp7+/H4Dnn39eOWPvY4QbdiQSYdOmTQQCAc6dO4darZbnmmjDqqmpoaioiKmpKWKxGBaLRU4BUFBQULjvgjWtltraWnK5nKzA6Ozs5IMPPsDj8SyqbL0TG/0bXW+z2Sy5XE725t+LYkYikWB0dJTTp09jMBiorKykvr6er371qzQ0NNzQ++x28/d///cA/PCHP/zSHnYKDzZ/+qd/CnxaISu+/4JMJiOtAMREEq1Wi0qlkh5oCgoPrJiRl5dHc3MzlZWVpNNpPB4PV65cYXJy8o4eRy6XIxQKyT78pZR2cR9R2u50Om+p6ZMwoxImVS6Xi5qaGpqamqiurn7g2ku6urr467/+a7lQKy0m9yepVAqfz0cgECAcDstsQDqdprGxkVQqxfDwMLlcjoqKCunEPTs7SyAQwOVykZeXh9PpxGQyYbVaFVFDQUHhvkKn01FVVUV+fj5r166Vv+vo6GBmZuaOHouYYDDf+Hyp+4TDYdLpNGaz+Z6soFOr1ZhMJqqrq9m5cycul4vS0lJqampYs2bNDb06bjd/+Zd/KZM9P/3pT5WTROFLn9ehUIjt27cTDAb58MMPFySTRKUsfJp82rNnD06nUxqG3k0TXAVFzLir6PV6aS6Ty+UwGAxYLBZpoHk9brebiYkJTCYT+fn5FBUVLbqPGPM4MTEhx2e5XC50Oh2pVIqJiQnC4TDZbJbKykpisRgTExO43W4KCgpoaGggLy9Pjoz0eDwEg0H8fj+zs7NEo1HgP0eu2u12iouLMRgMXyr7IEamlZWV8fDDDy9wNL/b6v+dZmxsjL/4i7/A4/FQX1/Pz372M+Vsvc8QU37C4TA+nw+/308wGJT+GMlkUs5D/9u//Vvg00odYcSXzWalEVU4HCYYDGK1WjGZTLhcLmw2myJqKCgo3BeIqW4mk0lmTAsKCmRJ+FJx0MDAAOl0GqvVSnl5+aKESC6XIxaL4fF4mJubIz8/X8Zj8KmnmdvtJhaLkZeXR35+PhMTE8zMzBAOh1mzZg2FhYVYrVay2SzBYFBWifh8PjweD8lkEofDQWlpKRaLBZfLhcvluieqTMUklB07drB+/XppJKrX6++6T8b/+3//j1/84hcA/NM//ZOS7FH4wkSjUemDEY1GCQaD+Hw+aSg7NDS04P4VFRXo9XoGBwfl+Wyz2bBarXKKkILCAyVmzB9pBsjRYkIUEGWK4v/PnTvHr371K2pqavjKV77CE088segxQ6EQPT09vPTSSzgcDnbu3MnOnTvJy8sjEonw5ptvcvnyZeLxOH/+53/O+Pg4hw8fJhgMsn37dvLy8rDZbGQyGWZmZvjggw+4cuUKw8PDJBIJqU6azWaKi4tpamri8ccfp6Ki4ksp9fPdvx/kcsETJ07wzDPP4PF4cLlcvPbaa0r55H1EJpMhFAoRCATknPNAILBgNKGozhDGoAJh9PnSSy9JwVNUSsViMcLhMCaTiWQyKdtPzGbzA9eepaCgcP8xP0sqNtsiNhJTN8TtgUCAf/u3fyMYDLJmzRqee+65Rf5j6XSaqakpjh49ytGjR3n44Yd56KGHWL9+PQA9PT28/vrrjIyMsGXLFnbt2sUrr7zC8PAwer2eP/uzP8NkMmE2mwmFQly5coWPPvqI3t5eOaEuk8mg1+ux2WzU1NTw0EMPsXPnTux2+z0jaNzMFLs7RSAQ4L/9t/8mhYwf/vCH/OhHP1JODoUvJGKIiSSRSESOVp3vU5ZIJCgsLCQej2M0GuV+TbRgTU9P4/f7ZYWsTqfD4XDgcDgUUUPhwREzbmbTE4/H5fiw0dFRDh8+zPr162loaFjy7xKJBG63m+PHj1NYWEhlZSWbN2+Wt125coXjx4/j8/mor69nZmaGrq4urFar3BjlcjkmJyc5deoUb7zxhnTyLSoqwmKxkMlk8Hg8TE5O0tfXh0ajYefOnbS1tSnfqi/Im2++yc9//nOOHDkCgMvl4tixY7S2tipvzn0iYoTDYSKRCMFgkLm5OSKRiJxQIu4TDAZv6IYtejT3798vA/pYLEYqlSIej8s55yLQdjgciqeGgoLCfUs8HicYDGKz2dBoNMTjcU6cOMHs7CzJZHJJcz5RTXH16lXeeecdCgoKqK+vl7e73W4+/vhjLl26RCgUQqPRcO7cOQKBAFVVVfLanUgk6Ojo4OjRo3zwwQckk0nsdjv5+fkAhMNhRkdH6evrw+v1otFo2LFjh5Kk+ByMjY2xf/9+/s//+T/S8POHP/yhFDUUFG4WUREbiUQIBAIysSQqt5LJJKlUilQqJSeeXM/vfvc7mUzKZrOk02k5yjUWixGPx7FarVgsFkXUUFDEjJmZGYLB4BeahX4jYrEYFy9epKCggK9+9atUVFSwdu1anE4nGo2GkZER3n77bfr6+qirq+ORRx6hvr4ei8VCMpnk2rVrnDx5kuPHj/Paa69hMBhoaWlRssCfg8ceewyA8+fPywUa4NFHH+WVV15Rgp37AGFs6/f7icfjxONxWcoogmHhkv0nf/Inn+uxRaXGwYMHUalUJJNJkskk8XicZDJJQUGBFDhsNpss01bOUQUFhfuJSCTCzMzMbbu+TUxMcPnyZZqbmykoKKC2tpba2losFgvRaJQPP/yQTz75hGAwyGOPPcaaNWtk64PX66Wvr48DBw7w8ccfk0gkaGpqwm6335PGoHeK/fv38x//8R/4fD7Onj0rf+9yufj5z3+ujCRX+FxxmBinGgwGZVtJOByWFfKiEiMSiSyqir0eEavt379fTjQRXmcizrPZbJjNZoxGIw6H44Hz/VNQxAx58gmF73Y9fiKRoLm5mT179mCxWLDb7eTl5aHVakkmkyQSCaqqqti+fTv79u3D4XDIEqvVq1eTTqfp6uqir6+PkZERmQ1WMsA3h6jCmM///t//m5/85CfKm3OPk8vlpBeGyAJEIhGSySQ6nU5WQcXj8RsunDdCjO09cOAAuVyOVCqF1+uV5nNGo1FWfVgsFilsKOepgoLC/UAqlSISiSyYQHArSafT6PV6nnrqKSoqKrDZbDidToxGozT7NJlMtLa28uSTT8rED3ya6a2qqqKzs5NLly7R2dkpR8oqG5zlGR0dXRQjNTY28t577ykeGQo3fV0QFe7RaJRwOMz09DSpVGpBO38qlSIWi8kxrTeLENQOHDggx7bOTyil02mi0SiJREJ6aijnvMIDJWbkcjnS6fSSRqC3Ar1eT01NDS0tLbJHdD7V1dXs27cPvV5Pc3PzgvJLgPz8fFatWkVjYyNjY2PMzMwwNzdHSUmJcrLeJI8++ijwaWWG1+sF4L//9//O8ePHeeGFF5QF+x7F6/USDAYJBoNyQolY2GKxGFqtlkwm87kXzhvx7LPPAnDo0CHS6TThcJhoNIrFYiEej6NSqbDZbKTTaRKJBEajUanUUFBQuOcR1W23S8xwuVw0Nzezfv36Rd4bZrOZHTt20NraisPhoK2tjby8vIXBplbLmjVruHbtmjQRnV/arsCSMeijjz6Kz+fj3LlzAPT399Pe3s7//J//k//6X/+r8iYpLEkikZBeGMFgULbfplIp0uk0gPS0SafTXzqhJGIvIWqEQiHp4zM/ORwMBjGbzdjtduXcV3gwxIylFutbuVAbjUba2tqW3TDX1dVRVFQky+H7+vpIpVKyvx9genpazlqOxWJ4vV4KCwuVb9ZNMj/r8MYbb/Dzn/+cd999lyNHjtDe3s7Ro0cVz4x7CL/fj8/nw+fzyaqqZDJJNptdEGyLSorbxfz+8EOHDklvDmEurFaricfj6PV66auhGIUqKCjcD4jWvVtJaWkp7e3tstpiPiaTiT179hAOhwmHw8zOzjI9PS03TQDBYJBUKoVarSaTyciNVkFBgfKBLcNzzz0nM99jY2O89NJL0jPjRz/6EZcuXeJf//VflTdKQSImk/h8PsLhMIlEQsZi84UF4Xch/MduFULUeO2116ShqNlsltVbwlA3mUzKtl9F1FB4YMQMYTKVSqVu2WPq9Xpqa2sXZRkEKpWKXC7H6Ogo165dY2pqSm6KBFNTUwwODhKLxaQJznyxQ+Hm2bdvH/v27ePEiRM8/fTTeDwe9uzZowga9wCBQECWL4pFK5lMyvMolUrJ82M5Q6nbLWy89tpr8pxOpVKYTCaMRqMsvxRjoa1WqyJqKCgo3LOIkvFbmfzJz8+nrq5u2Y2HVqslEAjQ3d3NxMQEwWBQjrGHTzPFPT09uN3u2151ez9SVVXFT37yE370ox/x4x//mBdeeEGafyqChkIkEpGJJCFgRKNR6WeRyWSIxWJoNBpyuRzf/va3b+vxfPOb3wQ+TSYJLzNRBZvJZFCr1SSTScLhMGazGZPJdFu8ERUUMWNFkclk8Hq9hEKhW/fitVqcTueSI7dSqRT9/f2cOnWKixcv4vV6SaVS0jND4PP5iEajt62080Fk586dXLx4kWeffZZz587x7LPPcvbsWcUMdAUiyganpqakcVQ0GiWVSskRxkLMuN2L580urm+88QbRaFSWPRqNRux2uzz+eDyuGIUqKCjcs8RiMebm5m5p8sdsNuNyudBqF4aNwuD55MmTdHZ2cuXKFVn1Nj+2SiaThEIh6ZWk8MVwOBz84he/oK2tjeeff55f/OIXrFu3ThnP+oASCoXwer1SxIhEIvIcy2azMnlzK1pJvggimXTo0CE5+USMfjUajRiNRmKxmKySFb4aCgr3jZihVqulWUwul5Ml6zfi85RY6vX6RYtzOp1mbm6OU6dO8e///u8EAgEqKipoaWmhrq5ugXrY19eHz+dDp9Mp36ZbSFVVFb/85S955JFH6O/v58c//rEygmwFIaoZEokEc3Nz+P1+YrGYNNQUCxZw21tKPi/79u0D4J133pHll4lEAq1Wi9FoJJvNEo1GMRqN2Gw2RdRQUFBY8ej1eiwWixzLGo/Hb6pK9GbbdzUaDXq9ftH0kUgkwtDQEL/73e+4evUqmUyGDRs2UFdXR3l5ubyfqNabm5sjGAwqH9iXRLSZvPDCCzz//PN84xvfUDzGHhByuRzRaFR6kwlz9fk+FWq1Wrb33mjU/Z0WNcToVyFmaDQaXC6XrNQQJu2KqKGwIsWMXC4nSx/VajVGo3HJaQJiAdZqteTn52O321Gr1eTl5S1ZRXE9n8fVe6mxYOl0mqGhIbq7u+nv72f16tXs2rWLffv2yRnu8g3Uajl//rwyXuw20Nrays9//nO+//3v88ILL/DTn/5UWaxXgIghyocjkQh+v5/Z2Vm0Wq1cPEWrleidXKmIscBvvfUWfr8frVaL1WolHo+j0+mwWCwLjEINBsMi4VNBQUHhdiBKswF0Ot2y7R3ZbBaVSoXFYqGgoACtVovJZMLpdN7wepXNZqWYezMsFed4vV66u7u5fPky8XicDRs28K1vfYva2toFmxGfz0dPT49yDb2F/OIXv+CDDz5gcHCQ//W//peS8LnPEa0i4sftdsukkkggZbNZ+bMSYzAharz11lvSpF34Dmq1WjQajZyIIoQNs9ms7LEUVo6YEY1Geffdd/H7/eTl5fHII48scrwW9xP9VXl5eTIzarfbb6qnKhwOy7L3L0I6nWZycpLp6Wmy2SwbN25k27ZtrFu3btF9zWYzgUBggY+Gwq3jueee43/8j//B4OAg//RP/8Q//MM/KG/KXQqsRQuJyAaEw2FZASWM3eLx+F1vJ/m8PPHEE3JxFZNW0um0zB4IcVSn02G322UmQUFBQeF2MTAwwCeffIJOp2PNmjVs3Lhx0X3EtUmtVmO1WmUbrMFgWNQSu9zmaHp6Gp/P94WPMxgMcu3aNXw+HzU1NezevZtNmzYtMkI3GAxyZKPCrePv//7vZcLnZz/7mdKOex8ixquKOCwYDMoWd41Gg0ajkca6wIpPJM2Pu95++21ZDa/RaDCbzbLy12QyEYlEcLlc6HS6ZRPgCgp3VMyIRCK8/fbb9PT04HK5qKioYPXq1dIdOx6PMzs7i9vtBqC8vByz2SyVfNFTZTAYCIVC0txGLNi5XI5kMsm1a9e4ePEikUjkCx1nNpuVvfPLmYQKwWNkZAS3262IGbeRv/mbv+H555/n0KFDiphxF0QMMVZ1/rhVMdVHlCivBE+MgGUXTQAAIABJREFUW7W4Hj58WIozItuhVqsxGAyk02k5+cRgMKzIhbWrq+szy7iHhoY4efLkgt/Z7XbFZFdBYQXR29vLSy+9RCqV4qmnnqK2tlYKFMKnwu124/P5KCoqoqCgQFZvaDQajEYjZrNZ3ldMlRLXrEwmQzAYpLOzk9HR0S+1RghhOz8/n/r6+kVVJH6/n4GBASl6KNMLbh3PPfccf/VXf4XX6+WNN96Q008U7g8RIxaLEYlECAQChEIhGX8lEokFMVgul1txLb03w+OPPw7A73//e+BTvx9hWJpIJNDr9eRyOfR6vayQtVgsiqihcPfEDJVKhV6vJxAIMDU1RUdHB0ajkdraWgAmJibo7Oxkenoam81GS0vLop4ps9mM0+lkenqa8fFx5ubmsNlsqNVqUqkUXq+XgYEBuru7Fzhpf97jFGpnLpeTFxCRUchmswSDQT766CMuX74sjQ7T6bQs2TQajcq36xbxjW98g+eff57+/n7GxsZWbKvJe++9x9DQ0LK3nzx5cpG3Sl1dHXv37l1xryWRSBCPx4nFYgSDQQKBAMFgUAbEqVRKlgPeiwvoZ/Hkk08Cn3pqiNnsOp0OnU5HKBSSGVCTySTLv1dSpcaLL77Iz372s2Vv/8d//Ef+8R//ccHvfvzjHytCoYLCCkKj0aBSqRgaGuLSpUt0dXXR3NwsW+F6enoYGBggGo3S1ta2wJ8CPm2BdblcDA8PMzIywszMDMXFxZhMJhnXjIyMcOXKFcbHx7/wcarVapkZTiQSBAIBotEoer0e+DTx09vby7Fjx/B6vdL8T8RKqVRKaT35kjz77LO88MILHD9+/IEQM+6nWOuz4q94PC73H6ICXCRORRXGvdDSezM89dRTAPzhD38gk8nIdmWz2YxarcZkMkmjUFG5r1RqKNwVMcNoNLJ161ampqZ49913ef311xkdHaWpqQn4dI72hQsX8Hg8bN68md27d2Oz2RY8RmFhIWvXrpVTRn73u9+xatUqtFotfr+f/v5+hoaGKCgoYGJi4gsdp06nk+ZVmUyG06dPo1KpZKm53+9ndHSUS5cuEYlE2LBhAydPnmR8fJxTp04B0NjYqPR43SLmixcrWcwQfavL8fbbb/PRRx8t+N1Pf/rTFbXAijLGcDhMNBolHA4TCARIpVKy/Uso5aL38X5FeGq8//77slLDbDYTDAYX+GiIcuqlzITvBj/4wQ8+U8xY7m8UFBRW1rq3c+dOBgcH6ejoYP/+/WzYsAGbzUYsFqOjo4OOjg7MZjM7d+6kubl5URzT3NzMtWvXGB0d5fe//z3Xrl2jsrKScDjM5OQkfX195HI5bDbbF07+uFwuGhsbsdvtjI+P895775HJZCgoKABgfHyc/v5+ent7qa2tJZPJMDIywvnz5zGZTKhUKpnQUvhi1NTUADAyMvJAvN77IdZaCmFIHovFCIVCC+IvUQ0rpsPdb0kkwTe+8Q0paggz40gkgtPpRKVSYTQaicfjWK1WLBYLRqMRnU6ntP4qYsadFzNEv9e1a9fw+/10d3cDEAgE8Pv9rFu3jt27d7Nx48ZFlRnV1dU8+uij+P1+vF4vr7/+Oo2NjZhMJlKpFIFAAKfTyc6dO/F6vTgcjgXqnegtdTqdy2YEdDodDQ0NbNy4kb6+PmZmZjh58iRTU1OYzWai0SihUAibzUZzczMOh0M6CZ85c0Y69NbU1NzwuRRuPmDyer34/f4Ve4w7d+78zAyXmAF+/d+sBDKZDPF4XC6eYgGJRCILFlKdTidHnD4ofPWrX5WihjA4zWQyRCIRWS4t2lBMJhNms/muLqytra3U19czODh4U/evr69XWkwUFFagmPG1r32Na9eu0dvby5kzZ5icnJTtblNTUxiNRr7yla+wfft2uaEVmEwmduzYQTgcJhKJcOLECUZHR6msrCSXyxGJREgmk7S1tWEwGLhw4QIWi0VWVADSe8Plcsl24OvJz8+nra2NHTt20NvbS2dnJ/F4HKfTiU6nk73wdXV1NDU1cfnyZY4cOUJ/f79shSkuLr6p51JYGuGTsZLjIyXWWhoxGCEcDhMKhaQ/hmgnicVipNNpGVPcryLGcqLG+/8fe+cVG1d63v0/p/feWIbDNuwiVShKIkVJq5W0Wa1kebvXNhwYBpwAyUWAJAjiXCRI4AsnF4ETBPmcZBEbThwbu/HaK2/TciXtSpTEJpGU2MlhnV45feZM+S70nfcjxa4lVVbvD+ANZ86Z09/nPO/z/P+ffQYul4tYLEZaT/h8PhKJBFKpFMRiMXg8HuRy+ROZ1HA6nRvqBPn9fszMzKx6Vy4sLKQPtic1mcHj8VBcXIyTJ09Cq9Xi0qVLRI0XuN+3bbVaceLECTQ1NUGv168qFTObzTh9+jQCgQBGR0fh8XgwNjYGlUqF0tJStLW1obCwEFwuF/Pz89BqtdDpdGQ9fD4fxcXFqK6uRjabXbN3k7UJOnToEDgcDr744gt4PB5MTk5CKpVCq9WipqYGLS0tKC4uBpfLRSgUwsTEBKLRKEKhEKni2Oy3KFvjwIED+PTTTzE0NESsNZ80rFYrDh06hO7u7i19/9ChQ7BarY89iZHJZJBIJLC0tIRAIIBYLEZaplg1/Vwu98wMopslNb744gsAIC03Pp+POJ+wKtyP2/3klVde2XJ1xrN+XimUJxGFQoH6+np897vfxa1bt3Djxg2k02ki+ldVVYXGxkZSlaFQKFYFxIcOHSLPd4fDQWy0i4uLUVFRgerqauj1esjlcqTTaRQVFa1IJCgUClRWVqKgoAAmk2nN7RSLxSgrK8Nrr72G3t5e9PX1weVywe/3Qy6Xo7i4GHV1dWhuboZer4fRaEQmk4HL5UImk4Hf70cmk9nSb1HWprm5GQDQ29v7TOzv0xhrPQjbrstWwsZiMaKPsdxhiNW5eVbHaTbuAu63F2UyGdLSFggEUFBQQFpRstksRCIRaQF+Evj444/R2dm57ucXL17E+Pj4iv+dOnUK3/3ud+mD7UlNZhQUFEAoFKKsrAwqlQpqtRp+vx+JRALAfT0MnU6Huro6aDSaFTMELFKpFOXl5Th79iz27t1LXr6kUimMRiOqqqogl8uRyWSIRofFYiEuKGKxGG1tbaiqqkIul4NGo1lzW/l8PiwWC5k18Hq9iEaj4PP5UKvVKCkpWfFbZ86cQVNTE8LhMFQqFYqLi7f8W5SvBgKBAF//+te3PMB+/etfX/Maf1QDKassH4/H4ff7EQgEkEqlVvQxZ7PZZ64SYzOOHTtGBlY2+GAYBjKZjMyiJBIJiMViiMXix9J+8rWvfW3LyQzaYkKhPIHBGY8HlUqFAwcOEGHNeDyOTCYDHo8HpVKJ0tJSVFZWkmB+OVwuF3q9Hi0tLZBKpSSGSafTMBgMKCkpgcViAY/Hg1qtRllZGUpLS1dob1gsFpw9exZLS0uorKxcczu5XC7kcjn2798PnU4Hq9WKUCiEfD4PsViMoqIimM1mlJaWQiAQgMvlQiqVkooNvV4PiUSypd+iUJ62WOtB2AkkVjg3FAohFAohnU6T2KGgoIAIe34V9DB2CrZN6PPPPyc6hdlsllQOCwQCojXypCQ11Go1fvGLX6z7eV9fH/r6+lb87/XXX6cne7v5hXw+n9/oC6xqLis2s16SgvU236pORDabRTqdJuKZ7Hq4XC4EAgE4HM6662JdSzKZDPFTZkWo+Hw+OBwO+Q67bTweD+l0GqFQCGNjY+BwONDr9SgvL1+3YoJVCmazp8FgEDMzMxCJRGSAFgqF5LeWb8vy32SPHRWreXjOnDmDTz/9FD/84Q/xgx/84IndzuHhYTQ2Nm7pu/fu3UNDQ8Mj3b58Pk+qByKRCAKBAHw+H5LJJPk/e0++8cYb9MLbAp2dnSgoKCAzBAqFgvShL28/EYlEjzSpodVqEQgENvxOZWUlpqam6EmkUL4EuxUnLX9mswE72zfPxjwCgWDD9bEVY8tdD9hYiRUZZYUF2QR2NBqFzWZDQUEBVCoV9Ho9pFLphtWlrAuc1+vF1NQU+Hw+TCYTioqKIJFIyEsFG1Oxx4rH40EgEJD/53I58Hg8Wsm6Da5fv46Ojg5yvTwLPOmx1lrvPOxzIhqNIhwOw+/3E7FPhmFW3PN0Emlzrl69Sio1+Hw+ib94PB4RZ2fb/h9XUiMYDKK+vh4ul2tL3zeZTBgZGYFaraYneBtsGlmHw2EsLi4iFoshl8utvRIej1QwsBcNn88Hj8dbd5DlcrmkWmLbGZj/V+Gx2WD34ItDJBLB2NgY3n77bSiVSpw8eZL0ai5/4LCD+vKkRCwWg8PhwH/913+RZbVaLYRCIdmetaAD8rOF1WpFRUXFhkrbwH1dg0dd9shmspeWluDxeBAOhxGPxxGPx0lPH01ibB92tqCzs5O4n/B4PGQyGaK8nUwmIRQKIZPJHpn7CatwvxEnT56kJ5BC+ZLsVpzExjsCgeChZ5bZGGYjuFwuiVV8Ph9GR0dXxEknTpzYME5ikyupVAoLCwsr4iSTybTiRYJ1inuY7aRQnoZYazmszhar6RcKheDz+ZBIJEiSkk00FhQU0Fn5bXDixIkVsRebMBIIBERHMZ1OI5FIkKTGo67QUavVOH78OH71q19t6fvHjx+niYzdSGbMzMzgww8/xMLCwroiJuxAqFQqYTQaUV5ejj179sBkMq1yI3mc5HI5JJNJ+Hw+ZLNZxOPxVYGH0+nE3NwcKioqoFaricXqVpalUAQCAS5cuIB//Md/3PB7Z8+efeQP1Xg8DrvdDq/Xi1AoRKqj2Nk+msTYmaTGjRs3SIKITbry+XxIpVIyyyoSicDlcnc1eP/a1762aTKDtUOjUCgPD42TaJxEobHWWmSzWfh8PrjdbiLwGY/HSSKjoKAAuVwO3/jGN+hJ/ZKx16VLl4iYPZvIYNt8H0xqPMqJ5gsXLmw5mUGvg11KZrjdbty6dQvDw8OQyWRr2mKyL0WsdkVhYSEcDgdaWlrQ1NS07bLK3YJViH3uuecgkUhQVlZGLmhW3fvevXu4fv06zp07B4FAQAbpjZalUB58GG02wD5KMadYLAa32w2Xy0UUstkKAgB466236EnbQdra2gAAV65cIRoaPB4PXC4XiUQCEokEEomEzNSys7M7zblz54gL0FpoNJonVkyXQnmaoHESjZMoNNZaTj6fh8fjgcvlIq28rKgna/X+5ptv0pO4g5w5cwbAfQcUNnnB5/MhFouJjiKbzGCrZB9F+8nJkychk8kQjUY3/J7JZMLx48fpidyNZAarF7G0tIQ9e/asOXubSCQQCAQwNzcHm82G/v5+zM3Nwe/3E2GpzQY0tk+f1c14mAdHLpfbcFmJRIKKigq8/vrrRLSKbXVhGAaLi4vo7+/Hp59+in379qG4uBharXbTZXdzv5avB8CGWiLrwZavPQmB0rPAnj17UF1djYmJiTU/r66ufiRWmIlEAvPz85ifn0csFiPaLuw1QZMYu8tzzz0H4H4JZC6XQzQaJb3p8XiclEGyLXe7oamxUasJFRajUHYGGifROIny7MZay0mn07Db7XC5XMTink1ksroY3/zmN+nJ20VYB5TPP/+c6JQkEgnS9svqLbKTSqy+xm5hNBrR3t6OTz75ZMPvHTx4kLaY7FYyYzkWi4WU8zx488ZiMQQCAdy+fRuXL19GX18fbty4gZKSEmg0Guj1+g0HII/Hg2w2C4FAAI1Gs+2gnvVp3mhZHo8HmUwGmUy25jYsLi5idnYWDoeDOBRsZdnd3K/l6wEAmUwGqVS6ZSHRXC6HYDAIgUDwRJWyfpURi8V4+eWX8aMf/WjNz19++eWH1ovZCqlUCg6HA/Pz8wgEAqQ6gA3SqHvFo4V9Zl69epXckzwej4jdsZZi2WwWfD5/R91PNmo1oS0mFMrOQ+MkGidRno1Y68F7y263w+l0wuPxIJPJkOQhe419+9vfpiftEcJWOXz22Wck3mIn9NgJJbZSg9UxYqvMdpoLFy5smsx48cUX6Ul7FMkMqVQKg8Gw6v/sDZvL5aDVasHn8zE6Ooq5uTn09/evGtgZhkE0GsXi4iIikQii0SjsdjsymQwkEglMJhO0Wi10Oh0MBsOqfrdsNgu3200sjRiGQSgUQiQSgV6vJ4NpcXExFAoFWT6VSmFpaQk2mw18Ph9GoxEGgwEejwdDQ0Po6+vDzMwMUqkURkdHwePx4Ha70dTUBB6Pt+ayy7ctlUqtEAJjNQqW75fBYIDJZIJarV4xYIfDYXg8HrjdbqhUKphMJoTDYYRCIXi9XtjtdhQUFECpVBJbtZKSklWzGMlkEqFQCA6Hg/Tte71eCIVCaLVaiEQiqFQqGAwGKBSKRyJE+CzyyiuvrDvA7lbZI5vEcDqdiEQixLecbSf5zne+Q0/MY4QVq/rss8+IgN5ykdB8Pk/cT9hB9cven+u1mtAWEwpld6BxEo2TKF/tWGs5kUiEtPEGAgEkk0kkEgkAIMk0OoH0eGErNS5dugSBQIBoNEr0y9ikhkQiIVWyYrF4U5eoh7lO/+Iv/gKRSGTNz+Vy+WNriXrmkhmstdhGVFZWIpvN4u2338bCwgLm5uZIJozNTvr9fgwPD+P999/H3NwcwuEwsTZlg/mqqiocPnwYZ86cgV6vJ4NhJpNBMBjE1atXMTg4iMnJScTjcaRSKdKbLpPJYDabcf78eTQ0NKCkpAQcDgdLS0u4e/cu/uVf/gUqlQovvPACTp8+jb6+Pvz4xz+G2+2Gz+dDNBrFxYsXcf36dZSVleFv//ZvIZVK11xWo9GQ7XK73bhz5w7ef/99OBwOpFKpVfvV1NSEkydP4vDhw9BoNGSQXFhYQGdnJz766CPs2bMHL774IsbGxjA6OoqRkRGyf1wuF0ajEWfOnMFrr70GlUpFzkkmk1lRAup0OokQDvv7KpUKjY2NaGtrw759+6BSqahd7C6wXvnjbpQ9ZjIZOBwOLCwsIBgMkpdkdsaMy+XSGYEncGC9evUq4vE4qZpZWloCj8dDKpUiVoVCofBLD6prtZrQFhMKZXegcRKNkyhfzVhrOcFgEA6HA263G8lkEul0ekUrST6fp0mMJwxWU+Py5csoKChANpsFl8slbSdcLndFBQfrIrUTSQ2j0Yjjx4/jd7/73ZqfHz9+HEajkZ6kR5HM2ArsQMBeIMlkckWZVTQaxc2bN/Hf//3fmJiYgE6nQ01NDRQKBfL5PMLhMO7cuYOenh4sLi6Cy+WitbUVtbW1AACPx4Pe3l6899578Hg8kMlkqK2thUQiIf7oCwsL6OnpwdLSEl544QVcuHABcrmc2FKOjY1Br9fD5/OBYRgYDAY0NTWhq6sL+XweAoEA5eXlMJvNqKiogEQiWXdZdnB0uVy4evUq3n33XYyPj8NoNKKhoWHVft24cQNut5sM2CaTCcD9kieHw4Hh4WGEw2FwOBx4PB5wuVw0NzdDIBDA7XZjcnISt2/fBo/Hg16vx8mTJ6FWq8k2XL9+He+88w68Xi+MRiNZlj32Y2NjuHz5Mmw2G4RCIWpra6HT6eidsMOsV/64k2WP7Myb0+mE1+tFKpUiD2K2R/P3f//36cl4QmErNbq6uhCLxcDhcEiLCSsGyFoesn8PM6iu1WpCW0wolMcHjZNonER5emKt5fj9fng8HiwuLpLKV7bSktV+oXHXkw1rSd/Z2Qkul0vsc/l8PrLZLIm1BAIBmVASCoVfOqlx4cKFdZMZFy5coCfmSUpmRCIRLC4uIp1OQyKRrCgTZBgGExMTuHnzJrq6ulBfX4+2tjYcO3aM9CmGQiEYjUbcunULQ0NDUKvVZCAG7luC9fT0YHBwEBaLBWfOnEFzczNkMhkZpO/evYsbN27A7/fD5XIhEols+FCrqqrCSy+9BIfDQTQGWlpasHfvXlRUVECpVK7rCADc74UdHBzEtWvX0Nvbiz179uDIkSM4evToqv1i991isUAkEpFBejlOpxMjIyNoaGhATU0NrFYrBAIBXC4XBgYG8Mtf/hLj4+Po7OwkgjGZTAazs7O4c+cOBgYGcPToURw5cgQtLS1kkA6FQtBqtRgZGYHD4YDH44HZbKaD9C6xVvnjTpSR5XI5eL1euN1ueL1exGKxFcKeVNzz6aK9vZ0kNdgqjVQqRSzbWCtXdoZgu0mNB9tJ5HI5bTGhUB4jNE6icRLlyY+1luPxeODz+UjMxTAMSWDQmOvphG3tu3z5MjKZDEQiETgcDkls8Pl8pFIpiEQi5PN58Pl8cLnch05qnD9/HnK5fFWriVwux/nz5+kJeVTJDDZ79SBsL2gmk8Hk5CS6uroQiUSg0+lQXV1NBFUSiQS6urowODgIHo+Hc+fOob29HbW1taSMkGEYlJeXQyAQ4N69e+jp6UFjYyMpjWT7MUOhEI4fP45z585Bp9MRe51MJgOTyYTCwkLMzMzAbDaDYRjk8/l190uj0aC6uhpqtRpCoRAMw6C4uBhWqxUVFRWbqtwmEglcv34dQ0NDEAqFeOWVV3DkyBGUl5ev2i8A6O3txaeffori4mIcPXp0VfkiO0tz9uxZ1NTUECErq9UKs9mMW7du4e7du+jr60MkEkE+nyelk06nE8B9e8ijR4+iuroaXC4X+XweqVQKhYWFGBwcxPj4OKRSKVXu3kWam5tRV1eH0dFRAPeF4Zqbm7/UOl0uF7xeL3w+HxKJBJLJJJLJJFGCpyrZT39S48aNG0ilUggEAqR3UywWQygUQiqVQiQSbfu+ff311/HOO+8AAFpaWujBplB2CRon0TiJ8vTHWux94vP54PP54Pf7EY/HkUgkkEgkwOVyweFw1nQuojxdsJUa165dQywWA5fLBY/HA4/HI/EWh8MhFWnshNJ2nwvrtZrQFpNHnMwIh8OYm5tb84aPx+OYmZlBf38/rl69img0in379qGtrY0oWyeTSdy4cQPT09MwGo04ePAg6uvrVylfy2Qy1NXVwWq1YmRkBPPz87Db7SgsLASHwwGfzyc95g6HA0ajERKJhCxfUVEBtVqNxsZGiEQiaDSaDb2E2bJuHo9HLk7WO30ryrapVAr37t2Dx+NBaWkp9u/fj+rq6lWzHDKZDFarFYWFhVhYWMD8/Dwikcgq9WydTof6+npUVFSsuMAlEgnS6TSMRiPGxsYQCAQQCoXIy2wulyMDttvtRiQSWdHzJZVKySxQY2Mj9Ho9tQHaRYRCIY4ePUoG2Kampoe2f/L7/aQ/k73fWM9yDoeDb3zjG/SAf0Voa2sDANy8eRPpdHrFvcu6nmxHqR+4X8LIJjOOHj1KDzKFskvQOInGSZSnN9YC7lcReb1eOBwOhMNhIhTJVsDm83kac30F6ejoIEkNtlV7eSsRwzAQCoUQCoXg8XgkobUd1mo1oS0mjziZYbPZ1uz3yWaziEQimJ6exsLCApaWlrBv3z60t7eTgZIdzO12O+LxOKqrq6HT6SCVStccNLVaLcrKyjAxMUEUrNlBpbKyEnK5HDabDb/97W8RCARQVFQEpVIJiUQCiUQCrVYLrVYLDofzUBfcdh567Pbl83kUFhZCrVavObjzeDwolUoUFxfD7XZjaWkJwWBw1WBuMpmwZ8+edUs+2eAhkUggFAohFosRVfKioiLweDz09fWBz+cjk8lAq9VCJpNBLpcTpXWj0Qgul0tVuneZN954g+gVvP7669te3uv1wu/3IxgMIhwOE89ytp3kW9/6Fj3IX1GOHDkCAOju7gbDMEQAMJ/PQywWb+uZtryt5E//9E/pwaVQdgkaJ9E4ifL0xVrAfU0Wv9+PUChEYq50Ok1sVrPZLI25nqGkxo0bN5DP50kii62SFYlEEAqFkMlk29bSeLCdRCKR0BaTR53MGB4eXrcnki2f1Ov1OHr0KE6dOoXGxkYUFxeDx+MRG5x0Og0+nw+1Wr2hSqxYLIZWqwWXy0UikUA4HCalka2trbh58yZmZ2fx0UcfYWBgABaLBZWVlSgsLERZWRnp4RSLxRvONnxZYrEYXC4XkskkJBIJDAbDhhe3VCqFXq8Hl8tFPB5HMBhcZeOm0WhQWVm5bmaZXXc2m8XS0hJisRg0Gg3q6+sxMzODO3fuYG5uDn6/nxwbs9mMsrIyWCwWmEwmUnJKyyd3/4W0pKRk1QvlZiSTSczOzmJhYQH5fJ60lAB0VuBZ49ChQwDuV2pks1mkUimkUimoVCqoVKotrUOpVJIAT6lU0oNKoewSNE6icRLl6Ym1gPvtTQ6HA3Nzc8hkMkilUiucxrLZLNXEeAZhq2SB+5pmqVSKJEXFYjHy+Tzy+fy2Wn+NRiM6Ojpw7do1AEBNTQ1tMXnUyYzKykqcPn16zc/4fD5KSkqI77nFYoFSqSQDZDQahcfjIfZXm2W6l9ubRaNRuFwuMAwDtVqNvXv34o/+6I8wMjKC4eFh2O123L17F3fu3IFMJoNKpUJhYSEOHjxIBKp2C3bGIZvNQi6Xo7i4eJXf+1rBB5/PJ4HNg32qPB5vS3ZAbKkkq76rVqvR1tYGoVCI3t5e2O12+P1+3Lp1C319fZBIJFCpVKirq8Phw4dx9OhR+mKzy0ilUnLPbLVUlT2vPp8P4XCYlMXSJAYN1gCgp6eHVOlEIhEolUrI5fJNnxe0lJFC2X1onETjJMrTEWux10c2myVaZGzVKxt30SQGBfj/mma9vb3EhpetlBUIBNuq3nr11VdJMoOtAqE84mTGepZ+fD4fRUVFRA2Wx+OtKFl8GLEUluX9nwKBAHq9Hh0dHSgvL4fVasXs7CycTifcbjdCoRCx7nI6nWAYBkajcdeUqJcPtGxPFWuxtt73NxPa2s5xYQUC2cHdYrFAoVDAZDIRoSuHw0HcL+7duwen04lAIAC1Wo2amhpotVp6J+wi2xXldLvdmJiYgMPhIKJDb775Jj2QFABAa2srAGBpaQnJZBIejwcKhWLT5aiDCYXyaJIZNE6icRJ7jgMhAAAgAElEQVTlyY+1gPsuJVNTU1hYWKDxFmVTDh48COB+CwpbKZtIJKBSqbac9Dx//jz+5E/+BADw/e9/nx7UR53M0Gq1xPrrQdgBdLNySHZAyWazG/4Wm00HQPon2XJCtqdSLBajpKQEqVQKDMMQf/Br167h0qVL6Ovrg1wuR2VlJQ4fPrwrB3B5ABEKhTA3N0dEgtaCLbdkGAZcLhd8Pv+h+1S5XC6USuWKflqhUAi9Xg+ZTIbm5mYwDINUKoXFxUUMDQ2hs7MTExMT6OzsJKWtdJDeXdgZ9a3icrkQCoUgEAh23F6M8tVBqVSSv61+n0Kh7C40TqJxEuXpiLUAwOFwwO/303iLsi3YFpSenh5Eo1FSKatQKDatlC0tLSUOKjU1NfRgPupkBmtT87CDmVgshlqthtvthtvtBsMwGw5mbrcb6XQaIpEIKpVqRRlPQUEBUZVlyeVy0Gg0UKlUEIvF+PnPfw6PxwOHw7HhwPllXyjMZjMEAgH8fv+W9svn84FhGCIyxZaJbvvk8XhQq9WrxMG4XO4q5XOtVguTyYSioiK89957eO+999Df34+qqioy00vZHdYSb9uIvXv37mrJL+WrxcM+kykUyi4EVTROonES5amItYD7TnHrVVJRKJvBPhfC4TASicSWKmV5PB655h72uUb5EsmMnRjkKyoqSKnj3NwcdDrdiow3qxzrdDoxNTUFDocDpVIJtVoNDocDm82GkZERqNVqmM1mlJaWrggEtFotLBYLsfxiGAaJRGLDkkZ20Ofz+dtWrRYKhdDpdCgtLUUoFILH44Hdboder18hzsful9/vh9frhUajgclkglqt/lIXs0gkgkAgILZn4XAYfD4fjY2NUCgUZDZDIpGguLgY+XwefX19yGaziEajRFSSQqFQKBTK40+G0DiJxkmUR8OpU6foQaB8aRQKBRQKxbZaTShPaTJDKBRi//79cDgcuH37Nrq6uiAQCLB//34yOCaTSSwuLmJ4eJj4rJeWlkKv14PH46G/vx///M//jPLycpw+fRpnz56FQCAgvW4ASLlPLpcDj8eDUCjctESRw+FAJpNBJBIhn88jFoshFoshkUiAx+OtO8gXFBRALBbjwIEDCAaDmJ2dRXd3NwQCARobG1ft1/T0NILBIFpbW1FZWbktFdz1fh+4L/7129/+FsPDwxAIBPjjP/5jVFVVrZh5SKVSWFpaQjweh0AgIFZkFAqFQqFQHj80TqJxEoVCeTrZalXe8gQz5SlLZkgkEnR0dMDv92NsbAzvv/8+bDYbhoaGYDQaiaLwwMAAhoeHIZfL8dZbb6Gjo4OofbMK3P39/VhcXMTdu3fR2NhIysuSySTGxsbQ1dWFWCyG0tJS7N27FxKJZMMSSj6fj7KyMphMJkxNTaGzsxPBYBDNzc2orKzccMZCKpXizJkzCIVCGB4exq9+9SuMjo5i//79a+6XSqXC+fPn0dLSsmOWX3w+H2azGffu3cMXX3wBAGhoaEBFRQWEQiFyuRyCwSB6enowNDREFL1pvxaFQqFQKE8GNE6icRKFQvmKv3zT9pJHm8wQi8Wk1E8ul3/pk2c2m9Ha2koUoz0eD27evEkEnrLZLCk/bG9vx8mTJ1FZWUnWUVFRgXPnzkEikcDpdOLOnTvwer3gcrlgGAZ8Ph+hUAgAcPz4cRw9ehQWi4VY57DCTxqNBlKplMwIiEQiNDY2Yn5+HjabDXa7nayTtT5cb1mBQACr1UoCEHb5VCpF9iuXy8HtdsNkMuHo0aM4dOgQiouLyX4JBALI5XIYDAaoVCoyi/IgrJiVXq9HJpMhN4RQKERLSwvi8TjS6TQCgQD6+/sxNTWFfD4PLpeLXC6HhYUFcmwPHjyIwsJCehdQKBQKhfKQ0DiJxkkUCoVCeUKTGSqVCvX19ZBKpTCbzV/qx5aXGhoMBnzxxReYnp7GwsICxsfHIZPJYDabUV9fj6amJnR0dMBsNkMikZB1lJaWQqlUoqysDAMDA+jv74fX60UoFEI8HkdhYSEKCwuxf/9+tLW1oaqqivSR8vl8aDQaNDU1QaFQwGg0kpkMgUCAffv2IRqNwufzwe12AwCCwSDy+TyEQuG6y3I4HKhUKhw/fhzl5eXo7OzE7OwsPB4P2S+LxYLm5mY0NDSgtbUVFosFYrGY7Bd7fPft24eqqipIpdI1B2l2ZiQajSKbzZJ1CAQC1NfXk2M4MDCA2dlZLCwsIBgMQi6Xw2QyoaamBnv37l3z2FIoFAqFQtkeNE6icRKFQqFQHg8F+U2MvAOBABwOB+LxOIxGIywWy5f+0Xw+j3Q6DZfLhaWlJUQiEUQiEfD5fEilUgiFQmi1WhiNxjVtzHK5HKLRKBGJSiQSSKVSyGQykEqlkEgkUCqVMJlMEIvFZDBlGAbhcBgLCwvg8Xhk9oD9HAC8Xi8WFxcRj8cB3J+JMJvNEIlEYBhmw2Xz+TySySQcDgcikQjpSeXz+ZDJZJBKpVCr1dDpdKv2i1Xv9vl8kMvlKC4uhlgsXjVQs9sQDoeRz+dRW1u7YrBn+z39fj+WlpYQi8XIzIdEIoFEItnw2D6pnDlzBp9++il++MMf4gc/+MEj+c1sNotYLIZ4PI5MJrPC876goIDMYLHXLOXZI5FIIBwOk9lO9h7bSCAvn8+DYRhybUkkEojF4ifKlSSbzSKdTiMUCpH+cYlEAoFAALFYDJ1Ot+LZ9yDhcBjvvvsu4vE4SkpKcPz4cajV6h3ZtkgkArvdjqtXr0IikaCuro68SFIojwMaJ9E46XFy/fp1dHR0kOO7W2OcTCZbIdi6FdixwO12Q6lU4rXXXoPBYHiixoK+vj5cuXIFer0ee/bswYEDBwDct20dHR3F8PAwzGYzDh06RK7L3RzjKF+N+Gp5HMVaaK8FW0kmFApp+8lDsqXKDLlcTkrwdiSD8v/swkpKSlBUVIR8Pk8ewAUFBSgoKACHw1n39zgcDuRyOaRSKVGefnD97PLLByE+nw+1Wk1sc7hc7qpBUKvVQqVSrVgnj8dDQUEB8vn8hssWFBRAJBLBYrGQfdrqfkkkEpSUlKCwsHDNbV++DxaLhfSmPnjhs6rhGo0GuVxu1Qv4ZseW8v9Jp9NwOByYn59HPB5f1Q/M5/NJKatKpSIiakKhkJTN7hb5fB6ZTAbZbJYozO/m71HWJhgMYmJiAktLS5BKpTCZTKisrFwROK917uLxOObn5zE/P0+eg09CMiOTySAWiyEcDsPv98Nut8PpdMLv90Oj0UAmk0GhUMBqtUKpVEIsFpPgYvnzamlpCf/n//wfeL1edHR0oKmpaccCvWg0itHRUfzkJz+BTqfDa6+9BovFQpMZlMcGjZNonPQsjHEVFRUPlcz46U9/iv7+flRUVOD48eM7mswYGRnBP/3TP0Gv1+ONN95AaWnptseC/v5+/OhHP8KePXvw7W9/myQz7HY7Ll26hF/84hc4duwYSkpKoFQqSTLjpz/9KbxeL9rb27F3794VY1w6nQbDMKR1i8Znz158xTAM/H4/RkZGEI1G1/0en89HcXExFAoFZDIZhEIhJBIJnSTdyWQGh8PZtZuQy+U+9GDBzoxvd/nN9mejz9kBbrPtepjM2nb2Z7Pv7eY5e5YIhUK4evUqLl68CIfDgVQqtSrg4XK5EIlEMBqNsFqtqKurQ3NzM6qqqqBQKHYtGIrH47Db7XC73RCJRKRMmPJoGRkZwX/+539iYmICEokEzc3N+LM/+7MNlaozmQycTic++ugj/OY3v8G5c+dw8uRJGI3Gx7ovDMPA5/Ph4sWLuHXrFgYGBkhAlk6niSUjW4ZeXV2Nw4cP49SpUzAajY9s4OXxeFAqlaiuroZKpYJWq6WzGZTHCo2TaJz0LIxxb7zxBvbs2bOt5fl8PiorK5HNZlFYWPhEvqBptVrs2bMHlZWVW46j2P3SarUwm80QCAQrPp+bm8Po6Cjq6+thNBq/tJYOja+evvhqaWkJw8PD+PGPf4zZ2dkNn0UCgQBKpRJFRUVobW3F4cOHcejQIXoR7FQyg0J5VslkMsRGLhqNor6+fsVDNJvNIh6PIxgMIhAIoKenB2NjY+jr68OePXtw6NAh1NbWQiKR7HjQxP7exMQESkpKoNPpaDLjMRCNRrG4uIjJyUlS1n348GEcPnwYFRUVay7Dlll7vV5MTU3B6/WScu3HQTabxdLSEgYHB3H58mV0d3cjFApBKpWisbERKpUKQqGQlG0uLS3BZrOht7cXi4uLcLvdaG9vx6FDhx5JSbZMJkNlZSW+9a1vQSgUwmKx0J52CoVC2eUxzufzPdTz+vXXX0cwGIRUKoVWq33i9rGxsRF/8Ad/AJVKte64vd5+pVIpGAwGUo3EMj4+jl//+tcQi8WQSqU0mfEMxldsq/rs7CxCoRAqKytRXl6+qrIkk8nA4/HA6/Xizp07cDgccDqdiMfjaGlpodcOTWZQKDuDXq/HCy+8gPb2dvI/hmEQCoUwOzuL4eFhjI2NYXJyEj09Pejv70cymYRMJkNZWRmEQuGOvuSFQiHcvn0bQ0ND2LdvH9ra2uhJekyw5eCRSAQOhwNXrlyBXC6HxWLZ0cqcXC5HtFu4XO6OVSOk02lMTU3ho48+wttvvw0ej4empiacOHEChw8fRnFxMaRSKQKBAILBIOx2Ozo7OzE0NIRbt25hdnYWDMOguroaWq12Qy2NzfaNnbHd6F4Ri8WwWCzb1iVYXtK+3nnJZrPkO5ttB4VCoVA2RiqV4uzZs9sek4AvV5XEriefz4PD4Wz4PK+trUVtbe2O7Ber2TA9PY3PPvtsldMQ5dmKr1hMJhPa2trw/PPPr5p4TKfTmJycxODgILq7uzE4OAifz4dkMkkmazba12w2i1wuh1wuBx6PBw6H80TELsuPKdsO/zDblcvlkM1mN2z9o8kMCmULiMVioiC/nEwmg5aWFpw7dw5OpxO9vb34+OOPMTQ0hF/+8pdIp9N47bXXUFpauqPllclkEh6PB8FgcJWWB+XRwufzUV1dTQT2bt68ieLiYhw+fBhqtXrHBsVwOAyPx4NUKgWtVouioqIvvU6GYeByufDTn/4UX3zxBXg8Hr75zW/ixIkTaG1thVQqJfaHOp0OmUwGDQ0N2LdvH65cuYJ3330XY2Nj6O3tRXV1NU6fPr3tmTdWrMvpdEIsFsNgMEAkEu1oNRM7W5NMJpHJZNY8L9lsFsFgEIlE4okuiaZQKJSvKul0GjMzMygoKIBarX7oMZRdTzabhUQieWTPc4ZhYLPZiNMP5dmNr5bDXoPV1dXQ6/Wr4pOamhp0dHTghRdewI9+9CNMTk7i888/x+/93u9BoVBAp9Otm8gIBoNYWlpCMpmEyWQiuhuPk+VxXSqVglAoRHl5+ba1SxiGIRXwMpls3eNAkxkUyhbgcDjEuWQ99Ho9KQfL5/Ow2Wzo7u4mZWUlJSUIhUIYHR3F+Pg4AKChoQFWqxVyuXxFxpGdLR8aGkIwGER9fT1qa2vhdrtx7949dHd3Y2hoCD6fDz09PSgoKMCBAwegVCoRCoXg8/mg0WjQ0tKC8vLyNcv/M5kMZmZmcOPGDYTDYVitVrS0tKz7sKCsDWulaLVaYTAY8O6776K3txeffPIJXnzxxYcqq83lcojH45iensbg4CC8Xi+CwSBR9lapVCgpKYHVaoXVakV5eflDbbvX6yXWjYlEAi0tLThz5gz27t2LwsLCNZeRyWRQKpVgGAb5fB49PT0oLS2FwWDYclVGKBTCwsICBgYG4Ha7EQqFEAqFIBAIoFKpoFQqUVlZiYaGBhQVFa0YmDdSsF+uMF9UVITm5ma4XC7cvn0boVAIyWQSAGAwGIi1JQDMzs5iYGAAdrsdsViMfKepqQkHDx4kAr8UCoVC2d5L4kZuJolEAh6PB319fXA4HAiFQvB4PCgoKCDuKSUlJaiurkZ9ff2GLYXpdBoDAwOIRqOYnp6G3W5HJpOBWCxGcXExrFbrmmPKem4mW9mv5W4mbrcbN27cwPDwMHp6ehCJRHDx4kXcvXsXJSUlaGlpgd/vx9jYGJRKJfbu3buuLgLDMHA6nbh37x7GxsZQVVWF2tpaVFdX0/jqKYmvlsPqjbFtR2vFVWq1GiKRCAcPHkQ4HIbb7cbCwgIqKipWxOWpVAqjo6OYmJjA5OQkaQFOp9NQq9XQ6/UoLS1Fc3MzjEYjJBIJ4vE4BgYG0N3djbKyMhI3PUhfXx8+/fRTAEBzczM6OjpWVYa43W5MTk7izp07KCwsxIEDB1BUVAQej4doNIrBwUFMTk5iZmYGoVAIDMOAx+PBYDCgqKgIlZWVaGpqWhVXsfcUj8dDZWUlpFIpbDYb7ty5g1gsho6ODrz88ss0mUGh7CZisRhVVVXIZrPEDWJychL9/f2orq4myYzu7m68++67yOfzeOutt6DX61c9LBiGwfDwMH7+859jenoab775JjQaDcbHx/Hee++hu7sbXq8X2WwW0WiUuE4UFxfDZrNhYGCAVIMYDAbweLwV68/n80gkErh79y7+4z/+Ax6PB+fPn0d5eTlNZjwk1dXVaGtrw7Vr1zA1NYWLFy9i//79UCgU22q9yOfzSKVSmJ2dJdUPCwsLYBgGXC6XKO/L5XIcO3YML7zwAnQ63aaliGvhcrnQ398Pp9MJo9GItra2DRMZbHAhEAhQVVUFuVyOkpISqNXqVfaH65HJZLC4uIjLly/jvffew/z8PNLpNHFCYNd/5MgRXLhwAceOHVsh8rmRgj3rouLxeNDS0kKSgr/+9a8RDAaRTqeRy+UgFApx9uxZCIVCZLNZ9PT04He/+x2cTicSiQQYhkE2m8X58+ehVCrR1NQEmUxGL3IKhULZBuwzube3F1arFceOHSPJjHw+D6/Xi97eXvzsZz/D5OQkwuHwinEsm82ivr4ep06dgk6nQ3Fx8ZrjKTtD/fnnn2NqagqDg4OkEi+Xy0EkEqG9vR2vvPIK5HL5Cge4np4e/M3f/A327t2L73znO1tKZqzl2DU7O4v3338ft2/fhs/nA8MwuHz5MoRCIYxGI7hcLkZHR/E///M/MJlM+N73voeWlpY1x22GYYjuxm9+8xu89dZbEIvFz1wy42mOrx4m4SGTyVBTU4Px8XE4HA4EAgFEIpEViQy23aazsxNdXV2QSqXgcDjEzluj0aCmpgZvvvkmDhw4gIqKCsTjcXR1deHv//7vcfToUXzjG99Ykcxg26O6urrwV3/1V+BwOPje976Huro6FBUVrdh3h8OBS5cu4Wc/+xmOHDmCoqIi6PV6JBIJTE5O4v3338etW7cwMjJCrLPZdw6LxYK2tjYIhULU1NSseN9g7yk+n4/Tp09DpVKhv78fH374IQoKCqBQKGgyg0J5FLCWcC0tLbh16xYmJiYwMTGBUChEPmftl9gZ4K0il8vR1NQEhmGg0Whw5coVRKNRNDU14eTJk9i3bx+4XC4mJiaQSCQQDAYxOTlJZq2XP4zYF0qbzYZkMklmPR4UsaJsHYVCgaqqKpw6dQpXr17F0NAQ+vv7IRKJtiwqBtyfqbLZbPiHf/gHDA4OIp1O46WXXiLK6eznAwMDuHr1KvEwP3XqFDQazba22e12Y2BgALFYDKWlpTh8+PCWbe3Y2S621FMkEm1avcAqjX/66af4t3/7N4hEInR0dODQoUMQi8XIZrPEUaWnpwfz8/MQCARoaWlBcXHxlvcrk8nA5XLh7bffRklJCV577TXo9XoyG8MOtrFYDIFAACqVCidOnIDZbEYikcD09DR+85vf4Pr16wCAv/7rv6bJDAqFQtkh2Na/a9eu4cc//jE8Hg8aGxtx4sQJqNVq8Pl8LC0t4eLFi5ifn8c777wDs9mMI0eOrDme+nw+DAwMYHFxEVVVVfjDP/xDKBQKRKNR2Gw2dHZ24tatWwiFQigsLERjY+OOCyvW19fjO9/5DkwmE3p6ejA3N4dXX30VNTU1MJvNaGpqglwux8jICMbGxrC4uIhAILBmu0QqlcLIyAjm5uYglUpx7NixNWfSaXz15MZXu8HQ0BD+93//F5988gny+Tyef/55HDt2DGq1GqlUCtPT07hz5w5u3LiBxcVFfPvb38b3v/99KJVK6PV6KBQKzM7OrmqDWt4exeFwIBaLEQ6HMTU1Ba1Wu6KSKRAIYHx8HIlEAiaTCU1NTZBIJOjs7MRPfvITDA4OQqFQ4Ny5czh48CCUSiXi8Th6e3sxNjaGDz74AIFAAK+++ipeffXVVfvocDhw7do1hMNhaDQafP3rX4dYLEZzc/O6x4UmMyiUHaSgoID4YRuNRvB4PITDYWLrygocPkyGVygUQq1Wo66uDg6HA/39/chkMigpKcH+/fvR1NSEXC4HqVSK4eFh3Lx5E6Ojo9i3bx8RIWXJZrOYn5/H1NQU0uk0rFYr6uvrqWryl4DL5UKtVuPUqVMIh8P49a9/jQ8++IB4iG/V6WN+fh5XrlxBX18fJBIJnn/+eZw5cwZmsxlSqRQMw8Dj8aC6uhr/+q//inv37kEoFKKpqQkKhWJb7RB+vx/Dw8OIx+MwGAyoq6vbck8j23q1nd7MTCYDh8MBv99PEhlHjhxBS0sLBAIBcrkcAoEAmdEaGxvD2NgYSkpKtpXMCIfD8Hq92L9/P/bv34/29naoVCqk02nYbDb09PRgcXER/f39qKioQENDA44fPw69Xo9MJoO5uTnMzMxgZGQEg4ODsNvtMBgMW070UCgUCmXjscDr9cLn8yGbzaK5uRnHjx/HCy+8QGbB4/E4pFIpPvjgA1y9ehXXrl2DVqtd8+XV4/FAJBIRS8vW1lZIJBKkUinY7Xbkcjl0d3djdHQUIyMj0Gq1Ox7vsG0qMzMzsNlscLlcqKurQ2trK8rKyqBSqRAMBtHa2oqpqSnMzs6ir68PbW1tUCqVK+KzSCSC3t5eeDweVFRUoKKi4ol0gqHx1c7Bup+Mj49jcXERXC4XGo0GcrmctMaMjo6is7MTyWQSR44cwcsvvwyr1QqJRIJMJoOmpiYYjUbSijI4OIiRkRHU19dDo9GgrKwM09PT8Pv9SKVS5Lil02mMjY3B7/eTalsAmJiYIPu+PJlhs9lQWFhIbImnp6fR19eH/v5+aDQadHR04KWXXoLFYoFYLCbvGV1dXbh06RIGBwdhtVpx/PjxVe0mfr8fXC4XtbW1OHz4MI4cOQKBQLBhDEiTGRTKLjx0xWIxNBoNZDIZMpnMinJHhmGQyWQear2stRlrl8nn8yGXy2EymWAwGJDNZlFQUACz2Yzu7m7MzMxgcXERyWQSEomEPOwzmQzsdjsWFhbA4XBQVlaG8vJyanH5JRGJRDhw4ABmZ2fxxRdf4IsvvkBhYSGOHTsGnU63yot+LRYWFvD555/D4/Hg+eefx6uvvrqqzaGqqgoVFRW4fPkyrl+/jq6uLni9XpjN5m0NtuFwmPifKxSKHRe9ehC21FCj0aC9vR0vvvgiGhsbYTabyXcKCwuRTqfh8XgwNDSEmZkZeL3ebf1OJBKBXC7H4cOH8dxzz6GxsZF8plQqUVJSgrm5OXg8Hrz00ktoa2vDkSNHyHd0Oh2am5vhdrvJXzQapckMCoVC2QFYq02pVIqWlhY0NzejtbUVDQ0NK17utFot3G43Pv74Y9y9exf79u1b95kfj8dx7tw5tLa2rtDlMJvNiMViWFpawkcffYTR0VFUVlbueMsGK2CtUqkgFovB5XKh1WpRWFhIXsTMZjP279+PDz74AIuLi+ju7kZzc/OKZEYqlYLX68Xw8DCSySRqa2uh0+m2LZ5I46vHG189eL1nMhmk02kyuflgci8SiWB6ehoDAwNwOp3QaDQoKiqCSqVCNpsldrPj4+M4dOgQjh07hvPnz69YT0VFBUQiEYnt5ufnMTAwgLKyMpIIHBsbQygUQiQSIYkEhmEwOTmJSCSCiooKGAwGCAQCzMzMEHchdjsDgQBcLhdaWlpQVFSEdDqN4eFhjIyMIBwO49ixYzh58iTOnDmzYtuqqqogk8kQDAbxzjvvYGZmBna7HVKpdMVxjUQikEqlaG9vx+nTp9HS0rLp8eXQRyqFsvOws9YikQiJRAJ2ux1er5f4ZrtcLjAMsyuJFKlUivLycpSWliIajZKSMvYBmsvlEIvFYLPZ4PP5YLVaUVFRQfruKA9PQUEBRCIR9u7dizfeeAMSiQR3797Fhx9+iKWlpS2tY70SvgcRCARobGxEWVkZGIaBw+FAMBh8oo+PUCjEgQMH8K1vfQt//ud/jra2NhiNxlXXcFFREbRaLdG8cLlcDxX4tLS0rLLF43A40Gg0UCgUEAqFaGhoWJFMAQAej4eioiLodDqSgNmN+5VCoVCeRQQCASoqKnDhwgX85V/+JV577bVVbRTsbPxWWvxUKhUqKipQVla2yvpSIBCgvr4epaWlSCaTuHv3Lubn5x/LfhsMBuzduxdmsxnRaJS0eS7H7XZjaGgI8XgcpaWlOHLkCE2kP+XxVTweJ8KZo6OjK/6Ghobw2Wef4d///d/xd3/3dxgcHIRGo8GxY8dgtVpJC0l/fz8mJychFovR2tqKqqqqNX+LdXuRy+VwOp0YHBwk1bfNzc2QSCTw+XyYmpoi7wXpdBrT09NIp9NobGxEY2Mj+Hw+JiYmiHA62ybsdruRTqdRXl4Ok8lEWlRcLhfEYjEOHjy47rYZjUY0NzdDKpXC5XJhaGhozZZ7iUSCjo6OLbdW0coMCmWXHrqs1zOPx4NcLodYLEYwGEQymSRWRbsBn89HVVUVmpqasLCwAJvNhvHxcZLZj8fjWFhYgN1uh0AgQENDA0pLS7clokTZOJFlNpvR0dGBmzdvwm634+OPP0ZdXR14PN6m1S/RaBRutxsGgwGFhYXrBnLsS7lcLgfDMJidnUVVVRUMBgPm5uYQDofJILQcrVaL4uJiUsrLlgA+qmMjl8shEHZ6HE4AAB0pSURBVAgQiUQwNTVFLIZZ2GTb2NgYcrkcsWTbDnK5HIWFhdBqtWuKkrKtXqzGzYNWaay3PZ/PRz6fJx7uFAqFQtm5F1M2VnI4HMRZ4kFu37696frEYjGUSiXEYvGqWIbL5cJkMkGj0ZCKkEQi8diSOBqNBk1NTWT2fGFhATqdjiRh2GQGwzAoLy9Ha2sr1Wx6CuOr5TidTly7dg2Li4urYpJsNktcfHw+H+rr63Ho0CGcOXMGJpMJfD4f8XgcS0tLiMfjpLVmPQ0PuVxO2j/8fj/sdjsYhoFWq0VdXR0kEgkxKKiqqiLvBaw+S0NDA/R6Pfx+P27fvk3eW/L5PGZnZ+FyucDn81FXV4fi4mJkMhm43W4Eg0GkUilMTU2hoKAAg4ODayaTpqamiF6ZzWZbFX+q1WqUlZURcwSazKBQHhPL20lEIhF0Oh1UKtVDzTA/TDLDbDajvr4eXV1dcDgcmJqaQlNTEwwGA6LRKCndVygUqK2tJfoelJ1BpVKhtrYWra2t+OSTT9Dd3Y07d+5ApVKtm7FmSaVSiMVisFqtUKlUGwaDAoEAfD5/xcxBOp3G3bt3MT09DZ/Pt2q5pqYmSKVSCIVCCAQCyOVyBINB5HI5ZLPZXVXsZpXEPR4Ppqam0Nvbi6mpKTidzlVuO2z7y8Mgl8uJi8+GAyCPB61WSwNFCoVCecRkMhn4/X5MTU1hYGAAExMTmJ2dXTUGbWUsEIlEUCgUa45fHA4HMpnsiWnTYKsLZmZmcOPGDUxMTKCoqAhqtRr5fB4ejwcjIyMQCASwWCyora2lF8tTGF8tJxgMYnh4GDabbVUFdEFBAbhcLrGkb2trw7Fjx9De3r4q6ZHL5cik0HrXs1AohFwuB5fLJWYAmUwGCoUCZrMZCoUC4XCYtJCk02mEQiG43W5UV1cTl5GhoSGEQiF4vV5EIhEIhULMzc3B6/VCIpGgqqoKJpMJiUQCkUgEiUQCiUQCfX19GBsbW3Pb0uk0SQQxDEO2bTlKpXJd1yKazKBQHiGsfZLH40FJScmuWzo9OHCrVCqYzWYUFxdjYGAANpuN2DuFQiEMDw8jEAigpqYGFRUV0Gg0j3QbnwWkUim+9rWvIRaLYXJyEhcvXoRMJtt0sP2yJJNJ9Pb24ubNm5ienl71eTQaRWNjI3Q6HZRKJSwWCxmE1lNW38n7or+/Hx9//DEuXryITCYDo9GI8vJyaDQa8Pl8Uo3B9o8+DHw+HxKJhLZNUSgUyhOayHA6nfjggw/w85//HD6fD0ajEdXV1WQsWD5uTE1Nbbg+nU6Hmpqap0JXgm23vHfvHj777DP09vbCbDajpqYGyWQSCwsLGB4eRnNzM0pLS+nF8pTGV8uxWCxobW0l7h7LYdupNBoNmVx5UJyWtR5ebtO6FaLRKBHZZd0UrVYrbDYbaSEJBAKYnJxEMpkk1RsymQwGgwF8Ph8zMzOwWCwoLCzE9PQ0lpaWYDQaodfrIZVKt1XlxOPxiKaMwWCAVqvdkXiTJjMolB0kl8shGAxienoaXq8XMpkMJSUlD6WanU6nEYvFHqpXn8fjEa/p6elpOJ1O2Gw2GI1GuFwu2Gw2iEQiVFZWrgocKDsDn89HWVkZDhw4gOHhYYyPj6O7u3tXBtvlswhisRgdHR2wWCxr9njW1tZCr9eDy+VCp9OhsbERCwsL8Pl8mJiYQHNz85YrFRiGwdzcHEQiEfR6/aaK4rFYDJ988gmuXLkCj8eDF198EU1NTbBarcQ+mJ0FWWvWYzvHgyYyKBQK5ckkHo/j888/x5UrVzA1NYUTJ07gwIEDaGxsXGUlz1q4bra+QCDwUOLqjxpWk6myshJmsxnj4+OYnZ1FOp3GzMwM5ufnwTAMDh06tOMipTS+enTx1XKUSiWqq6vR3t6+KtHB4XAgkUggkUjWTcaxbVlbETldjlgshkqlApfLJetoaGiAz+fDzMwMotEoQqEQbDYbJBIJEbAVCATQ6XQoLCzEwsICXC4X9Ho9pqenwTAMamtrIZPJVu2nRCJBW1sbKisrN33vYX9vuVMKTWZQKE8A6XQaCwsLuHfvHoLBIIxG44pyNg6HQ/r1N3rpYy2awuHwQ+sZKBQKVFdXE3uviYkJ6PV68mDSarVEXZiy87ClrfX19XjuuecwPj6Ou3fv4vLly9i3b9+6GgxcLhcCgQCpVAoMwyCfz697rSwvO5TJZBAKhZBKpTh79uyWtlGv16OhoQFXr16F0+nEwMAAqqqqIJVKN7U5S6fTCAQC6O7uhkqlwt69e0lCYz0SiQS6urowMTEBs9mMV199FS0tLSuU51OpFO7evYu+vr6HPvb5fB75fJ5ehBQKhfIEkkgkcPXqVdy5cwdCoRAvv/wy2tvbV4gx5/N5MAyD/v7+TdcXDAYxNze3ZrzErodhGFLS/zgrUdnxurS0FDU1Nejt7YXdbsfS0hJGR0fhdDqhVCqxf/9+lJeX04vlKY2vliMSiaBWq1FcXLxK9HwrcLlcqFQqIgTLMAyy2eya383lckin08jn81AoFDCZTKT6QSAQwGq1YnBwEKOjo1haWiItJ1qtFjqdjrTIqNVqWCwWuFwuuFwulJeXEwfE+vp6ov1RUFAAPp8PLpcLiUSCgwcPoq2tDSUlJY/ueqC3BIWyM6RSKTidTnR1deGjjz7C/Pw8SktLV5ScCYVC6PX6DUurcrkckskklpaWiKDOw6BSqdDQ0ICysjLE43GMjIygt7cXY2NjSCQSsFqtqKur25GsKGV9ysrKcPr0adTV1SEUCuHSpUuYnZ1dt1yQHXzm5uawuLiIRCKx5sC8vOyQz+ejsLBwlYr7ZhgMBtLjOTo6it/97ndwuVxbSqDNzc3h/fffx7/927/hJz/5Cd59991N1b5ZZxCxWLyu8vzDllMuJ5PJrHvcKBQKhfJ4YRgG09PTWFxcJM4mD77ksS4Jbrd70/XF43H4/f41KzOWr4etWn0SJnFYZ4eCggJMT0/j2rVruHXrFoLB4LrjI+Xpia92ErYVRS6XI51Ob+iuEg6HYbfbkU6nIZFIVrxv8Pl8VFZWorCwkFTBjo6OYmRkBEVFRSgsLCTr0Wg0KC8vh91ux/DwMCYmJhAIBCCXy2G1WknSg8fjobi4GDqd7rE569FkBoXyJWAFDRcWFnDt2jW8++67+PDDD2G321FcXIyDBw+itraWJAz4fD5UKhV5IPl8PoRCoRUP01AohMHBQYyMjCASiaz4jHVH4fP5m5bRs2ViVVVV0Ov1mP+/7d1JbFvX1QfwP2dxpqiZFEVNVGjKlCXZmqzIiZXBRZwBCJAgQYJsmiaLFsmim8IoCmRhIEBXHVwUDdCuihQo3AAN0gyua1uRVcc2rXmIPMmSJUvUZEqcx2/x4V2YkeSpdlpa/x9gwCBs8fGK7537zrv3nOlp9PX14eLFizCZTKipqUFpaek9L1uje5OXlwe73Y6DBw+irq4Ok5OTOH78OEZGRrac4DQ3N0Mmk4m9s9/dkxiJRDA/P4/x8XEsLS2J3/OtKxzuhsFgQHV1NTo7O1FaWorR0VEcPXoUJ06cwNzc3KZJjXg8jrGxMRw7dgxHjx7F5OQkNBoN6urq7mq/cjKZFMVxpaWbt36u69ev49y5c/ddL0MK5vPz8zmx5JiIaLuRy+XQarUiZigUiqw5jdTh4V//+hdGRkagUqmwvLyMYDC46c8LhUK4ceOG2OJ7q1gshvPnz2NychIqlQoulyvrpu1hSafTWF9f37TrBQCUlZWhtbUVFosFs7OzOHXqFP79738jnU6jo6ODW4BzfH71ICmVStTW1sLhcCCTycDn82FychKxWGzDKlTpfiQQCKC4uBhut1usopASD3a7HXl5eRgbG8Pw8DAWFhZQUVGRlVC0Wq2orq7GzZs3MTY2hv7+fkSjUdhsNtTX14ufqdFoRBtbqQDoVsc2NzeHEydO4E9/+hNOnDiB9fX1LVeY3NP48FQgurNkMolAIAC/35+VyEgkElhbW8PExAR6enrQ29uLqakplJaWYs+ePWhtbYXD4RAnvVqtRn5+PiwWC65fv46pqSlcvXoVhYWFMBgMSKVSmJqawtmzZ3Hx4kVkMpmsFRzS3j2dTgelUimeQEtLxVQqFdRqtdjGotVqUVVVBafTib6+PkxPT8Nms6Gurg5Op1NUPKaHS6fT4amnnsL8/DxOnjyJnp4exGKxTduG2mw2tLS0wOfz4caNG+jr6xPdORQKBTKZDBYWFjA8PIyxsTHE43G43W5UVFTc85MDjUaD4uJidHd3IxwO44svvsDRo0fh9/uRTCZFIShpGWYmk0EgEMCpU6fw1Vdf4fTp07Db7Whubsa+ffs2/Ty3kslk0Ov1SKVSWFpagt/vFwVHk8kkFhcXMTY2hvHxcfj9fshkMlF9PBAIQKvV3tVqi/X1dfEZiIjoPxcOh7PmQFuROjPcrrCfQqFAeXk5ioqKxKrW0tJSMQ+SWkVKWzD0er2IGYFAABqNJuv6nslkEAwGMTg4KOY1CoUC6XQaCwsLOHPmDC5dugSj0YgdO3bAZrM91CSNWq1GIpHA7Owsbty4gfLycvEgSkpQFBYWwuPxwGaz4dq1a/jmm28wPj6Op556Cu3t7WJLAeXm/OpBUqvVqKysRFVVFfLz8zE0NITa2lq0t7fDbDaL75S0TffUqVNIJpNwOBzYuXOnGAuFQgGr1YqSkhIYjUYMDw9jZmYG4XBYnI8Si8WCiooKxONxXLp0CUqlEnK5HDabLWv7k1qthsfjQW1tLVQqFfr7+1FZWYldu3aJY5PJZIjH4xgaGsI//vEP9Pf34+mnn4bH40FeXt5/fB/CZAbRXbh+/To+/vhj9PX1icApdX+Q/gQCAUSjUVRVVeHAgQP4wQ9+gIaGhqwLqtFohMfjgdvtxoULF3Dq1Cmsrq5ieHgY+fn5WFlZwdTUFG7evIm8vDw4HI6sJxFSp5LS0lIYjUasrKzg7NmzMBqNmJychNPphNfrFRckpVKJyspK7NixA+fPn8f8/DysVitcLpcIrvTwKZVKlJWVobm5Gc888wx6enqwtra2abC12+3o7OzEyZMnMTExgY8++gjj4+OoqqpCYWEhIpEIJiYmcPbsWczNzWHv3r148803NxSVupeJwNNPPw2VSoV4PI6+vj78/e9/F8W0zGazWE4YCoWwuLiIq1evIhwOo66uDm+//Ta6urqg1WrvuFpIo9GgpaUFwWAQ3377LX7729+K1sBSkVq/3y+OR2orfPz4cZjN5g2tyoiI6Ptx+vRpfPDBB3f8d4WFhXjnnXdgt9tvGwvq6+sxNTWFM2fO4Pe//z28Xi+qq6uxurqKK1euYGZmBu3t7bBarejv78fg4CD6+/vxl7/8BfX19VmrSp1OJ3bs2IFPP/0UAwMDaGpqgsViQSgUwpUrV/DPf/4TkUgEbrcbTU1ND61LiHRj5/P5sL6+jk8++QTz8/OYm5tDWVkZqqurUV1dnTUOra2tCAaD8Pl8iEQiKC0tRUNDA3Q6Hb90OT6/elCk4p2NjY145ZVX8PHHH+Ozzz7DzMwMdu3aJdr6joyMYHR0FJcvX4bX68X+/fvR1ta2ITFmtVrhdDoxNDQEv9+PwsJCsVpbYjKZYLfbodFoMDY2hrW1NdGOdavx7+7uRl9fHz755BNcvHhRHJu0lWp0dBSXLl2Cx+MRXezYzYToIV8gLRYLysvLsbi4iEAgkNUeLB6PIxaLiWVbUobd4/Fg165dcLlcG+pRqNVqFBcXY+/evVhdXYXP58P09DTC4TCKi4uRl5cHo9EIt9stLqrLy8vIz88XmUupEnZ3dzeSySRWVlYwOTmJRCIBuVwOl8sl3k+hUKC0tBRVVVWwWCyQyWQwm8147LHHsooC0f3R6/Xiwn672iMymQwajQZutxsvvvgiAoEApqenxX7GW4OuTqdDVVUVXn/9dZw7dw4jIyOYnZ3F9evXkUqloNfrEY1GkZ+fj66uLrS3t2PPnj33PfGRMvV79uyBQqGA0+kUSQW/34/p6WnEYjEYDAaxZFBq6ev1erF3717YbLasRIZ0Tmi1WhQVFYmnBnq9HgcOHIBer8fp06fF3kpp7KTiUZ2dnaipqYHBYMCFCxcQi8UwNDQEt9sNs9kMnU6H8vJyWK1WmEymrHPDbrcjEomgtrZ2020vUheX8vJy0a7su6Q+7iUlJXA6nTAYDDxXiGhbxriysjIEAgHI5fI7tkgF/r8dpLRFUbom37x5Ew6HQ1xvtVot9u3bJ27oQ6EQfD4fxsfHRdcIj8eDrq4uRKNRsfw9nU5jcHAQBoMBNptNxAK9Xo/du3cjFAphfX0do6OjiMfjiEajiEQicDqdqKmpQUdHBxwOh0jQS7G7uroaZWVlWXFco9GIm76ioiJoNBoR57aKcUqlEhUVFWhqasLevXuxsLCAa9euwefzobGxccNWhby8POzevRtXrlzBmTNn4Ha74XK5HthNHudX/735lVQQc7O5yv2Qy+WorKwUBUi//fZb+P1+9PX1iVVIoVAIOp0OBw4cwP79+9Hc3Lzp2JWVlaGtrQ1+vx9arVYkMm79nAqFAiaTCbt27UI6nUYmk8GePXtQWVm56fjv3LkTr7/+OsrKyjA1NSWOTVotHgqFoFQq0dXVJY7t1vnXVucUkxlE/wG1Wg2bzYbGxkYsLS1t2iJV6pVcUlICm80Gl8slbn42e0otLbNvamqCWq2G0WjE+fPnEYlEkEgkUFFRAa/XC6/Xi9XVVeh0OiwuLqK8vDzrxC4pKUF3dzeUSiUGBgYQDAaRSqUgl8uzKjPL5XKYTCYUFhbCaDTCYrGgpKQEDodDdFih+5efnw+PxyN+J3dit9uxb98+TE9P4+rVq1AoFKisrMzqO65QKFBQUIAXXngB1dXVsNvtmJycxOXLlzE3NweHwyG+a8899xwqKysfSBFXh8OB4uJi1NbWYmJiAqOjo5iZmcHc3BwWFxdhNpthMBhgtVrR0dGB5uZm7Ny5c9OfpVKp4PV6sb6+jtraWjFx1Gq16OjogMlkgtFoxMDAAJaWlhAIBOBwONDU1ITHH38cLpcL0WgU5eXlKCgowOzsLDKZDNLptCjg1tjYCKPRmFX3RXpfaRnkZkXe1Go1qqqqEI1GkUqlNp2kKJVKsdf01razRETbLcbV19fDZDJtWfvhuwoLC7MKDnq9XhiNRhQVFYnrrUajQVNTE7RaLXQ6HQYHB8UNkMPhQH19Pbq6utDQ0IBEIoGCggJEIhERC1KpFJRKJfR6vYgFzc3NKC8vx8TEBI4fP46lpSVkMhkRL1pbW9Ha2rrhiX1JSQna2trgcDiy4rjUcaS5uRkulytrXrdVjJMeDjQ0NODgwYMYGBhALBZDLBaDXC7fMC+Ukh9FRUXQarVoampCTU1NVrKF86vcnF+p1eot5yr369a5vM/nQ29vL2ZmZkTtPWlbSXt7O9ra2rY89pKSErS0tMDv94sV5Zsl0LRaLTo7O2G1WhEKhdDe3g6n03nbOaTNZsPAwADOnz8vjk2pVKKgoAAej2fLY9vqnLobsgz711EOePbZZ3Hs2DEcPnwYhw4d+l7eM5lMIhgMIhgMIplMbrpXXy6XQ6VSQalUQq1Wiz7Qd8q+JpNJRKNRrK2tIRgMIp1OQ6VSQaPRiOCeTCYRCoWQTCah1+uzsrrpdBqxWAxra2uIRCLiCbNOp4PJZBIXzEwmg1AohJ6eHvzmN7/B6uoqXnjhBbz66qtZKzjo/oTDYQQCAQAQv6PbkeqsLC8vIxaLieSWXq/fMMFKp9OIRCIIBoOIRqOIRqNIJpNiz21eXp7oB/6g6p5IBW0jkQgikQji8bgo1intQZYmkJsd863f74WFBaRSKdGSTErG3fq5pO+3FPh1Oh2MRiM0Gg0ymYzo6hOPxyGXy8XPkSqNSy3T9Ho9FAqFeN9kMgmNRoOCgoIN2X3p/0ajUWQyGZSUlGyYYEhPOMLhMGKxGPLz86HVark6g4j+5/T29qKrq0tcwx90jLt58ybi8fhdd4dSqVTiuipdk2OxWNbrkmg0ivX1dYTDYcTjcTGX0ev1MBgM0Ol0G2KBFDellRJSLNDr9VCr1YhEIllt7RUKhYhZer1+Q0JhbW0NKysrUKvVMBgMIo7HYjERpzQajYi3MpnstjEOgDiGUCgkap9tFjfX19fx+eef4+jRo+jt7cXPfvYzdHd3o76+nvOrHJ9fpVIpRKPRTecqD2KeJt2f3HpuSqua7vReiURC1NtLp9N3NV9KpVIwmUzQ6XRbJhoymQzC4TDC4TBCoZA4Nql5we2O7U7nFJMZxGTGNiRdVIaGhvDZZ5/hq6++wmOPPYbXXnsNbW1t//U9gERERPS/m8yghycSieDatWs4cuQIfD4fUqkUPvzwQzQ2NrIlK9E94GMmokeIlJlOJBKi8nhfXx/OnDmDRCIBt9ud1SqWiIiIiB6+RCKBeDyOeDyOhYUFDA4O4ptvvkEkEkFLSwsqKyuZyCC6R0xmED1CwuEwZmZmMDExgfHxcYyOjmJkZARyuRydnZ3o6OhAcXExe5cTERERfY9mZ2cxMDCAq1evYmxsDIODg5ibm8P+/fvx1ltvccUs0X1gMoPoERKLxTA/P4+zZ8/iwoULCAaDKC0thcfjwf79+7Fjxw5otdqsIqFERERE9HAtLi6iv78fIyMjWF5ehlarxUsvvYQnnngCO3fu3LIOFRFtjckMokdIJpNBMplEIBBANBqF3W7H7t270dLSgoaGBhQUFHCQiIiIiL5niURCFG0sKiqCy+XCwYMH4XK5uCqD6D4xmUH0CLFYLGhra0NdXR3C4bDoEHG7zhNERERE9HA1NDTA4XAgGo1CJpOJrhlsxUp0/5jMIHqEKBQKGI1GGI1GDgYRERHR/wiDwQCDwcCBIHqA5BwCIiIiIiIiIsolTGYQERERERERUU5hMoOIiIiIiIiIcgqTGURERERERESUU5jMICIiIiIiIqKcwmQGEREREREREeUUJjOIiIiIiIiIKKcwmUFEREREREREOYXJDCIiIiIiIiLKKUxmEBEREREREVFOYTKDiIiIiIiIiHIKkxlERERERERElFOYzCAiIiIiIiKinMJkBuUEi8UCAJiamuJgEBEREQEwm83i79PT0xwQItpWmMygnPDSSy8BAP72t79xMIiIiIgAeL1e1NTUAAA+/fRTDggRbStMZlBOeP755wEAy8vL+POf/8wBISIiIgLw8ssvAwB+9atfcTCIaFthMoNygtlsxo9+9CMAwAcffMABISIiIgLwk5/8BABw8eJFPvAhom2FyQzKGT//+c9FsH733Xc5IERERLTtVVRUiAc+77//PoaHhzkoRLQtMJlBORWsDx8+DAD4wx/+gN/97nccFCIiItr2fvnLX8JqtWJ5eRk//OEPWQyUiLYFJjMopxw6dEg8ffjxj3+Md999F4FAgANDRERE25bZbMbJkydhtVpx7tw5NDc3o7e3lwNDRI80WSaTyXAYKNe88847+OijjwAABQUF+OlPf4o33ngDFRUVHBwiIiLaloaHh/Hkk09iZWUFAPDss8/ivffew8GDBzk4RPTIYTKDctaRI0fwi1/8QgRsAGhpaUF+fj7eeustvPHGGxwkIiIi2lamp6fx9ttv49ixY+K1goIC7N69GwDw5ZdfcpCI6JHAZAbltEAggCNHjuCPf/wjLl++LF4/fPgwDh06xAEiIiKibam3txe//vWv8de//jXrdU79iehRwWQGPTKGh4fR09ODQCCAffv24fHHH+egEBER0bYWCATw9ddfY2hoCAD4sIeIHhlMZhARERERERFRTmE3EyIiIiIiIiLKKUxmEBEREREREVFOYTKDiIiIiIiIiHIKkxlERERERERElFOYzCAiIiIiIiKinMJkBhERERERERHlFCYziIiIiIiIiCinMJlBRERERERERDmFyQwiIiIiIiIiyin/B8hsuT2o/pCzAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAABDMAAADOCAYAAAAjdElvAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QMMFyEPGfMaaAAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAACAASURBVHja7N1pcFvndTfwP/Z9B0hsJMF9ExeJ1L7bkpx4Uxwndhw7aaZTpx/SNpO2H9pkptN8SGeSTKczTcZt4iaxndWx40a2YqWSLMmSrCikKJHiKu4kCIIgQYDYt3uB94Pm3pcUSUmUKImUzm8mEw8FXIAPLnGfe57znCPI5XI5EEIIIYQQQgghhKwTQhoCQgghhBBCCCGErCcUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6QsEMQgghhBBCCCGErCsUzCCEEEIIIYQQQsi6IqYhIA+Lzs5OHD16FACwe/du7Nq1iwaFEEIIIY+0UCiEP/zhDxgbGwMA/PM//zMNCiHkoSDI5XI5Ggayni/Qr732Gn72s59hYGCA//l3vvMdfPOb36QBIoQQQsgj6fz58/jBD36A3/72twt+TlN/QsjDgjIzyLr12muv4V/+5V8wOzvL/6y5uRkGgwFFRUU0QIQQQgh55IyPj+PVV1/F8ePH+Z8ZjUY0NTXR4BBCHioUzCDr0l//9V/jxz/+MX+B/od/+Ae88sorKCwspMEhhBBCyCOps7MT+/fv5xd6Dh48iL/7u7/D008/TYNDCHnoUDCDrDvzAxmvvvoqvv/970On09HAEEIIIeSRNT+QYTQaceTIEaofRgh5qFHNDLKu/Nu//Ru+9a1vAQB++MMf4mtf+xoNCiGEEEIeaaFQCKWlpZidnUVzczN+97vfUbYqIeShR8EMsm6Mj4/ztTBeffVVPjuDEEIIIeRR9tWvfhWvv/46jEYjzpw5g7q6OhoUQshDj4IZZN1dqEtLSzE4OEgDQgghhJBH3vzFnl/84hd4+eWXaVAIIY8EIQ0BWQ9CoRBef/11AMC3v/1tGhBCCCGEEFzfdgsApaWlFMgghDxSKJhB1oWjR48CuN65hC7UhBBCCCHX/f73vwcAfOMb36DBIIQ8UiiYQdaFI0eOAACef/55GgxCCCGEEFzvYDIwMAAAeOaZZ2hACCGPFApmkHVhbm4OAOByuWgwCCGEEEJwfRsuh7qXEEIeNRTMIIQQQgghhBBCyLpCwQxCCCGEEEIIIYSsKxTMIIQQQgghhBBCyLpCwQxCCCGEEEIIIYSsK2IaAkKWl8vlkEwmEYlEEI/HEY/HwbIsFAoFNBoNlEol5HI5JBLJoueyLIvp6Wn09fVhbGwMRqMRDQ0NyM/Ph1wuv+v3lkql0Nraira2NuRyOWzZsgUbN26EQqGgD26NSiQSCIfDyGQyUKvV0Ov1K3p+OBzGu+++C5/PB51Oh8997nPIy8tDKpVCT08PBgYGMDU1hX379qGgoAAGg4EGnRBCyKpgWRahUAipVAoMwyz5GIFAAIlEApVKBbVaTYNGVv3cy+Vy0Ol0kMlkEIvpVvZemJycRG9vL7q7u6HX61FdXY2amhqoVCoKZhCyXr40U6kUotEopqen4fV6MTs7i9nZWTAMA6PRiPz8fBiNRphMJhgMBigUCkgkEgiF1xOeGIbB5OQkPvroI5w6dQqVlZXQ6XTQarWrEsxIJpP45JNP8KMf/Qgsy+LrX/86KisrKZixhgWDQfT39yMUCqGkpOSOghlvvPEG2traUFJSgr179yIvLw/JZBKXL1/G+++/j8uXL0Ov10OtVq/pYEYul0Mmk0E2m0Uul4NMJuP/dgghhKw9DMNgdHQUMzMziMViywYzFAoFzGYzrFYrpFIpFAoF5HI5xGIxBAIBDSS5q3OPZVnU1NTAYrFQMOMe8Xq9OHXqFN5++20UFxfjc5/7HIqKivhgBsuyyGQyYBgGSqXygc7f6AwgZIlAht/vR3t7O86cOYOWlhYEAgF+JYJlWUgkEkgkEmg0GhQUFGD79u3Ys2cPSktLodPp7sv7FAqFsFgsqKmpQTabhdlspi/1Na6npwc/+9nP0N/fjxdeeAF1dXUrer5EIkFpaSlYloXNZoNMJlu3Y5HJZDA8PIzZ2VlkMhk0NTVBo9HQSUIIIWtUNBrF+++/j5aWFoyOji4bzBAKhRCLxdBqtairq8O2bduwa9eudX/dImvj3IvH4/j617+OzZs3r8lMgYeBUqmE1WpFTU0NbDYbTCYTf4/BsiyCwSAGBwfhdrvx+OOPw2g0UjCDkLUgFouht7cXf/7zn9Ha2oqhoSHkcjmUlZVBq9VCpVJBIpEgkUjA5/NhYmICnZ2d8Hq98Hq9eOyxx7Bp06b78kctk8nQ3NwMnU6HXC6H6urqVcn4IPf2YjwxMYGBgQH4/f4VP1+tVuPzn/88gsEgVCoVTCbTuh2LZDKJS5cuYXR0FGKxGJWVlRTMIISQNYxhGExPT2N0dBSTk5M4ePDgovlONptFLBZDMBiE3+/H+fPn4Xa7MT4+jsOHD6OoqIi2n5C7OvcikQgikQjS6TQNzD1isViwY8cOOBwOqFQqFBUVQalULvgsWlpa0NbWhubmZgpmELJWviinpqZw/vx5vPfeexgZGUF+fj727NmD7du3w263w2QyQSqVIhwOo7+/HxcvXsSFCxdw9epVTE1NAQAMBgNUKhVEItGK30M2mwXLsgCuZ17c7BhSqRT19fWor69f0WvkcjmwLAuhULhsWlgulwPDMBAIBBCJRJQWukaoVCo8+eSTd/R5sywLkUh00899KSzL8nujRSLRHWf/cO9BIpFAIBAglUrhypUruHbtGoxGIxKJBH3AhBCyTmi1Wjz//PMoLS1d9F0fCATgdrvR3d2Njz76CBcuXMDg4CAKCwuhUChuGczgrjvcHORO5lP3ap7IbY28k+vp/ONw11SaX90f6XSazxi6m8fcbK6VzWaRzWaX3U7Fzcey2Sw/F3oQuL8vsVgMoVC45Pswm80wm81oampa8vlerxednZ3405/+tOyWMwpmEHKfL1ATExP4+OOPcerUKYyPj6O6uhrPPfccDh48CIPBwBcaEggEsNlsKCwsxIYNG1BfX48PPvgALS0tOH78OEwmEx/4WGkgIxwOIxgM8sWN9Hr9ql/E4/E4ZmZmoFKpYDQalzx+LBaDz+eDXC6HwWCAXC6negbrEFfANhAIIBAIwGAwQKfTrSgDIhAIwOPxAADy8vJgt9vv6L0EAgH4/X4UFxdDLpeDZVl4PB4EAoEHGtEnhBCyclKpFCUlJaipqVlyTpVKpbB3716UlJTg+PHjaGlpwR//+EeoVCqUlJTc8nrh9Xohk8lgMplgNpvXxDzR6/UiGo2CYZg7up7OP45YLIZOp6P51X0KZIyMjECj0Sw7h7mdx9xqrhUOh5FIJJbcTjV/PhYOh/m50IMQCAQwPT0Nq9UKtVq94q1fmUwGQ0ND/CLug0bBDEJwPco4Pj6Ojz/+GAMDA3A4HHjqqaewe/duuFyuJaO0CoUCSqWS72RisVggEolQUFAAmUx2y4hrLpdDKpXC2NgY3/Fkenqaj3AqFApYLBYUFhaiuroaRUVFUCgU/EVvuW4mEokEk5OTuHbtGsbHx2G32+FwOBAKhTAyMoLx8XEEAgHIZDLY7XaUlZVhw4YNkEqlGB4eRl9fH9xuNwKBACQSCaxWK0pLS9HY2AiHw7Fk5xZyfyzXzWSp82pgYADt7e38lpZoNAqVSgWr1YqSkhK+s878FTKuKOfY2Bi6urowNjYGn8+HQCAA4PpKnNVqhcvlQkVFBSoqKiCVShec65cuXcLp06dhsVhQUFAAi8WC1tZWjI2NIZVK8dtkTp06hc7OToRCISSTSfzXf/0XioqK+KKlkUgEDMPgySefhN1uX/aiH4lEcOTIEczOzsJoNOLTn/70mpj4EkLIw0woFEKpVN60ZoFOp8OhQ4fg9Xpx5swZ9PX1YXJyctH8KxQKYWBgAFevXsXc3BwCgQCCwSCkUil0Oh2sVivKy8tRXl6O4uJiAMDg4CDa2trg8XhQVVWF3bt3Q6lULligmd+RQaFQoLS0FM3NzdBqtUteR0KhECwWCw4cOACj0YhMJgOv14uBgQF0dXXB4/HwXe1UKhUMBgMcDgc2b94Mu92+oOj2/C5jMzMzOHz4MAKBAC5cuIDR0VHYbDY0NzejoaGBtt2sgvmftd1uR21tLTweDzweD8bHxzE9PQ21Wg2n08mfS3a7He3t7RgcHMTw8DCmp6chl8v5eU5NTQ2qq6v514jFYvj4448xPj7Oz08ikQja29vh8Xj4bnV5eXkoKytDbW0t7HY73G43Ll26BI/Hg2AwiHg8jry8PFRVVaGhoQEul2vBHGf+PKqurm7J7IhIJAKPx4MzZ85AqVQu6DYy/32yLIvDhw8jkUgsmNeFQiEYDAZYLBa4XC5s3759QV2M5bqZ9Pb28sXm+/v7EQgE8Prrr8NqtUKpVKK5uRmzs7MYHh5GQ0MDysrKUFBQsORnlkgkcOnSJQwPDyMcDuPgwYNwOp0r/nugYAZ55HE3f+Pj4+jo6EAkEsGuXbvw2GOPoays7KbpZnK5HMXFxRCLxSgoKIBAIIDT6Vx0oVxKOp2Gz+dDS0sLjh07hvb2dgSDQf71GIaBSqXChg0b8OSTT/KvwXUrSSQSOHPmDF577TUwDIN//Md/RGVlJVQqFcbGxnDs2DGcOXMGjY2N2Lx5M7xeL1paWjAwMIBUKoVEIsHviWNZFjqdDmfPnsVHH32E0dFRpNNpJBIJ6PV6bN68GUKhEFqtFnq9nlYRHpBQKIT//u//RmtrK8rLy7Fnz55FwYxsNotgMIhAIID29na0t7cjEokAuF6nwmQyobq6Gi+99BKamppQVla2YFI5MzODS5cu4Z133kFraysSiQR/zjEMA5FIhE2bNuHQoUPQaDSLViBaWlrwr//6r2hsbERzczNKSkrw9ttv8+2Jm5qa0NvbizfffBOzs7PIZrOYm5vD1NQUCgoKUFxcDIZhMDQ0hGAwyO/XXCqYwTAMfD4ffvKTn2BkZIQvNEfBDEIIefBkMhlqampQVFQEhmEwMzODaDS6YP6VTCZx7do1HD9+HO+99x6CwSC/FZZL3Ver1di3bx8+9alPwWw2Q6lUYnR0FO+++y7OnDmD5557DrW1tZBKpQuCGWNjYzhy5Aj+93//FwaDAYcOHUJ5efmCOVo2m4Xf78dPf/pTeDwebNq0CU1NTdBqtQiFQrh8+TJOnjyJEydOIBaLIZfLQSgUgmVZiMViWK1WfPnLX8bOnTuhVCr5AP/8LmNXr15FcXExRkdH8T//8z/w+XxobGyESqVCRUUFBTNWgcfjwfHjx/GrX/0KDQ0N+MxnPoPu7m709PSgp6eH3+Ihl8tx4MABPPHEE8jlcjh9+jTOnTuHjo4OCAQCfsvr9u3b8fnPfx4lJSX8ZxqNRnH06FGcOXMGsVgMVqsVMzMzOHLkCEZGRvjzI51OY/v27Th8+DCam5tx+fJl/PKXv8T4+DgfDJubm8OuXbvw8ssvw2AwQCqV8nPr+fOoL3/5y8sGM3p6evCf//mfsFgseOGFF1BYWAiVSrXgfSYSCRQXF/MFVC9fvoxwOMwHZ0wmEzZu3Ii8vDzI5XK+icH88SwpKeGP39XVhZ/85CcIh8N8m9zf/va3EIvFMJvNEIlE6OzsxHvvvYeXX34Zzz777LLBjFgshv/7v//DqVOn+Mxdo9FIwQxCViqdTmNychLj4+PIZDIoKiriWz7dTuqVWCyG3W7nb6CkUimkUuktCxNNT0/jww8/xAcffIDp6Wk0Njairq4OeXl5EAgE/H60gYEBvPPOO4hEInjmmWdQUVGxot/t6tWriMfjUCqV2LRpE5566imIxWK0trbiypUruHDhAmKxGCwWC/x+PxoaGvDcc89BJBLh0qVLuHz5Mjo6OmC326HT6dDY2HjfOraQlYtGozh79izEYjHS6TS+9KUv8edmV1cXOjo60NLSglQqhVQqtSCYEYlE8O677+LkyZNob29HSUkJGhsb+QspV/C2ra0NXq8XQ0ND+MY3voHCwsIl30t7eztaW1uRn5+PqqoqFBQUoLq6Gi6XC1qtFj/84Q8RDodRWVmJ5557jl+dmJycxMmTJ3Hq1CmcP38eer0e+fn5S/4NdXR0wO/3w2q1YseOHTQpJISQdSKRSGBoaAjf//730dXVBZFIhBdeeAFFRUXQaDRIJBK4evUqPvnkE5w4cQKhUAgMw+DAgQPIz89HY2MjWltbEQ6HMTExAZPJtGDe5vP5cPXqVX4bb39/P5LJ5IL3wD03GAzCZDLxQQauwOFrr72GyclJ5OfnY+fOnbDb7VCpVJibm0NLSwvOnj2LH/zgBxgdHcVf/uVfoqSkZFHwPRgM4mc/+xlYloVarcamTZuwYcMGVFRUUOH2e6CzsxOpVAp6vR5NTU146aWXkEgk8Kc//QnHjh3DsWPH4PV60dHRgatXr8LpdOKpp56CQqFAe3s7Tpw4gcuXL6OgoIBflLnxcwqFQvjNb34Di8WCDRs24DOf+QzEYjGmp6fx61//Gp2dnZidncWlS5eQzWZht9tx+PBhKBQK+Hw+/OpXv0JXVxd++tOfory8HEql8p4UQZ+bm8Mbb7wBtVoNiUSCr3zlK9Dr9WAYBufOnUNvby/a2tpw8uRJCAQCbN++/abH27ZtG/7pn/4JR44cQW9vL7LZLP72b/8WTqcTcrkc9fX1CIVCfHZIWVkZHnvssWXvUbq6uhAMBlFSUgKXy7Ugu4mCGYTcplQqBa/Xi4mJCeRyOeTn58Nms0Eul992cR6ZTLbiPWeJRALT09NIp9MoLy/HwYMH+faUAoEAoVAIdrsdsVgM165dQ3t7O3bs2LGi12BZFtPT0ygoKMCuXbuwceNGmM1m5HI5qNVqpFIpfPLJJ7hy5Qrq6uqwdetWNDU1weFw8LVBFAoFnx5aXV2N8vJyCmasYdw2kebmZuzevRuNjY3Q6/XI5XKoqamB0WjE7Owsent70dfXB7/fD71ej0wmA4/Hg7Nnz2JsbAwlJSV48cUX0dDQwEfV5+bmUFVVBbFYjL6+Ppw/fx779++HRCKBzWZb8B4mJib41OBDhw7BZrNBp9PB6XQCuL4a9uabbyKTySA/Px/btm1DcXExBAIBSktLMTExgY8++gjt7e2ora3F/v37F/2uPp8PHR0dfEBk69at1KaNEELW0PxqaGgIY2NjkEgkcDqd0Ov1/L+Pj4/jzJkz6OjogMFgwBNPPIFDhw7BarVCLpcjk8mgoqICBQUFePPNN9HZ2QmdToctW7bwWYZKpRKBQADDw8OorKyEWq3mt0z6/X643W7U1tYiGAzyQYtkMsnfnAaDQQwNDSEej8PlcqG+vh4KhQIdHR344IMPcO3aNVRVVeHw4cNobGzkAybc4202G44cOYLOzk5cuHABFotl0Y1vKpVCX18fmpqa8OlPfxoulwt5eXm3vWhGVj4PEggEeOyxx1BfXw+n04lMJgOVSoVgMIgLFy6gu7sbUqkUe/fuRU1NDUpLSyGVSmG1WiEQCPDuu+/C7Xajv7+fvyeYL5vNIpPJwOVyYdu2bbDb7RCLxZiamkJPTw/a2tpw7do1yOVybNmyBTt27EB5eTlkMhlmZmYwMzODc+fOYXh4GD09PbBYLPckmJFOp+HxeLB9+3bs2bMHLpcLarUaDMPAbrfjyJEj+N3vfoe2tjaUl5ffMpjhcDiwc+dOtLa2YnR0FCzLYvPmzaisrIRIJIJer0dxcTGqqqrg8/kwPj7OzzPnZ7rPzc1haGgIHo+HD/Dp9fo72spOwQzyyEun03xxQuB6XQCNRnPPt1JwxZ+qqqpQU1ODXbt2oby8fMFjpFIprl69iq6uLkxOTiIUCvFdKW5XNpuF0WjEzp07sXHjRv535rbWtLe3Y2pqCjKZDHv37sWmTZsgkUjAsiwMBgNisRj/GI/HQ10n1smFvLKyEi+++OKCOiulpaVIJpPo7u7GmTNnMDExAY/HA5VKhXA4zNdMEYlE2LZtG5599lk++AAAhYWFKC4uRiaTQTqdxpkzZ9De3s4HAOe//vj4OCoqKnDo0CE8+eSTi7Z+OBwOPiVYpVLBZrPxRbdsNhtKS0uh0WgwPDwMj8eDVCq1qD7HzMwMuru7kc1m4XQ6UVtby2+JIYQQcu9ks1k+w+9GXDAhEAjg7Nmz6Ovrg0KhQHl5+YJrxdjYGE6fPo1oNIo9e/bgxRdfRHl5+YLv8cLCQjidTn4rwKVLlzA3N4fi4mIUFhZCrVbzNcG4jNhsNotoNIrZ2VlEIhE0NzdjeHgYLS0tmJmZQSQS4W9O5+bmMDw8jFQqBYvFgoqKCkgkEgwPD+PUqVNgWRaNjY14/vnnYTQaF9xsFRUVweVy4erVq5iensbFixdx4MABWCyWRWPCMAyqq6vxxS9+ccF1maw+tVqN4uJiPnA0P6g0NTWFrq4uxGIxpFIpPP300wsynmUyGVKpFE6cOIFgMIiRkZElb/ClUikcDgcaGxuxd+9e/uc6nQ4bNmyA2+3GxMQEBAIBKisr8cwzz/CPsVgs2LNnD2ZmZuB2uzEyMoLq6uoVZV5znXSWWnQVCAR80wKhUAiVSoW6ujo8++yzC/5GnU4nxsbG8M4776C/v/+2CnpqNBo4HA6o1WpIpVIwDMM3RZj/N9vU1IQ//OEP8Hq9cLvdUCqVC4IZ09PTuHr1KoLBICorK9Hc3HzHi1EUzCDkAXE4HHjppZeQTCahUCiWzHYQi8XQarVQq9VIJpOYmJiA3++/7ZoAEokEZWVlqKurW7Aawn25abVaKBQKuFwuVFZWwmQy8RdqkUgEo9EIi8UCqVSKUCiEVCqFbDZLH94aJpPJUFdXh9LS0iUnTPNTc6empnD16lU4HA4+HTcWi2HDhg3Ytm3bkhcWhUKBnTt34tq1azhx4gQGBwfR0NCw5HspKSnBvn37bquGzI2cTie2b9/OZ4oMDQ0tSvX0+Xzo6elBWVkZqqqqYDQa77h1LCGEkNuXyWQwMjKyaHEll8shkUjA7XbzKfuTk5Mwm83Yt2/fgu4nHo8HFy5cgFQqRVFREb9yfeM8Rq/Xo6GhAX6/H36/H4ODgzCZTMjLy0NRURHGxsYWbCFhGAbDw8OYmpqCSqXC7t27odFocOXKFYyMjKCoqIgPOAQCAQwMDAC43o7SZrMhFothZmYGwWAQpaWlcDgcS15fFAoF/x6mpqZw5coVxOPxJa+bW7duRVVVFQUy7gObzYaGhgYolcoFP9dqtfx2CG7b9I3zHIVCwRfCnJmZWXJrEjfXqq2tXbTNViQSwWAwQKPRQKFQYMuWLQu283Jze67rIff3cqut6UudU/MLdt4YaCktLUVvby9mZmb47JMbAx5yuRxarRYGgwFTU1OYnZ1dtfsbbv7mdrtx8eJFOByOBZ+Hx+PBn/70J0QiERQUFNxVZi3N+sgjj+spPb/4zv266bRYLAgEApicnOQ7O6TTaT5gMD09jf7+fsTjcSgUCiSTyQX/fisikQgWi2XRlwj3byKRiA+YmM3mRWl03LgIBAK+f3Yul6OTZg0TiUQwmUzLZhep1Wo4HA5+9SEcDoNlWfj9fvT29vKtey9fvoxAILAo04ErbjUwMIBMJoPp6WmEQqEl34tGo0F+fv4dpQ0WFhZi7969uHTpEsbHx9HW1sYXqEqn0xgbG8Pg4CDC4TD2798Pl8tFnXYIIeQ+CYVCePvttxe11uayMmZnZ+H1esEwDJqbm7F161Zs3rwZVquVfyzXzrKsrAwGg2HJzDqBQACpVAqbzQaDwQCv14tgMIhEIgGDwYCSkhL4fD6MjIzwbVPT6TSGh4f57boOhwPBYBA2mw1utxtTU1PYsGEDH8wYHh5GQUEBHA4HxGIx5ubm+AWcdDqNnp4evPPOO8uOg9vtRigUQiKRWFTklJvvVVdXw+l0UiDjPjAajSguLl4UGBOJRPwWcrVaDbPZvCgYIJfL+SBBOp1GLBYDy7KLXkMikaCoqGjJxUWxWAyRSASJRMIHwm48p2UyGSQSCV/kdqULhfPfZygUgsfjQSaT4Y+vUCggk8kgEomQl5e35IIpt7BpMpkQDAb5598ts9mMDRs2ID8/HzMzM7h48SI+9alPLfh+4GqwFRQUoKKiAmaz+Y7ncBTMIBTMEAohl8v5G/n7dcOeTqcRDAbR19eH9vZ2vi1UMpnkv9SSySR8Ph/C4fCCzIqV/G5c1FUqld7091epVCvavkLW7vnMrQgsF0TTarWLPmuuCFo6nYbb7caJEyegVquXPSe8Xi8fELnxAigQCCCRSCCVSu94P7DNZkNTUxMMBgOmp6dx5coV7Nu3j//b6ezsxNDQEIRCIaqqqhZshyGEEHJvxWIxnD9/ftlsOG6hZOPGjXyHOC6Qzt3QZDIZfp5ys0KYQqEQarUaCoUCuVwO8Xic33pYUlLCd63g6mEwDIOxsTEkk0k4nU6oVCpYLBY+g2JmZgbA9QyOQCCAqakp7Nu3Dw6HA7lcDtFoFIlEAizLIhwO49KlSxgZGVnyvXF1qpLJJFQqFQKBACKRyIIFJLFYzAdjyL2nVCqXDFTcGNhYal4sk8mg0WhuOR/munfcLPOUm4/diyKvMpmMn7cHAgF+/naj+VtOlsK1P17NrFaNRoPCwkIUFhbyGcDBYJAP5oXDYXg8Hrjdbjz99NMoLS29q9oxFMwgjzypVAqTyQSLxQKBQIBIJIJIJHJPt1NkMhkMDg7iyJEj+Oijj+D3+6FWq+FyuVBeXs5HJwOBwJIpiyshkUggk8loNeARIZPJUFpaumT3j9VkMplgMplQWlq6aILGrViYTKY7Pr5CoYDVakV1dTU6OjrQ3t6OWCwG4Pq+156eHkxOTsJoNGLz5s0oLS2lD58QQu4Ts9nMdzFYChc8UCgUUKvV0Gq1bOtS6wAAIABJREFU/M1jJpPB8PAwfD7fil+XK2gYDAZRXl6O2tpadHR0oKOjA0NDQ3A4HNBoNBgaGkI6nUZNTQ3kcjm/Wn/+/Hn4fD4wDAOv1wufzweWZZfcMnBbN1JiMZxOJ2w2G4xGI3UneUQIhUIoFIplFwrvtUwmg0QisWa3fisUCuzevRuhUAidnZ3o7OyEXq+HzWZDb28vxsbGoFAosHnz5kXbcCiYQcgd3OxbrVZYrVawLAu32w2Px3Pb+9e4PulceiO3B205DMPwXRj+/Oc/w+fzoaysDJs3b0Z1dTWMRiMfER4fH0ckEsH4+PgdByNuViSIPHxYluXbYq10QsYFvUpKSvDEE0/wq2jL4SpXl5SULPr53a5GcOmPGzduhM/nw/DwMHp7e6FWq8GyLN9yuKGhAfn5+VT4kxBC7iO5XM53MViKRqNZNhNBKBRCr9ff0R55sVgMk8kElUoFsViMsrIyFBYWQigUYnJykt/aMjo6CrVazdfhMBqNKCkpwdGjR+Hz+fiuXm63GyKRCGVlZQuKk3KvZTabsW3btlt2eeBu4CoqKqDRaJbcmkAeLiKR6IHNrWOxGKanp1dta8i9+H7YsmUL+vv7cfHiRXR1dcHlcsFoNKKrqwtTU1OwWCyora3li79TMIOQuwhmGI1GWK1WSKVSTE9PY3R0FKFQCAaD4ZZ7uFiWxezsLL9f02azoaKiYtkUtWw2C5/Ph76+Pr4o1v79+/HUU08tWl3u7e3F5cuXIZFIKBhBbgvXSWS5Qk4syyKVSiGXy/H1Yrg0RG77idPpxOOPP476+nqo1eoVvweBQLAqATS5XI6Ghgb09fXx/eC1Wi30ej0GBgag0WiwZcsWasdKCCEPYO50YxeDlQQkrFYrTCYTRCIRMpnMLW/+GYYBy7KQSCR88UTuOFarFUqlElNTU5iYmEAul4PX60V1dTVfOFokEqGwsBDpdBqzs7OYnJxET08PfD4fNBoNnE4nX9tAIpHwdcWMRiOam5vx8ssvr+h3XK6WFFk/VmsucyevKxAIkEqlwDDMssGMqampNRvMkEqlqKys5OuZ9fX1ob6+HpWVlejr68Pc3BwKCgpQUFBw19uvKO+cEFyPrlqtVtTX10Oj0aCvrw/nzp2D2+2+6fOy2SwikQhaWlrwgx/8AN/97nfx3nvvwe12L5vZwVUuDoVCfEujsrKyRdkcmUwGoVAIU1NTCAQCFOUnt4VlWQSDwUUFyDiBQAD9/f1IJBILqmEbjUZUVFRAoVDw+xlXWl17/rnLpQHfDZlMhqamJlRVVUEoFKK7uxutra18VkZJSQn279+/ZGErQggha5tCoeA7KdzsesEwDCYnJ+H3+/nihvPT+7msC4/Hg+7ubr4DhclkQllZGR+s57IN/X4/enp60NXVhXQ6jaqqKuj1ekilUr6+hclk4herlruekoebVCqFUqm879u0xWIxJBIJBgcHl92KFY/HMTs7e8fztPsRkJHL5SgpKUFTUxO6u7vR2dkJr9eLK1euIJfLYceOHXe0YLZovOhUJeR6MMPlcmHfvn3w+/24du0a/vjHPyKbzUIgEMDhcCzaF5dOpzE1NYVLly7hgw8+QG9vLywWC5/+eLMvPy7quly0l2t51tbWxt9U3klR0lwuh0gkgrm5uTX7hUdWVyqVQn9/P8bGxvgiZCKRiC+4Nj4+jkuXLiESicBisfABjLy8PNTV1UGlUvGttDZt2gStVrugMFQqlcLQ0BCGh4fh9/uxefNm2O32BZF1hmEwNzeHRCJxV78LVzyrqKgIVVVVGBwcRCwWg91uh1QqRUFBAQoLC6mLCSGErEN5eXloaGhAW1sbhoeHcfXqVZSXly/YNphIJOD1etHV1YXp6Wk+k3b+AlBeXh6qq6tx9uxZANcXmpRKJfLy8qDX6/kMRLVaDafTiVwuxwcztFot6urqoFar+ZV4jUaDvLw82O12zM7OYnBwEH19fXC5XAu2T3KLB8eOHYNIJEJ5eTlqamooW/AhoVarl+3Ils1m+cyJ1W4Jr9PpUFRUxHdsW2ouNzIygvPnzyMcDj/Q8+1m4yAUClFQUIBt27ahs7MT7e3t0Ol0GB8f5zscrcZ7p2AGIbgeBXU4HNi2bRt6enrQ3d2NlpYWft9+U1MTdDodH3zgggRdXV344IMPcO7cOWg0GmzatAlNTU0L6l4sFciQy+V8teS5uTl+xUEikSCbzSIajaK9vR1tbW2IRqNQKBRgWRbRaJTvbHI7mRpc5kgwGKRgxhoTj8cxPT19y8eJRKIVVZpmGAZTU1MYHh7G4OAg7HY7Xz1+bm4O/f396OzshFAohN1u56tIG41GVFZWwmazYWBgABcvXsTBgwchlUqh0WggEAiQy+UQCoVw9uxZfPLJJxgbG4NWq+U75swPoiUSiVumPwqFQmSzWSQSCczNzWFubg4SiQQKhWJBMNDhcGDjxo34zW9+A4/HA6fTCbPZzBd6I4QQsv44HA5s2bIFfX19GBkZwenTpyGVSpGXlweRSASWZTE9PY3Ozk709vaCYRiUl5fDZrMtWNE1m80oLy/H+++/j1gsxhd2N5vNC+o+cQtXbrcb3d3dGBwcxJYtW1BdXc0HKbhWsHa7HRs2bMCFCxfQ3d2NTz75hG99zt1UxmIxDAwM4Ec/+hH0ej0++9nPwuVyUTDjIaFSqWA2m5ecz3P18jKZzKoHM4xGI8rLy+HxeBAIBBbM5ViWxdzcHK5du4bu7m7E4/H7fr5xHeu4v1Gfzwefzwe1Wg25XM63pgWA/Px8NDQ0QKfTob+/n+8U5HQ6UVtbuyr1ziiYQci8gIbT6cRzzz0HmUyGDz/8EBcvXkRPTw/sdjvy8/P5iyfLspiZmcHw8DBmZ2dhsViwf/9+PPPMM2hsbIRcLl/2Ro7b0lJWVgalUon29nakUikMDAzAbrcjHo9jYmICHo8HALBx40YYjUb09/fj5MmTyOVy2Llz5223osxkMkilUmu24vGj6pNPPsG3v/3tWz7ObDbjq1/9KhwOx20dV6lUYuvWrfB6vfjmN7+JHTt2wGw2I5fL4erVq3xXkN27d6O+vp4PHCgUChQVFeGVV17BH/7wB5w5cwbf+973UFNTg8rKSigUCiQSCUxOTuLEiROIxWIoKytDWVnZHXVO4VKFw+EwWltb8dZbb6G8vBwulws7d+5c0Iq4qKgI+/fvx7Fjx9Df3w+5XI5Dhw6htraWTiRCCFmnioqKcODAAbS2tuLatWt4/fXX0dvbi+LiYhiNRgSDQQwMDKC9vR3BYBD79+/HX/3VX8FisSx58yeXyzE0NIR4PI4dO3YsKugplUpRWlq6YFXbZDLxz52vvr4eX/nKV+DxeNDV1YX//M//xKVLl+ByuWA2m5FIJDAwMIC2tjaMjY2hqqoK9fX1FMh4RHDBjHQ6veoFyPPz89HY2IjW1lacPn0aMzMz2LFjB7RaLVKpFDo6OqDT6fDss8/izTfffCD3Sw6HA2azGRMTE3jjjTf4+VtTUxMKCwthNpv5v83Kyko4HA5MT09jaGgIlZWVqKqqgtFoXJVAEAUzCJlHpVKhuroaQqEQFosF3d3dGB0dRSQS4buVsCzL76Ezm83YsmUL6uvrUV9fj6qqKj7gwRVVNBgMsNvtsFgsfK9npVKJ+vp6PPnkkzAYDAgEAmhra8PAwABUKhWkUimqq6tRVlYGq9WK/v5+qFQqRKNRjI2NobCwEBaLBXq9Hi6XCwzDQKfT8ZWVZTIZTCYTCgoK4HK5YLfbF1youaiqVqvl94Yu11dbLpfDZrPxdRUopf/uzi+bzYZQKAShUIjBwcFbPicajfJZNdwFhCucxH0WXFpsfn4+KioqsGvXLjAMg4GBAQwNDaG7uxuxWAyxWAwGgwGHDx/GoUOH0NjYyGdAcMfYvXs3ZDIZdDodJiYmMDQ0hJmZmQUXcKfTiZKSEmzbtg1Op3PBFiytVovy8nL+InazsfjMZz6DvLw8DAwM4Nq1a/y2lObm5gWP1el0KCkpgcPhgM/ng0wmw8aNG+FyueikIoSQ+0QkEsFsNsPpdPLFOO+GWq1GWVkZvvjFL6K1tRVdXV3weDyYmJgAy7JQqVRIJpMwGo3Ys2cPdu7cifr6eiiVykXXk4KCAtTV1fGZFXV1dYsWAbi51cjICHp7e2G1WlFRUYGCgoJFW4m5wp+vvvoq2tra0N/fD7fbDbfbjWw2C4PBwK+Kv/DCC9i5cydcLhd/nPnX5aKiIqjVapo/rdK5F4/HF40nl2FaVFTEz7dv3O4tEomgVCr5Yq9c0fPlbtZv9h4ymQz0ev2ijm+3+7lz79flcsFkMi0IiNhsNuzbtw/T09Po6enB1NQUTp8+DZ1OB71eD4PBgIaGBpSVlaGlpQWJRAIWi2XJOeGtzr3589L5c7b542mz2RaMlUKhwPbt2xGLxRCPx+H1epFIJBCJRFBaWrogiCiRSKDX61FXVwefz4exsTFs3LgRZWVlq/b3QMEMQm74ojIajdi8eTNKSkrQ3d2NK1euYHR0FDMzM5idnUUmk4HJZILVakVJSQm2b9+ODRs2QK1WL/ji5LaoFBYWIhKJwGazQafT8QWFysvLIZFIkJeXh5aWFgwNDfFfSBUVFdiyZQufgmW32yGRSDA0NASxWIxcLsfX8ti0aROy2SzsdjvEYjGEQiG0Wi2KioqQSCRQUlKCkpKSBasF3MU+Pz8fdXV10Gq1sFgsS/bL1ul0qK2tRSgU4nvGkztjMBhQW1sLrVaLZDJ5W88xm8185FoikaCurg4ajQYWi4Wf0InFYuTl5aGqqgpyuRzNzc1QKpWorKzE6dOnMTAwgEAggIKCAmzYsAHbtm3D1q1bFxWdlUqlKC8v5wulnT59GmNjYwgGg4jH41AqlbBarWhoaMCWLVsWBR2A6ysK27ZtA4CbVrlXq9U4fPgwbDYbTp8+jdnZ2WXbCEulUqjVahgMBpjNZhiNRpSWliIvL49OKkIIuU+kUimKi4uRTCb5hZ27nXOZTCY888wzfMC6v78fQ0ND8Hq9qKysRFFREQoKCvDkk0/C5XItum5xN14WiwXbt2+HyWRCNptFQ0PDopaPEokEpaWl2LhxI2ZnZ6FUKlFbW8uvIt94TIfDgVdeeQW1tbU4deoU3G43RkdH4fV6oVQqYbfbl31vN16XuRtscvfnXjKZXDSearUahYWF2LRpE8rLyxfNybljGI1GNDY2QqPR8F0Mb8TNtVKp1IKb+BvP/7y8vEUZPbfzuQuFQiiVShQVFWHz5s1wuVwLCpmbzWaoVCpkMhkUFRWhtbUVbrcb8Xgcdrsd+/fvR319PQwGA7Zs2YJIJMIXul3puTd/Xjp/zjZ/PC0Wy4KxksvlaGpqAsMwiMfjcLvdfF0/bvvJjePucrlgtVoxMzOD+vp6FBUVrdq5IcjdSVVBQu6zQ4cO4cSJE/jOd76Db37zm/flNTOZDJLJJOLxOF/chmEYZLNZvtKwXC7n94gtFd1NpVKIx+NIJBIQi8XQarWQSqV8rYB0Oo1oNIpYLIZUKsVfQOVyOVQqFRQKBQQCAZLJJCKRCNLpNJ+er1arEY/HEYlEkMvloNfr+doG3HFTqRRf80AikSz4Yue+hKLRKB+t5goMzZdMJjE3NweGYaBUKvljkZWLx+N8Mdbb3fYjkUiQn58PqVQKhmHg8/mQSqUW/DybzfIR8lQqBYPBAJFIhHQ6jXA4jFQqxa+iceeOSqVatq4Ld+6Hw2Gk02n+vBcKhZBIJFAqlVCr1UtOZMPhMPx+Px8IM5lMS75GLpdDOp1GLBZDJBLhi0dx1e3nn2PxeBx9fX34m7/5G0SjUezduxd///d/D5fLRS2LCSGPtPPnz2P37t389+q9xBW8TCaTyOVy/DXobnG1k6LRKH+zyjAMZDIZJBIJpFIp321kuesWy7Lw+/1863G9Xr+o6wl33eHqj3GLPzdrDZnNZhGPx/nrITcfvNV7W+q6LJfLaf60CucelxkzfzxTqRQ/n5bJZPxnMn+OwLIskskkgsEghELhsnMhbq6Vy+Ugl8v5IrK3c/7fzuc+/zyMRqNQqVT8nH+p40SjUWQyGb7mnlar5efrPp8PLMtCLpfzc6eVnHvz56UajYafs80fT7FYvGisuNeY32BAIpEs+VozMzP43ve+h48//hipVAqvv/46GhoaVi24R8EMQsEMQsia1tPTgw8//BCvvfYaqqqq8JWvfAUHDhy46TYWQgihYAYhhDw4fr8fnZ2d+O53v4u5uTnU1dXhW9/61qpuE6ZtJoQQQtYUlmX57JBUKoUrV67g+PHjYBgGJSUlaG5upiJrhBBCCCFrTDqdRiKRAMMwuHbtGs6dO4fBwUGUlZVh9+7dCzoRrQYKZhBCCFkzuDTOwcFBtLW1obW1Fb29vfB6vdiyZQu2b98Oh8OxKqnNhBBCCCFk9QwODuLcuXPwer3o6upCe3s7ZDIZmpubsW/fviXr3twNCmYQQghZM7j9yb29vTh27BiCwSC0Wi3q6ur4DixURI0QQgghZO0ZHx/HyZMn+bodRUVFeOyxx7B7927k5+evet0YCmYQQghZU7LZLCKRyG11YCGEEEIIIWtDIpFAMBiEUqlEaWkpKisr8fzzz8PpdN6TxSgKZhBCCFkzxGIxbDYbXnzxRRw6dGhRBxZCCCGEELI27du3DzU1NRAKhQu61N2r7cEUzCCEkEdAZ2cnAKCurm5Nv0+BQACZTIb8/Hzk5+fTB0cIIYQQsk4YDIabtjtebUIackLurVAohFAoRANBHqif//zn+PnPf04DQQghhOZahJCHAgUzCLnHjh49iqNHj97246lPPFnJeREOh+HxeG75/Pfeew+///3vaSAJIYQ88nMtmm8R8nCgbSaE3GNHjhwBALz88ss3fdzIyAgkEgkMBgOCwSCkUiny8vJoAB9xuVwO2WwWuVwOLMsCAEQiEWKxGObm5pBMJqHX65FMJiGXy5c8RmdnJ4aGhgAAx48fx6FDh2hgCSGEPHJzLQAYHR2FSCSCyWRCNBoFy7Kw2Ww0iISsQxTMIOQeCoVCeOedd/j/1ul0yz62v78fkUgEarUaIpEIAoEATqcT+fn593XvGVkbcrkcH8jIZDKIx+NgGAbpdBrpdBrxeBwikQh2ux16vf6mx5q/veTdd9+lYAYhhJBHcq7FzbfC4TA0Gg3EYjEymQwCgQDy8/NhNptpQMk9tV5qmK0XtM2EkHtofsrjv//7v9/0sU888QSEQiHfkjIWi2FiYgL9/f24du0a/H4/DegjIJvNIpVKIZ1OI5VKIRKJIBgMIhAIIBAIYGZmBsFgEIlEAjU1NbcMZADXt5hwzp8/T4NMCCHkkZxrAcChQ4f4+Zbf70cikYDH48HAwAD6+vrg8/mQzWZpYMk9QTXMVhdlZhByD3FpjwDQ3t5+y8d/9rOfBQC8/fbbSKVSSKVSiMViCAaDmJiYgN1uR15eHkwmEw3uQyabzSKdTiOZTPLbShiGQSwWQzQaRSqVgkAgQCaTwfbt22/7uOPj4/wWEwDo7e3F+Pg4CgsLadAJIYQ8cnOtG+dbmUwGoVAI8XgcoVAIbrcbZrMZNpsNFosFIpGIBpkAuJ41KxAIFvyMZVlEIhFEo1E4nc5bHuO9996DUCjE9773PRpQCmYQsrZxaY8AcObMmdt+3osvvggA+M1vfoNEIoFUKgWpVAq3243p6Wk+FZLSIR+OIEYmk0EymUQ6nUYikQDLsgu2lySTSYhEImzdunXFx//ggw+W/NnXvvY1GnxCCCGP7FzrxvkWy7JIp9P81pNIJAKv14v8/HxYLBZIJBIa7Ed4rpbNZsGyLFiWhUAggFAoRDgcRjgcRi6Xu+X2JoBqmFEwg5B15Maq2pFIBEePHsXTTz9928f4whe+wF9kuVoJYrEYiUSCv8CazWYqFLoO5XI5JBIJMAyDTCbDBzJSqRSSySTi8TiEQiEEAgF27Nhxx6/zxhtvLPrZm2++ScEMQgghNNe6Yb719ttvI51OI5vNIplMIhwOIxgMLghqyGQyGvhHJIDB1S9jWRbxeBzpdBoMwyzYDqxUKuFwOKBUKm95TKphRsEMQtaN999/f8mfrfQCO/8i+6tf/QqZTAYsyyIWiyEej2NiYgJmsxl2ux1Wq5UGfh2YH7DgglRCoRCxWAypVAoMw0AgEKxoO8lSxsfHcenSpUU/b21tpa0mhBBCaK51g6UyNZLJJKLRKGZnZ6FWq5Gfnw+73Q6FQkEfwEOIW2TiAhlc0CIejyOVSvELUFyR9oaGhts+9vwaZufOnaPBpmAGIWvX7373uyW/xH784x/f8TG/+MUv8hdZ7qZXKpUiHo/D6/XCbrfDbrcjPz+fPoA1aP4FMZ1O89tLEokEXw+DYRjs3LlzVV5vqS0m8/+NsjMIIYTQXGuxGxeRkskkMpkMEokE/H4/PB4PHA4HbDbbba3Ik7Uvk8ksyJQVCq/3yYjH4/wCokgk4oNcu3btWtHxb6xh1tfXRwtLDyqYwaXd3AqXIr0acrkc4vE4stksxGIxZDIZf5IRstYcPXoUgUBg0c9nZ2fvKP1xuYvsr3/9azAMw0eHJyYm4Pf7YTQaYbfbqW/6GsGlI3L/C4VCSKVS/AWR23/JMAz27Nmzaq+71BYTDm01IeTO5iJcTZv58yCBQACRSLSq8x4CflVcJBJBIpFAKpXSoJD7NtcC/v8i0s9//nN+vpXL5RAIBBCNRjE1NQWLxQKbzQaNRkMfyjqdo924dSSVSvG1y7h/z+Vy2LJlyx2/DtUwWyPBDJZlMTs7i0QigUwms2wQQyKRQK1WQ6vVQiAQ8P+7U+FwGG+++Sbi8ThcLhcOHjxIHR3ImrVU2uP8f1uNCywAvPTSSwD+f00NLqIciUQwMTGB/Px8FBQUwOFw0IfygC6QiUQC8XgcuVwOkUiET1Hkghm5XA6pVGrV900ut8WEQ1tNCFlZEINblfX5fAgGgwiHw9cnUmIxFAoF8vPzodfrodVqKaixSlpbW3Hs2DFYrVY0NTXd9dY7QnOtO/WlL30JAPDb3/6Wv25zcy6/34+xsTE4HA7Y7fbbaplOHvx3ejqdRiwW47eUcPUwuIzZVCrFP/5uapdxqIbZGglmpNNp9PT0wOPxIBQKLRvMkMlkMBgMyMvLg1arhcFggNFovOOMimg0ig8++AB+vx/bt2/Hjh07KJhB1qyl0h45q5H+eCMuU+Ott97iVw0BIJlMYmZmBsFgEBaLBWazGSzLQiQSUauxeyidTvNdSLiLIve5RKNRMAzDBzIef/zxe/IebrbFZP5j6CJKyM2xLAu/3w+fz4eJiQkMDw9jamoKMzMzAACpVAq1Wo2ioiI4nU4UFBTA6XRCo9FQJsFd6ujowH/8x3+gsbEREomEghnkgc61AOCFF17g//sXv/gFv2KfSCQQCoUwPj6O4uJi2Gw2aLVaZDIZPmuLPHjZbHZBtixXw4xboOc6yzEMAwCrtu2XapitoWBGPB7HyZMn8ec//xljY2NQq9UQi5c/jFwuR2lpKZqamrBr1y6UlpZCpVKt+I9aKpWirq4OoVAI5eXlVEmYrFnLpT1yVjP98UZf/vKXAVxPh5wf1BgdHYXX64XZbIbJZILRaOQzqKjV2OrhMjG4FRuuNgb3/0KhkC8sdeDAgXv6Xm62xYRDKwKE3Fwmk0EgEMDx48dx8eJFdHR08OnH3DYTLgMjl8tBpVLB6XTiC1/4Aurr6+F0OiEWiylLg5CHaK7FeeWVV/igRiqVglAoRDabxdDQEKamppCXlwej0QidTgeBQACxWEwLSQ8Iy7J8Af1EIoFIJMJv8+WyMbjHsSy74noYt0I1zNZQMINhGAQCAXg8HszOzmLv3r2L2kJms1lEIhHMzs5iamoKV65cwcTEBMbHx/HCCy+grKxsxSlYGo0Gzz//PNLpNAwGA7Ra7W0/N5fL3XIicTuPuRfPJQ+fm6U9zn/MvbzAcumQb731Ft9ijGEYMAyD6elpWCwWGI1GaLVayGQyyGSymwYlya2DGFwWBsMwiEQiyOVyiMVi/M+4z+B+tOG61RYTTmtrK0Kh0G31RifkUeTxeHDx4kX8/ve/x/j4OIRCIbZt24bCwkI+O5RhGESjUXR1dWFoaAhXrlxBMpnE448/jqeffho2m+2WCzA3BkYehNWayzzoORHNyWiudb/mWjcGNd58880FW0kzmQympqZgMBhgNpuhVqshlUohlUppznWfcMVbua298XgcLMsiGo0u6kqSy+Wwd+/ee/I+qIbZGgpm3Bhg+PSnP42KiooFP2dZFqFQCF6vF/39/Th58iQGBgbgdrtRXFwMpVJ5y2AGt3opkUggFAohl8vvKNWHSyNSKpXLZoPczmOWwhWGSafT/M3gnaSRcX9IAoGAUlIfAjdLe+Tcq/THG3GZGm+99RYEAgGfHSAQCBCLxSCXy2E2m6HX6/ksDcp6un0Mw/AVrhmGQSKR4NNNuRZeQqEQLMves+0kS1lJu6+jR4/i5Zdfpg+TkCWMj4/j+PHjuHDhAvLy8vD444/j2WefRVVVFd8KO5PJYG5uDi0tLTh37hxOnjyJjz76CGKxGDU1NTCZTMt+r86fRwC44wLnXLD0TuYQ89/D3RRYn38cqVS6omsJwzBIp9P8Fsg7udG78fXv5jjcVkAqNk9zrZX4i7/4CwDXs2NTqRQfpIzFYojFYtBoNNDpdNDr9XxAg7Jj710Qg8uKTSQSfObF/G5yXAZzNpvFY489dk+vI1TDbI0GM6RSKQoLC1FWVrZsMGLz5s2w2+348MMPcebMGZw6dQpmsxk1NTUAwLcpZBgGcrkcSqUSsVgMMzMzmJubg9VqhU6ng1KpxNzcHLLZLKRSKVQqFUQiEV+Eh1v9VKlU/EmcSqXg9/sxOzuLwsJCqNVqyOVyyOVysCzLR+pmZmYWPEYmk0HO3hy0AAAgAElEQVShUCy6gHHFYbjq2olEAsFgEKFQCHl5edBoNFAoFFAqlRCLxQsuoje+T7VajWw2i3g8Dr/fDwBQKBRQKBR8sVSdTnfTLzmGYRAOh/kOLxqNhtLXHrDz58/fNO2RMzs7i87OTtTV1d2X98UFNX75y19CJBIhFAohHo9DKpUiEolAo9HAYDBAo9FALBZDqVRS//TbuEiKxWJEIhG+JkY8HkcikUA2m+WDRvv27bvv7+/IkSMreiwFMwhZms/nQ1tbG6LRKA4ePIgvfelLcLlcC7oWSCQSGAwG7Nq1i9/K984770AgEGBmZmZRsXSumGg8Hkc4HObnEQKBAAqFAna7nZ+LSKXSJbMMuGNwe76j0Sji8fiCwLRCoVhykYV7LlexPxqNIhQKIRQKQalUwmKxQK1WQ6lUQi6XL3p9LkWb6y4ikUgW/S56vR52ux1KpXLZ7Yzce0gmkwgGgwgEAlAoFHydNYVCwW+VXA7XEYprnRgMBhEMBvlCrFqtFnK5nF8Nv3EOxc3luN+TZVmEw2HEYjGk02lYrVb8P/beNDbO87zXv2bfZzjDfd9FSiJFiVqs1bISOV6i2E6dNouTtjhFUODEaNGiOR9yAhz04JwvDU6BExSnbVwEaW05iy1ZTmzZlhdJtiRbO0VKFPdN3Ibk7Pv+/+D/85QUSUu2tVDSewGEZc5w5p3lfZ/7+d33/bu1Wi3ZbBabzSYTbMuJIKFQiFQqhVqtxm63K9n3ByzWEojq2Jdffll+1+BT/7+5uTmcTidOpxOLxSKrY5VE0q1BtPsKjzJRmRGPx6V4MV/MuBPVsoqH2QoWMwApDiyH1Wplz549jIyM8NZbbzEwMMD09LS8vbe3l6NHjzI5OcmmTZt4+OGHeeutt+jp6SEYDLJjxw42bNhAaWkpv/zlLwmHw9TV1fHkk09SUFBAIpHgwoULdHV1ce3aNZn9FLN8Z2ZmCIfD5OXlUV1dTWtrK1u2bMHj8XD+/HmuXr2K2+0mEongcDioqKigubmZ3bt343Q6F7yWZDJJb28vPT09dHd3EwgECIfDxGIx7HY7VquVoqIitmzZQkNDA2VlZQtOLnGcExMTPPHEE0SjUTo7OxkeHqakpIT6+nquXbuG3+9Hp9Px/e9/n6qqqiWDANEu8OKLLxIOh6murubpp5+msLBQ+VbfRW6m7FHw4osv8g//8A939PjEpvU3v/mNrNQQwXAoFJITiISwJgJBhf8MvkUAHggE5FQnYSYllH/gjlZizCcQCPDKK6/c9P1feeUVpdVEQWEZkskk4XCYTCYjN/oWi2XRJlWr1eJwOGhqapJmoGazmbq6Osxm84L7hsNhxsfHef/99xkbG8Pn8xGLxVCpVBiNRoqLi2lsbKS1tZWmpiaZpJkvRsTjccbGxuju7qanp4fZ2Vm5KXc6nVRUVLBlyxbKy8sXxDLib4eHh7l06RLd3d34/X65qdfr9TgcDsrLy2lvb+ehhx5alNw5d+4cr7/+OmVlZTQ3N1NXV8cHH3zA2NiYnHZnMBgoKSlh165dNDc3U1NTs2jjPz4+zsWLF+no6GB2dpZ4PI5Wq6W4uJiGhgY2bdq0rNG8iIPm5ua4cuUKZ86cYW5ujmAwSCwWk4ml/Px8Vq9eTUtLC83NzVKYSafTTE9Pc+bMGc6ePUt7ezsajQa/309PTw8ATqeT/Px8Ges988wz1NXVLXutDIVC/Pa3v2V8fBy73c4PfvADiouLlZPoAYy1BGKs669//Wui0SgqlQqdTkcymcTv92Oz2WScZTabsVgsSiLpCyL8ysSPMPEUZuzCGwNgz549d/TYFA+zFS5m3AidTkddXR2lpaXSbyMajcrbh4aGOHjwIJcuXWJqagqbzcZbb73F4OAgBoOB8vJy6urqsNls/O53v2N2dpZdu3bJDEgikeDq1ascPnyYU6dOyUV0YmKC6elpYrEYsViMwcFBysrK2L59OyqVCrfbzfvvv8/ExIQ0gBkdHcXpdLJx40YqKytpbm6WQUQikWBqaor333+fTz75hO7ubiwWC3q9XpaRh0IhstksExMTcnSsyKrMP86zZ89it9vx+XwcP36ccDhMa2srJpOJs2fPcvnyZaLRKJs2bcLhcFBQULDofQ2HwwwMDPDyyy9LM8E7oS4qfDYHDx686fseOnTori2wYvrJr3/9a1lOK5TqVColxYx0Oi2Dwgc5azBf2RdBfzAYJB6Py7YStVpNLpfj0UcfvavH+sYbb3yhv1GqMxQUFmMymcjPz5dToYaHh6Xx+VIZ+ry8PPLy8li7du2i24SQ0N/fz7Fjx3j11VcJBAKyajSXy5FOpzl9+jTV1dVMTk5iNBqprq5eIGgkk0k6Ozs5d+4cn3zyCePj46RSKbRarcw8WiwWPB4PW7dupb29XQoSYiLdqVOneO+99+jr60Oj0cg4Q7TI6fV6JiYmMBgMtLW1YbVa5fN3dXXxz//8z6xdu5aHHnqI1atXc+zYMTwejzTPc7vdBAIB3G639A0R8VAmk2F2dpZz585x4MABzpw5g1qtprS0FI1Gw9TUFNPT04TDYfr6+pb8XDKZDH6/n1OnTnH06FGOHz8uW1tEAigYDBKNRlm3bh3hcJiioiLy8vLQaDTyGE6ePMmvfvUrvvnNbwIwNTXF+Pg4+fn51NfX43a7uXLlClevXqW0tBSTybSkmCG8EQ4cOMDIyAhNTU08/fTTipjxgMdagu9+97sA/Pa3v5U+ZmLTLdpPzGYz4XAYh8OByWRSEkk3gah6j0Qi0qMkHo9LYVKIGJlMBuC2tpIsh+Jhdh+IGSLQTyQSMuuwXOuE8Ncwm81s376d6upq1qxZc9OLQTQa5fjx49TW1lJfX89jjz2G0WhkenqaX//614yMjHDkyBEikQgGgwGNRsO3vvUtKYr84Q9/oLu7m9OnT7N9+3YsFgvNzc0A+Hw+Ll++zOHDh/H5fKxatYqvfOUrFBcXo9VqSSQSfPLJJ7z99tscOnQIjUbDmjVrKCsrW1TaGI/HOX/+PGq1GqfTya5du2hqaqKyshKr1Uoul+Ojjz6is7OT4uLiJcUMYawai8VYtWoVu3fvXlD2qnDn6erqYnBw8Kbv39/ff1fKH5daYH/zm9/IC342myUejxMMBgkGg7K/U1RhPUgLrFD1xThVUcotgldhqqpSqW77dJKbZXR0dElB5d133wWgubmZysrKRX+joKCwmJKSEjZv3szk5CQ9PT0cPHgQtVpNTU0NVqsVnU4nvRlu1OaZSqUYGRnhvffeY//+/QBs2rSJ3bt3Sx8xj8fDRx99xMDAAK+++io2m43du3fLdSKZTDI5OclLL71ER0cH8XicPXv20NDQQFFREYlEgrNnz/L++++zf/9+ZmdnycvLo6GhAb1ej8fj4ZVXXuH06dO43W5aW1tpa2uTjz83N0dfXx/vvPMOx48fJxgM8nd/93fU19cviGWy2SyRSISuri5mZmbkdaWwsJBEIsHHH3/MG2+8wZEjR7Db7axfv17GQ7FYjJMnT3L48GFOnjxJfX097e3tbNmyBaPRSDAYZHx8nJMnT3L58uVl473R0VFeeeUV+vr6sNls7Nu3j+rqaim8dHZ28v7773PmzBlMJhO1tbVs3LhxUayUTCYZGxtDpVKRSqV4+OGHqampobS0FKPRuEA8Eomu6/F6vQwMDOB2uyksLGTHjh1KTKbEWov49re/LUWN+YmkbDYrK6NEtbfZbH7gE0nLIeJUUX0RDAZlDDv/3+LnbogYAsXD7B4QM3K5nDS4mf+7+UJGZ2cnQ0ND0mPD5XIt+ViBQACfz8cTTzxBRUWFzHCIKoabPZaGhgaeeuopKioq0Ol0eDweZmZm+OCDDzh37hzd3d3s2rWLr33ta6xatQqbzUY8HiebzZLJZDh27Bj9/f2sWrVKLlqhUAi3241er2fNmjU8/PDDbNu2TY64zGQymEwmwuEwb775Jn19fXR1dUmTn/kkEgkGBwfZtm0bzz77LJWVlbhcLsxmMyUlJYyOjsrxtzU1NWzatGnRa7127RonT54kmUxSVVXFunXrFpWyKtxZXnzxxS/0N3c7YwD/Walx8OBB2Xqi0+lkP7Xf78fhcGCz2TAYDFgslvv6+yZ6qcVPOByWfdnZbFZmF4EVI2IIfvKTn/CTn/xk0e9FefXzzz+vlDIqKNwklZWV7Nq1i7NnzzI1NcXx48eJRqM0NjZSV1dHSUkJLpdrgeeQWq1Go9Es8poQiYxz587h8Xj44z/+Y3bt2kV7e7sUiSORCJWVlbz99tu88cYbvPfeezidTlpaWmRV6ZkzZzhz5gzZbJbNmzfz+OOPy018JpPB4XCQyWRky25HRwdlZWXE43GGhoY4e/YsXq+XlpYW/uRP/oTm5mbZoioSJIFAgAsXLnD27Fk6OjowmUwLWkVEm0ZpaSnr1q3j4Ycfll4fIh6KRCK8+eabDA4OLoiHhJjR0dFBLpfjm9/8Jps3b6a6uhqtVkssFmNycpJIJML4+PiyYsbs7CyZTIba2lpaW1vZu3cvpaWlMmFWWFiIXq/nn//5nxkeHqarq4vVq1cvEhkSiQS9vb3s2rWLHTt20NLSQn5+PiaTCZ1Ox9jYGCaTiUuXLrFu3TrpiTSfyclJTp8+jd/vZ/Xq1ezcuXNBNYuCEmstJ2qIPYbw2gsGg/j9fnlNMRqNCzz1HmSEUXAul8Pn8xEOh6UHhmj1TaVSqFQq1Gr1XfEsux7Fw2yFixlCAfP7/YtEBWGGNzk5yZEjR+ju7sZms9HS0rIoKyjQ6/UUFhayfft2KioqFtx2M2KGXq+nvLycdevWsW3bNvl7m83G5s2bGRkZkRUR9fX17N27F4PBIL0DHnroIXp6enjvvfdk7+f8x3a5XDzyyCOUl5ezefNmqqqqFiima9euZXp6muPHjzMzM8PVq1fZvHnzsu+d8P4QxwDgcrmoqanB6XTS09PD8PAwiURigQlYIpFgYmKCrq4ubDYbVVVVVFZWKpNQ7jI/+MEPeOqppxb9fteuXQD8zd/8DX/0R3+04LaVVk4mju/QoUOy8kC0VUSjUQKBACaTCavVisPhuO/6OzOZDJFIRIoXiURCZkxEhYY45+90z6WCgsKdp7CwkA0bNrBz5046OjqYnJzk2LFjXLlyhZqaGqqrqykqKqKoqEiOu3a5XLIlYX4lajwe58yZM/T392Oz2dizZw8PPfTQourTiooKgsEgFy9epKuri3Xr1hGNRjGZTExMTPDxxx8zMTHB+vXr2bt3Lxs2bFjgi6HRaNDpdHJilcDv99PX18f4+DgFBQVs27aNXbt2LXr+/Px8RkZGmJ2d5cMPP6Szs5PKyspFYobX66WoqIi9e/fS0tKyoBVmfjw0NzfHwMAAW7ZsIZfLEY1GuXr1KjMzM5SXl/Pwww/T0tKy4L0qLCxkZmaGsbExLly4sORnY7FY2LZtGzabjdbWVtasWbPgGITg/vLLL+P1ehkZGZFTY+aTzWYJBALU1dVJ77H5x1JTU0NlZSWDg4PS40S0qwgmJiakwFRRUcHq1auVNgEl1rppUUPEXJlMBrVaTSqVIhwOL/AxMxqN2O12LBbLAydqzPfCEBUZoVBIjllNpVILzILvlmfZ9SgeZveAmJFIJLh06dIigybRwzQ+Ps7Vq1c5c+YMkUiEVatWsWvXrkWjXAVlZWW0t7d/4YyvXq9n9erVi4QQrVZLYWGhzAqIlo75IoIwnXI6naRSKWZmZha8rtLSUvbs2cOWLVtksOD3+xdcUMLh8IJ/T01NLXIxF8e51DGI22pra9m6dSsffvgh4+PjTE1NyfLMdDrN7OwsExMTeL1e9uzZQ2Nj46LHUbjz3KiEsb6+np07d94Tr+WZZ54BPq3UEH3eQv0OhUJyEcnLy8PhcMgJKPeyiBEOh6VwI5zsxUKZyWTI5XJotVpFxFBQeIAwGAxUVlbyF3/xF3R2dnL27Fn6+/vx+/309vbS398v76vT6SgtLWX16tU88sgjNDQ0UFpailarld5Zly9fZnp6murqamw2G5lMhpmZmUUxlMlkor6+nqGhIdxuN9PT01RUVDAzM0NnZyeRSITS0lI2bNiw6Nqbn5/P5s2bqaysRKvVyuv08PAwfX19xGIxioqKWL169ZJitF6vlybmojXm+mMUbcMVFRW0trYu2rgbjUby8vLQarVyapvIqgaDQbxeL0ajkVWrVmG32xe1H+t0OpqbmxfFc/Nf44YNG2hoaJAbwHA4TCQSWSBSiKlS8Xgcv98vK+quf73V1dWyTeb6YykvL2fbtm2MjY0xOjrKpUuX2LRpE3a7XU65m5qaoq+vj7KyMqqqqnA4HMp0OSXW+twx16FDh6SfhvhuCVHSbDbLSR1i4tz9PjZYvF4Rk8XjcXmOixHKwsZApVKtGBFDoHiY3QNiRiAQ4PXXX8duty+6LZ1OEwqF8Pv9mM1m2tra2L59O+vXr18wcUOUAqlUKmw2GyUlJV945rJOp6OiooL8/PwlbxPzy/Py8hYpm2q1Wo5IEheQ+UKEGHMWiUQYGxtjeHgYr9e7YGEMBAKMjIwQCoWwWCyEQqElF05xDFardZEAoVKpKC8vZ8uWLZw+fZrx8XEuXbokhZhUKsXAwADXrl1Dq9Xy0EMP0djYqAgZCrcFkd04ePCg7FE0GAwyaBQZKr1ej9FoJD8//57qExZ936FQiEgkIs2jxKhVUZmh0WhWXDuJgoLC7UeMS62vr8fhcFBfXy+nZgQCATwej0wwjI+P09/fz+joKENDQzzyyCM8/vjjFBUVoVariUajhEIhwuEwoVCId999l46OjiWf99q1a4yNjRGNRmW7Xzabxefz0dvbSzQaXTZm0mq1sudepVLJTbXP52NgYIBYLPaZ8ZZKpZJxkpgYEgwGF8VUlZWVlJSULClkq1QqOfElFovh9XpJp9NEIhFmZmbkMVRWVi5ZwaDVaikvL1/SM0zEUQaDgVgsxszMDIODg0xPTy9KIImRryLbvdSoV71eT01NDUVFRUu+H2VlZWzZsoXDhw8zMTHBuXPnWL16NXa7nVQqxfDwMGNjY8Tjcdrb21m1apUiZCh8KVFDJJKEJ4Q4d4LBoGzBt1gsaDSa+3IEcDQalaOnxch7EZvNb/NdCabrn4XiYXYPiBnZbBav10sikVjydpPJRFNTE6tWraKtrY0tW7YsUr2NRqNUsIVg8EWVRrVajcPhuGFpnxA2llo8l1uAotEoU1NTnD17lqtXrzIwMEAikUCtVsvXE4vF8Hg8xONxaRq11MKpVqsxmUzLtoUUFRWxbt06XC6XnHG/adMm8vLyZGZnYmKCvLy8z2zbUVC41aLGa6+9JvsRM5mMVMyNRiNWq1WOd3W5XCu6TC6bzRKNRolEIrL6QrwWUeopzt8nnnhC+QIoKDzggoaoQhCVAsIceGZmhunpaUZHR+nr66O/v5+enh7effddkskkZWVl7NixA61Wi9/vl6Z/fr+fEydOLNumF4vF8Pl8mM1mOekEPjWrDAQCZDIZGTMtG+Bdt8GJRCLMzs6SSqWwWCwUFRUtuQkSsZTFYpHXyuvjPK1WS0FBwaKxsUshpg1kMhni8TiBQIB0Oo3T6aSgoGDZY7DZbMu+vng8zuzsLBcvXqSnp4f+/n5ZTTs/xhTX+c8S2UVl7lKJOfi0CqSpqYmysjImJye5cOECzzzzDMXFxaRSKXp6ehgbG0Ov19Pe3k5tba1y0ijckpjr4MGDsjpUpVLJlte5uTl5fohWFLvdfk+3m4uEWSQSIRKJyIpglUpFNBqVI1bF9eJeqJJVPMzuATHD6XTyX/7Lf6G6unrZBaC8vFwuuGazedGi5XA4qKmpuamxNXeTkZER3nnnHQ4cOEA8HqesrIzGxkYKCgqkyZOozBgYGLhhYCSqQJbC4XBQV1dHY2Mj3d3dnD17lm9/+9sUFhYSjUa5cOECs7Oz1NfXU1FRsewCrKBwqxHj60TWQK1Wy9Jhv9+PRqORFVl5eXkrTtQQpsRCuBBqv9iYBAIBtFot6XSaffv2KR+4goLCshtgMVK1rKyMlpYW9u7dy8jICKdOneJf/uVf6Orq4vXXX2ft2rVYrVbpsq/VarFYLJSVlS27yRaG5NlslpaWFux2u0yEFBUVMT09/aWO32AwYLfbl0zgiGzvrWod1Ov1SyaqRGXuZ12vrzeYF4yPj/PBBx+wf/9+QqEQpaWlNDU1UVhYuMB40+fzLVv9cv37sVxVsMFgoKioiM2bN3P8+HGuXLkizU9TqRRdXV243W7Ky8tZs2YN5eXlygmicEtFjUOHDpHL5VCpVGSzWVKpFKlUCoPBQCQSwePxyMlzDofjnpqAMt+rLJVKEYvFZHtNJpMhnU6TSqWkqbLS6qtwS8UMg8FAa2srTU1NS95uNptvqNqLUsGV3CaRy+Xo7+/njTfeYHR0lO3bt/Od73yHkpISLBaLVELdbjc2m41jx44tWZFxfaCwXAWJuH3Tpk14vV6uXbvGxMQEDocDj8fD8PAwRqORrVu34nQ6lXJGhbu2wP7+978nlUpJkXJ+f6fIIIhWFDF68G4hSrsTiQTpdFoenzCVSqfTADz++OPKB6ygoLBAUBATSuZvvtVqNXq9Hr1eLzf+4r+//e1vGRgY4PLly8RiMYqLi2Ubg9VqpaamhmeeeYaysrIbHkdhYaGsajWbzRQWFjI3NyePcTlBQHj9iFaT+VNWwuEwbrebioqKRRufdDotfcOE4PBlevPtdjsVFRXSyFz8hMNhZmdn5bX3+rhLTCZYisHBQd588016enrYsGEDzz77rPTfEDFZLpdjcnKSAwcOEAqFPvMYP+v1iQTUhg0bGB4e5sSJE/T29lJcXIzNZuPq1avEYjHWrl1LUVHRfWWKrbAyEO0nBw4cQKVSSaFPjCVVq9XE43F8Ph8Oh0MmklayqCGEC+FXJmKxWCwmPdpEpbtKpbqr41UV7mMxQ3g/zPfAuB+DmWAwyMjICB0dHTgcDtra2vj617++YMKIEHf6+/vRarVLOmYvFWQsh8lkYsOGDfT29tLZ2cnVq1dlqdXMzAxr1qxh+/btN1XiqaBwuxCO4gcOHECr1ZLNZsnlcjJzkEgkMBqNBINBQqEQdrv9jldqhMNh2XPp8/mIxWJoNBpZlSFQ2kkUFBTmr9Fzc3NMT0/j8XgoLS2lqKhoSU+u+dhsNioqKrBarbIVIp1OS08hMV5Rp9PR1tZGU1PT5xIKrFYr5eXlDA0NEYvFCAQCS1ZYpNNpxsfHSafTUgCZb8oZCoWYmpqiuLh40YYnm80yPT0tvSZEf/4XxWw243K50Gg0aLVabDYbGo2GcDjMzMzMkoJFJpPB4/Es8uoQTE9Pc/78eQBaWlr4+te/Tn5+/oLqilAoRCAQuCUJH4PBQEtLC52dnZw4cYJLly6Rn59PTU0NY2NjWK1WNm/ejMPhuO9NGRXuHs8++6z898GDBzGZTFJ0jUaj6PV6ksmk9KlxOp3k5eWtKFFDiBiidSSZTKJSqaSxvHg9YpiEEpsp3FYx435lvqeFCGg8Hg+pVIr8/HwcDsciISOVSjE1NUV3dzfRaPQzzXhSqRSzs7OfmSnQarU0NDRQXV2NWq3mk08+YWZmBqPRiFqtprq6mrVr1yoZAIUVtcCK9pN0Oo1er5c9jsK4KRwOS+O32y3ECbMs0VYi+tRFFYZok9FqtXzta19TPkQFBYUFYsDw8DAffPABJ06cYOvWrezYsYPt27djMBiW3bDGYjFmZ2dJJpOLfMA0Gg0FBQUMDw8zPDzM5OQkpaWli6rWcrmc3IgLc3QhAhcUFLB69WrOnz+P2+2mu7ubtra2Ba0VyWSSubk53nnnHdLpNDU1NezcuZPCwkLWrl3L+fPnCQQCjI2N0dzcvMgQPZ1O43a78fv9GAwGVq1adVMVJDcrxpSUlGC1WvH5fLjdbmKxGOl0ekHcFI/H6e7uZmxsbMnHSSQShEIhCgsLKSgowOl0Lvj7dDrN6OgoJ0+elF4an5VAuhE6nY7a2loaGxspLCyko6MDrVaLx+PB7/fT3Nwsx8QqKNwJ5vtqiPYTUbERjUYxm81EIhE56vNuixrxeFyKF6ICY/50EtGGJ9qXlxq/q6CgiBmfY9EqKyvD6XQuMqESRjzCBFEsmrOzs/T393PlyhWi0Sh2u12ODbp+okkul5P9bsuh0WgoLCyktraW2tpa+vv7cbvd5OfnU11dTWNj46LFW0FhpSyur776KrFYTIoFwp9CGGyKiT/CuOpWixjiJxaLSfM5IaiIc1aj0Si+GAoKCksiJnqk02m6urpkoO1yuaitrV3kASE2Eb29vbzzzjvMzs5it9upr6+XbQ96vZ6NGzfKdtGLFy/icDhYt26dbL0QJnjnz5/n2LFjWCwWtmzZwiOPPAJ82nIiPDQmJyc5deoUlZWVCxIsU1NTXLhwgcOHD2Oz2dDpdCSTSUpKStiwYQOvv/46U1NTnD59mra2tgWG5LlcjnA4TF9fH9PT01gsFpqbm2+ZmKHT6XA4HJSVlTE1NSWntrhcLlwu14KY6tSpU/T09CwdvGq16HQ6gsEgwWCQeDy+4D30+/1cuXKFjz76iFAohMlkkr346XT6M1uBl0OM6W1tbeXjjz/m/PnzssS/rKyM6urqe9qAUeHej7vE91rEWaIqVZid22w26fVzpxAJJb/fTzwelwkv0eabTCbl9VOJyRQUMeMWoVarcTqdWK1W2UpTVFREQUEBoVCIoaEhOjo6sFgsZDIZAoEAAwMDjI6O4nK5MBqNZDIZfD4fIyMj8nE+T1ZApVJhMBioqqqitbWVt99+m8nJSUpKSti9eze1tbWKkKGwYvnWt74FwCuvvLIgaBQiQigUQqPR4HA4CIfD2Gy2L53RCofDso1EZADmTykRrtjZbFYu/goKCgrLbZZLS0upr6+ntrZWep1kbpcAACAASURBVCVotVrWrl0rjSbFei+mdJw7d4533nmHaDRKY2MjO3fulNc2s9nMtm3bcLvdjI2NceLECTl+UUx1S6VSXLt2jaNHj3LkyBFaWlqoq6uTx+V0Olm1ahUNDQ2MjY3x4YcfUlFRQX19PTabjUQiQXd3N0ePHuXy5cusW7dOTgyx2+2sXr2ahoYGenp6OH36NE1NTczMzFBYWCiF59HRUc6ePYvf76exsZGmpiaKiopuWXxlNptpbW1lamqK/v5+PvzwQyKRCLW1tWg0GoLBIMPDw/T39+Pz+ZZ8HKfTSV1dHb29vfT39/PJJ59QWlqKWq0mHA4zOjrKlStXyGQyWK1W6QMyMDAgPU6uTzTdDGVlZWzcuJETJ07IMbdCyFCqMhRWQtz16quvypYuYaAZCATk6PlAICATSberultUl8XjccLhMLlcDo/HQzQalbFgMplErVajUql47LHHlA9Q4c6JGWKTbTKZSKfTX7o3UKPRoNfr5XQPYU613AJoNpsXlHiK3lOj0YjFYkGr1S55TPOfR6/XL9tDKQy2xMkIn2ZTamtr2blzJxcvXuTSpUtks1mKiopIJpN4vV7cbjdtbW0899xzRCIRhoaGmJyc5NixYySTSRobG+V4txsdw/UL55YtWzh27BjT09PYbDaam5upqqpSvr0KK54//uM/BuDXv/41uVwOk8lEKBRCpVLJuenhcBi73Y7BYJBO3J/HEFj0XQYCAbxe7wJHbFFFJcYxP/3008qHoqCgcFObbpvNxqZNm4jH4xw6dIipqSlef/11PvzwQwoLCyktLcVms0kTvomJCdlC2tLSwp49e/j6178u20j0ej1tbW3MzMwwPDzM+Pg4R44coa+vj/LyckwmE6lUisuXLzM5OYnNZmPLli3U19fL4zKbzVRVVfG1r32Njz76iCtXrvDyyy9TVVVFWVkZkUiEwcFBent7qayslK0xVqsVrVZLUVERjz76KEajkc7OTg4ePEhlZSVVVVUYjUY8Hg9DQ0OMjIxQVVXF7t27qaurW7BR1+l0WCwWjEbjshNAhNmoyWSS9xPXdbPZzCOPPEIoFMLtdvP222/T3d1NbW0tNptNxlSVlZXU1dXh9XoxmUwLnqumpoYnnniCVCrF8PAw//7v/059fb0UQ8bHx6mqquIb3/gGDoeD3t5e3G437777Lh6Ph1WrVsnPRMRkNxPPFhcXs2HDBvLz83G73czOzvLkk0/S3NysnDQKK07UEOecVquVFUzJZBKn0ynHudpstls2uUh4d0SjUfx+v0woCR8PUYkhRIwnn3xS+cAU7ryYIVowGhsbyWQyX7r/ymQyUVxcTFNTE5WVlZhMpiU3+Vqtlrq6Olwul3TFFiJFXl4eVVVVxONx8vLyFpX5CRGhpKSENWvWUFZWtmy/vsvloqmpacHrUqlUrF69mu9+97u4XC4mJiYYHh5mbGxMGmrt2rWL9vZ2GhoaCAaDnDlzhu7ubjmJpLq6GofDQVVVFcFg8DOPYT5FRUW0tLRIA66CggJaWlrkrHsFhXuB7373uwC8/PLLZDIZGZSKKopAIIDJZCIYDErDKqvV+pmihqi4EKNgvV4vmUyGcDgssxE6nQ6dTqdUYigoKHwhQaOqqoq9e/dSWFhIT08PV69eZXZ2lqmpKennoNVqMRgMGAwGGhoaqK2tZePGjdL3an684nK52LZtG2azmfPnzzMxMcHMzIyMJywWC2q1mo0bN9LU1MSuXbsWrPfCkPOxxx6juLiYsrIyRkZGGBoaYnBwELvdjlarZcuWLezevZu2tjZZmQGfThZ57LHHqKiooKGhgYGBATweDzMzMzKbazQa2bNnD+vXr2fr1q0UFhYuiMtcLhetra3U1dXhdDqXDi61WhwOh2yJnW/OqdfraWlpIZPJSFHF6/Xi8/mkQLRq1Sr27t3LlStXyOVylJeXL3iuuro6nn76abLZLENDQ/j9fk6fPi2NVtvb22lra6OxsZGSkhLOnTvH+fPnmZubY3x8nKKiIgoLC28qLpyPxWKhvLycmpoapqen0el0bNq0iYaGBuWEUViRosbLL79MLpcjGAxKL0DRfhsOh+XkSYfD8YWri5LJ5AKPslgsRiqVIpPJyN+LytxMJqMklhTurphhNBppb2+nsLCQbDb7pScTuFwu1q1bh16vp7y8XDpeX4/ZbGbv3r1Eo1HKy8vloiNEjmw2S2NjIzU1NYsWJCF4tLW1odfraW5upri4eMnjqa+v56mnnqKwsHDBfYqKiti6dSs6nY7R0VHcbjeJRAKr1UppaSmbNm2Si+HDDz9MUVERtbW1AFRUVGC326mrq5PH+1nHcL0QI7IFBQUFNDc3U15evsDs60HgwoULAKxbt045a+9hvve97wHw0ksvodPpZDWWGOkqeigjkQgWi0VmDuaLGtFolGAwKEeter1eotGo9KARfjYGg0ERMRQUFL4UJpOJqqoqnE6nbLmYnJzE4/Hg9XpJJBIYDAYcDgf5+fmUlZVRV1dHU1PTkiXcGo2GyspKXC4XZWVljI6OMjo6ytzcnBQA8vPzqaqqoqGhgdLS0kVJI51OR11dnUxw9PT0MDMzQygUkmaYIi7Jz89f0JIq/tZut1NSUiIrFkQ7h91uX+DXVV1dvWSc9Mwzz1BYWLigauT6962srIzHH38ck8lEfX297NPXaDTk5+ezbt06OaZ2enpaHn9RURFVVVVs3LiRgoICDAYDNpttwXPl5eWxdu1aYrEYY2NjTE5OMjc3h9FolK+9urpaZqDz8/MpLy8nkUhQUlIiJ9PMjwsLCgpu+H0Qgo9Wq8XpdFJcXExtbe0Np9zcTi5dugTApk2blBNWYdm469VXX5VVEel0mlAoJP1kzGazTCbZ7fabNmhPJBJEo1EikQgej0f6osXjcVmlIUZDK9WxCitKzHjooYdob28nl8t9aTEjLy9PKvwiIyDKkERFhZjx/cQTT5DNZhfMdNfr9TQ2NlJVVUUqlZKllNcvPi6Xi82bN9Pa2orBYFjWpKm5uZmKigp5LPKN+v+DjG3bttHe3i7noos2F7PZjFarRaPRUFJSgtPppKWlBbfbLS8atbW1NDQ0kEqlPvMYBNlslsnJSS5cuIDf76e8vJxt27Y9kONYPR6P/L4o3Pt8//vfB2D//v0YjUb0ej16vZ5sNovH4yEej+P3+/H5fNhsNpxOJ3q9XooXfr9fihmiCiOTycjzcP74MgUFBYUvg0qlwmq1UldXR3l5OalUSl5zcrncgmBdiLSfVbWq1WqxWq20trbS1NREIpGQ3kLCNFlcE+e3VojnFF4PRqORpqYmamtrUalUss1WHIe4Hi6F0+nEYrHQ0NCwwKhcPL/BYFi2hWS5OGk+ZrOZ6upqCgsLZSx3/XvidDppbW2lvr5eVoek02kpZpjNZhobGyktLUWj0Sx6LoPBQHt7O2vXriWVSklfJK1Wi9lslu28LpeL9vZ2Vq9eTS6Xk69PGK2LuPBmKo39fj9DQ0OMj4/jcDjYvn07LpfrrnqYiWkty1XJKCjAf1Zq7N+/H51OJ1s9RFuImD4XCARkpcZyBu1iCkk0GsXn8y2oykin08TjcbknUqlUPPPMM8oHoLByxAyxqN8qhHIXCARIJpOLFqq6ujo5jnSpC7XIwN5oERJK+o2EAKPRuOzirNFosFqtN3z9orQ9k8nIdpNMJsOPf/zjG3pdZLNZOWM5Fotx5coV3nvvPVKplCxdfdDEjPmj2RSvkPuL5557DvjUU2N+X3UoFJLjXU0mE263W24cxOIpAuRkMkk2m0WtViuVGAoKCrcFtVp90xvem0H4SdysAZ8YLR0IBAgGg4tuLy4upqSk5LY9/83GSZ8nNpt/DIODgxw5coSxsTG++tWvsmbNGhkHLvcYKpVKeqndTPy31P2EZ8Zy5HI5GZNls1muXr3K4cOHmZqaoq2tjU2bNt31StmRkRHgUx8RBYWbjbt+85vfSNFUq9XKkc5msxm/34/f78dut5OXlycrZEOhEOFwWIoeYtx9LBYjl8uRSCRQqVTyMRURQ2FFihm3Gp/PR1dXF11dXYRCoQW3OZ1Ovve9793REUK3kng8TkdHB8eOHSOdTvOXf/mXNxQyRDZ6dnaWyclJjh8/TkdHBzU1NbS1tVFXV3dX50TfDf7whz8An5a2KmLG/Ynw1HjxxReloW8ul5NeGFqtVo7zyuVyUu1PJBILFmcFBQWF+5F0Os3IyAg9PT309fUtun379u23bHzq3UDEO5cuXbqpFtw7gdic+Xw+pqenmZub4+TJkxw9ehSj0UhjYyNr16696zHqwYMHAdi9e7dyoijcNN/5zneAT6fOCZN0Yc6eTCalYXs0GmVqagr4z5Gvwq9MVMam02lsNhtarVZWgCgoPDBiRigUYnh4mDNnzuDxeMhkMszNzRGNRikrK+OJJ55YMQvb7UaMZOvs7OTChQsMDQ0xNzdHYWEhX//619m6dasc8/og8X//7/8FULLuDwA/+MEPSCaTvPTSSwCyGkOUcmcyGVQqlSwl/ta3vqWMw1NQULjvyWQyTE9P093dzSeffCLjJ5/PRzKZRK/X8/jjjytv1C0km80SCATo7Ozko48+Ynh4mKmpKXK5HLt27WLr1q2UlZUt245zJ9i/f79sw923b5/yoSl8bsTUuf/4j//AYDDIavhYLEY0GmVmZkbGX+l0mlQqJS0ARNubWq1WqjAUHlwxw+l0sm7dOoxGo3TWPXz4sKxOEN4UdwIxivWzJiiIjRXwpcfSLrdwDg8P09HRgV6vZ82aNaxfv549e/ZQUVHxwAkZ+/fvp7+/H4Dnn39eOWPvY4QbdiQSYdOmTQQCAc6dO4darZbnmmjDqqmpoaioiKmpKWKxGBaLRU4BUFBQULjvgjWtltraWnK5nKzA6Ozs5IMPPsDj8SyqbL0TG/0bXW+z2Sy5XE725t+LYkYikWB0dJTTp09jMBiorKykvr6er371qzQ0NNzQ++x28/d///cA/PCHP/zSHnYKDzZ/+qd/CnxaISu+/4JMJiOtAMREEq1Wi0qlkh5oCgoPrJiRl5dHc3MzlZWVpNNpPB4PV65cYXJy8o4eRy6XIxQKyT78pZR2cR9R2u50Om+p6ZMwoxImVS6Xi5qaGpqamqiurn7g2ku6urr467/+a7lQKy0m9yepVAqfz0cgECAcDstsQDqdprGxkVQqxfDwMLlcjoqKCunEPTs7SyAQwOVykZeXh9PpxGQyYbVaFVFDQUHhvkKn01FVVUV+fj5r166Vv+vo6GBmZuaOHouYYDDf+Hyp+4TDYdLpNGaz+Z6soFOr1ZhMJqqrq9m5cycul4vS0lJqampYs2bNDb06bjd/+Zd/KZM9P/3pT5WTROFLn9ehUIjt27cTDAb58MMPFySTRKUsfJp82rNnD06nUxqG3k0TXAVFzLir6PV6aS6Ty+UwGAxYLBZpoHk9brebiYkJTCYT+fn5FBUVLbqPGPM4MTEhx2e5XC50Oh2pVIqJiQnC4TDZbJbKykpisRgTExO43W4KCgpoaGggLy9Pjoz0eDwEg0H8fj+zs7NEo1HgP0eu2u12iouLMRgMXyr7IEamlZWV8fDDDy9wNL/b6v+dZmxsjL/4i7/A4/FQX1/Pz372M+Vsvc8QU37C4TA+nw+/308wGJT+GMlkUs5D/9u//Vvg00odYcSXzWalEVU4HCYYDGK1WjGZTLhcLmw2myJqKCgo3BeIqW4mk0lmTAsKCmRJ+FJx0MDAAOl0GqvVSnl5+aKESC6XIxaL4fF4mJubIz8/X8Zj8KmnmdvtJhaLkZeXR35+PhMTE8zMzBAOh1mzZg2FhYVYrVay2SzBYFBWifh8PjweD8lkEofDQWlpKRaLBZfLhcvluieqTMUklB07drB+/XppJKrX6++6T8b/+3//j1/84hcA/NM//ZOS7FH4wkSjUemDEY1GCQaD+Hw+aSg7NDS04P4VFRXo9XoGBwfl+Wyz2bBarXKKkILCAyVmzB9pBsjRYkIUEGWK4v/PnTvHr371K2pqavjKV77CE088segxQ6EQPT09vPTSSzgcDnbu3MnOnTvJy8sjEonw5ptvcvnyZeLxOH/+53/O+Pg4hw8fJhgMsn37dvLy8rDZbGQyGWZmZvjggw+4cuUKw8PDJBIJqU6azWaKi4tpamri8ccfp6Ki4ksp9fPdvx/kcsETJ07wzDPP4PF4cLlcvPbaa0r55H1EJpMhFAoRCATknPNAILBgNKGozhDGoAJh9PnSSy9JwVNUSsViMcLhMCaTiWQyKdtPzGbzA9eepaCgcP8xP0sqNtsiNhJTN8TtgUCAf/u3fyMYDLJmzRqee+65Rf5j6XSaqakpjh49ytGjR3n44Yd56KGHWL9+PQA9PT28/vrrjIyMsGXLFnbt2sUrr7zC8PAwer2eP/uzP8NkMmE2mwmFQly5coWPPvqI3t5eOaEuk8mg1+ux2WzU1NTw0EMPsXPnTux2+z0jaNzMFLs7RSAQ4L/9t/8mhYwf/vCH/OhHP1JODoUvJGKIiSSRSESOVp3vU5ZIJCgsLCQej2M0GuV+TbRgTU9P4/f7ZYWsTqfD4XDgcDgUUUPhwREzbmbTE4/H5fiw0dFRDh8+zPr162loaFjy7xKJBG63m+PHj1NYWEhlZSWbN2+Wt125coXjx4/j8/mor69nZmaGrq4urFar3BjlcjkmJyc5deoUb7zxhnTyLSoqwmKxkMlk8Hg8TE5O0tfXh0ajYefOnbS1tSnfqi/Im2++yc9//nOOHDkCgMvl4tixY7S2tipvzn0iYoTDYSKRCMFgkLm5OSKRiJxQIu4TDAZv6IYtejT3798vA/pYLEYqlSIej8s55yLQdjgciqeGgoLCfUs8HicYDGKz2dBoNMTjcU6cOMHs7CzJZHJJcz5RTXH16lXeeecdCgoKqK+vl7e73W4+/vhjLl26RCgUQqPRcO7cOQKBAFVVVfLanUgk6Ojo4OjRo3zwwQckk0nsdjv5+fkAhMNhRkdH6evrw+v1otFo2LFjh5Kk+ByMjY2xf/9+/s//+T/S8POHP/yhFDUUFG4WUREbiUQIBAIysSQqt5LJJKlUilQqJSeeXM/vfvc7mUzKZrOk02k5yjUWixGPx7FarVgsFkXUUFDEjJmZGYLB4BeahX4jYrEYFy9epKCggK9+9atUVFSwdu1anE4nGo2GkZER3n77bfr6+qirq+ORRx6hvr4ei8VCMpnk2rVrnDx5kuPHj/Paa69hMBhoaWlRssCfg8ceewyA8+fPywUa4NFHH+WVV15Rgp37AGFs6/f7icfjxONxWcoogmHhkv0nf/Inn+uxRaXGwYMHUalUJJNJkskk8XicZDJJQUGBFDhsNpss01bOUQUFhfuJSCTCzMzMbbu+TUxMcPnyZZqbmykoKKC2tpba2losFgvRaJQPP/yQTz75hGAwyGOPPcaaNWtk64PX66Wvr48DBw7w8ccfk0gkaGpqwm6335PGoHeK/fv38x//8R/4fD7Onj0rf+9yufj5z3+ujCRX+FxxmBinGgwGZVtJOByWFfKiEiMSiSyqir0eEavt379fTjQRXmcizrPZbJjNZoxGIw6H44Hz/VNQxAx58gmF73Y9fiKRoLm5mT179mCxWLDb7eTl5aHVakkmkyQSCaqqqti+fTv79u3D4XDIEqvVq1eTTqfp6uqir6+PkZERmQ1WMsA3h6jCmM///t//m5/85CfKm3OPk8vlpBeGyAJEIhGSySQ6nU5WQcXj8RsunDdCjO09cOAAuVyOVCqF1+uV5nNGo1FWfVgsFilsKOepgoLC/UAqlSISiSyYQHArSafT6PV6nnrqKSoqKrDZbDidToxGozT7NJlMtLa28uSTT8rED3ya6a2qqqKzs5NLly7R2dkpR8oqG5zlGR0dXRQjNTY28t577ykeGQo3fV0QFe7RaJRwOMz09DSpVGpBO38qlSIWi8kxrTeLENQOHDggx7bOTyil02mi0SiJREJ6aijnvMIDJWbkcjnS6fSSRqC3Ar1eT01NDS0tLbJHdD7V1dXs27cPvV5Pc3PzgvJLgPz8fFatWkVjYyNjY2PMzMwwNzdHSUmJcrLeJI8++ijwaWWG1+sF4L//9//O8ePHeeGFF5QF+x7F6/USDAYJBoNyQolY2GKxGFqtlkwm87kXzhvx7LPPAnDo0CHS6TThcJhoNIrFYiEej6NSqbDZbKTTaRKJBEajUanUUFBQuOcR1W23S8xwuVw0Nzezfv36Rd4bZrOZHTt20NraisPhoK2tjby8vIXBplbLmjVruHbtmjQRnV/arsCSMeijjz6Kz+fj3LlzAPT399Pe3s7//J//k//6X/+r8iYpLEkikZBeGMFgULbfplIp0uk0gPS0SafTXzqhJGIvIWqEQiHp4zM/ORwMBjGbzdjtduXcV3gwxIylFutbuVAbjUba2tqW3TDX1dVRVFQky+H7+vpIpVKyvx9genpazlqOxWJ4vV4KCwuVb9ZNMj/r8MYbb/Dzn/+cd999lyNHjtDe3s7Ro0cVz4x7CL/fj8/nw+fzyaqqZDJJNptdEGyLSorbxfz+8EOHDklvDmEurFaricfj6PV66auhGIUqKCjcD4jWvVtJaWkp7e3tstpiPiaTiT179hAOhwmHw8zOzjI9PS03TQDBYJBUKoVarSaTyciNVkFBgfKBLcNzzz0nM99jY2O89NJL0jPjRz/6EZcuXeJf//VflTdKQSImk/h8PsLhMIlEQsZi84UF4Xch/MduFULUeO2116ShqNlsltVbwlA3mUzKtl9F1FB4YMQMYTKVSqVu2WPq9Xpqa2sXZRkEKpWKXC7H6Ogo165dY2pqSm6KBFNTUwwODhKLxaQJznyxQ+Hm2bdvH/v27ePEiRM8/fTTeDwe9uzZowga9wCBQECWL4pFK5lMyvMolUrJ82M5Q6nbLWy89tpr8pxOpVKYTCaMRqMsvxRjoa1WqyJqKCgo3LOIkvFbmfzJz8+nrq5u2Y2HVqslEAjQ3d3NxMQEwWBQjrGHTzPFPT09uN3u2151ez9SVVXFT37yE370ox/x4x//mBdeeEGafyqChkIkEpGJJCFgRKNR6WeRyWSIxWJoNBpyuRzf/va3b+vxfPOb3wQ+TSYJLzNRBZvJZFCr1SSTScLhMGazGZPJdFu8ERUUMWNFkclk8Hq9hEKhW/fitVqcTueSI7dSqRT9/f2cOnWKixcv4vV6SaVS0jND4PP5iEajt62080Fk586dXLx4kWeffZZz587x7LPPcvbsWcUMdAUiyganpqakcVQ0GiWVSskRxkLMuN2L580urm+88QbRaFSWPRqNRux2uzz+eDyuGIUqKCjcs8RiMebm5m5p8sdsNuNyudBqF4aNwuD55MmTdHZ2cuXKFVn1Nj+2SiaThEIh6ZWk8MVwOBz84he/oK2tjeeff55f/OIXrFu3ThnP+oASCoXwer1SxIhEIvIcy2azMnlzK1pJvggimXTo0CE5+USMfjUajRiNRmKxmKySFb4aCgr3jZihVqulWUwul5Ml6zfi85RY6vX6RYtzOp1mbm6OU6dO8e///u8EAgEqKipoaWmhrq5ugXrY19eHz+dDp9Mp36ZbSFVVFb/85S955JFH6O/v58c//rEygmwFIaoZEokEc3Nz+P1+YrGYNNQUCxZw21tKPi/79u0D4J133pHll4lEAq1Wi9FoJJvNEo1GMRqN2Gw2RdRQUFBY8ej1eiwWixzLGo/Hb6pK9GbbdzUaDXq9ftH0kUgkwtDQEL/73e+4evUqmUyGDRs2UFdXR3l5ubyfqNabm5sjGAwqH9iXRLSZvPDCCzz//PN84xvfUDzGHhByuRzRaFR6kwlz9fk+FWq1Wrb33mjU/Z0WNcToVyFmaDQaXC6XrNQQJu2KqKGwIsWMXC4nSx/VajVGo3HJaQJiAdZqteTn52O321Gr1eTl5S1ZRXE9n8fVe6mxYOl0mqGhIbq7u+nv72f16tXs2rWLffv2yRnu8g3Uajl//rwyXuw20Nrays9//nO+//3v88ILL/DTn/5UWaxXgIghyocjkQh+v5/Z2Vm0Wq1cPEWrleidXKmIscBvvfUWfr8frVaL1WolHo+j0+mwWCwLjEINBsMi4VNBQUHhdiBKswF0Ot2y7R3ZbBaVSoXFYqGgoACtVovJZMLpdN7wepXNZqWYezMsFed4vV66u7u5fPky8XicDRs28K1vfYva2toFmxGfz0dPT49yDb2F/OIXv+CDDz5gcHCQ//W//peS8LnPEa0i4sftdsukkkggZbNZ+bMSYzAharz11lvSpF34Dmq1WjQajZyIIoQNs9ms7LEUVo6YEY1Geffdd/H7/eTl5fHII48scrwW9xP9VXl5eTIzarfbb6qnKhwOy7L3L0I6nWZycpLp6Wmy2SwbN25k27ZtrFu3btF9zWYzgUBggY+Gwq3jueee43/8j//B4OAg//RP/8Q//MM/KG/KXQqsRQuJyAaEw2FZASWM3eLx+F1vJ/m8PPHEE3JxFZNW0um0zB4IcVSn02G322UmQUFBQeF2MTAwwCeffIJOp2PNmjVs3Lhx0X3EtUmtVmO1WmUbrMFgWNQSu9zmaHp6Gp/P94WPMxgMcu3aNXw+HzU1NezevZtNmzYtMkI3GAxyZKPCrePv//7vZcLnZz/7mdKOex8ixquKOCwYDMoWd41Gg0ajkca6wIpPJM2Pu95++21ZDa/RaDCbzbLy12QyEYlEcLlc6HS6ZRPgCgp3VMyIRCK8/fbb9PT04HK5qKioYPXq1dIdOx6PMzs7i9vtBqC8vByz2SyVfNFTZTAYCIVC0txGLNi5XI5kMsm1a9e4ePEikUjkCx1nNpuVvfPLmYQKwWNkZAS3262IGbeRv/mbv+H555/n0KFDiphxF0QMMVZ1/rhVMdVHlCivBE+MgGUXTQAAIABJREFUW7W4Hj58WIozItuhVqsxGAyk02k5+cRgMKzIhbWrq+szy7iHhoY4efLkgt/Z7XbFZFdBYQXR29vLSy+9RCqV4qmnnqK2tlYKFMKnwu124/P5KCoqoqCgQFZvaDQajEYjZrNZ3ldMlRLXrEwmQzAYpLOzk9HR0S+1RghhOz8/n/r6+kVVJH6/n4GBASl6KNMLbh3PPfccf/VXf4XX6+WNN96Q008U7g8RIxaLEYlECAQChEIhGX8lEokFMVgul1txLb03w+OPPw7A73//e+BTvx9hWJpIJNDr9eRyOfR6vayQtVgsiqihcPfEDJVKhV6vJxAIMDU1RUdHB0ajkdraWgAmJibo7Oxkenoam81GS0vLop4ps9mM0+lkenqa8fFx5ubmsNlsqNVqUqkUXq+XgYEBuru7Fzhpf97jFGpnLpeTFxCRUchmswSDQT766CMuX74sjQ7T6bQs2TQajcq36xbxjW98g+eff57+/n7GxsZWbKvJe++9x9DQ0LK3nzx5cpG3Sl1dHXv37l1xryWRSBCPx4nFYgSDQQKBAMFgUAbEqVRKlgPeiwvoZ/Hkk08Cn3pqiNnsOp0OnU5HKBSSGVCTySTLv1dSpcaLL77Iz372s2Vv/8d//Ef+8R//ccHvfvzjHytCoYLCCkKj0aBSqRgaGuLSpUt0dXXR3NwsW+F6enoYGBggGo3S1ta2wJ8CPm2BdblcDA8PMzIywszMDMXFxZhMJhnXjIyMcOXKFcbHx7/wcarVapkZTiQSBAIBotEoer0e+DTx09vby7Fjx/B6vdL8T8RKqVRKaT35kjz77LO88MILHD9+/IEQM+6nWOuz4q94PC73H6ICXCRORRXGvdDSezM89dRTAPzhD38gk8nIdmWz2YxarcZkMkmjUFG5r1RqKNwVMcNoNLJ161ampqZ49913ef311xkdHaWpqQn4dI72hQsX8Hg8bN68md27d2Oz2RY8RmFhIWvXrpVTRn73u9+xatUqtFotfr+f/v5+hoaGKCgoYGJi4gsdp06nk+ZVmUyG06dPo1KpZKm53+9ndHSUS5cuEYlE2LBhAydPnmR8fJxTp04B0NjYqPR43SLmixcrWcwQfavL8fbbb/PRRx8t+N1Pf/rTFbXAijLGcDhMNBolHA4TCARIpVKy/Uso5aL38X5FeGq8//77slLDbDYTDAYX+GiIcuqlzITvBj/4wQ8+U8xY7m8UFBRW1rq3c+dOBgcH6ejoYP/+/WzYsAGbzUYsFqOjo4OOjg7MZjM7d+6kubl5URzT3NzMtWvXGB0d5fe//z3Xrl2jsrKScDjM5OQkfX195HI5bDbbF07+uFwuGhsbsdvtjI+P895775HJZCgoKABgfHyc/v5+ent7qa2tJZPJMDIywvnz5zGZTKhUKpnQUvhi1NTUADAyMvJAvN77IdZaCmFIHovFCIVCC+IvUQ0rpsPdb0kkwTe+8Q0paggz40gkgtPpRKVSYTQaicfjWK1WLBYLRqMRnU6ntP4qYsadFzNEv9e1a9fw+/10d3cDEAgE8Pv9rFu3jt27d7Nx48ZFlRnV1dU8+uij+P1+vF4vr7/+Oo2NjZhMJlKpFIFAAKfTyc6dO/F6vTgcjgXqnegtdTqdy2YEdDodDQ0NbNy4kb6+PmZmZjh58iRTU1OYzWai0SihUAibzUZzczMOh0M6CZ85c0Y69NbU1NzwuRRuPmDyer34/f4Ve4w7d+78zAyXmAF+/d+sBDKZDPF4XC6eYgGJRCILFlKdTidHnD4ofPWrX5WihjA4zWQyRCIRWS4t2lBMJhNms/muLqytra3U19czODh4U/evr69XWkwUFFagmPG1r32Na9eu0dvby5kzZ5icnJTtblNTUxiNRr7yla+wfft2uaEVmEwmduzYQTgcJhKJcOLECUZHR6msrCSXyxGJREgmk7S1tWEwGLhw4QIWi0VWVADSe8Plcsl24OvJz8+nra2NHTt20NvbS2dnJ/F4HKfTiU6nk73wdXV1NDU1cfnyZY4cOUJ/f79shSkuLr6p51JYGuGTsZLjIyXWWhoxGCEcDhMKhaQ/hmgnicVipNNpGVPcryLGcqLG+/8fe+cVG1d63v0/p/feWIbDNuwiVShKIkVJq5W0Wa1kebvXNhwYBpwAyUWAJAjiXCRI4AsnF4ETBPmcZBEbThwbu/HaK2/TciXtSpTEJpGU2MlhnV45feZM+S70nfcjxa4lVVbvD+ANZ86Z09/nPO/z/P+ffQYul4tYLEZaT/h8PhKJBFKpFMRiMXg8HuRy+ROZ1HA6nRvqBPn9fszMzKx6Vy4sLKQPtic1mcHj8VBcXIyTJ09Cq9Xi0qVLRI0XuN+3bbVaceLECTQ1NUGv168qFTObzTh9+jQCgQBGR0fh8XgwNjYGlUqF0tJStLW1obCwEFwuF/Pz89BqtdDpdGQ9fD4fxcXFqK6uRjabXbN3k7UJOnToEDgcDr744gt4PB5MTk5CKpVCq9WipqYGLS0tKC4uBpfLRSgUwsTEBKLRKEKhEKni2Oy3KFvjwIED+PTTTzE0NESsNZ80rFYrDh06hO7u7i19/9ChQ7BarY89iZHJZJBIJLC0tIRAIIBYLEZaplg1/Vwu98wMopslNb744gsAIC03Pp+POJ+wKtyP2/3klVde2XJ1xrN+XimUJxGFQoH6+np897vfxa1bt3Djxg2k02ki+ldVVYXGxkZSlaFQKFYFxIcOHSLPd4fDQWy0i4uLUVFRgerqauj1esjlcqTTaRQVFa1IJCgUClRWVqKgoAAmk2nN7RSLxSgrK8Nrr72G3t5e9PX1weVywe/3Qy6Xo7i4GHV1dWhuboZer4fRaEQmk4HL5UImk4Hf70cmk9nSb1HWprm5GQDQ29v7TOzv0xhrPQjbrstWwsZiMaKPsdxhiNW5eVbHaTbuAu63F2UyGdLSFggEUFBQQFpRstksRCIRaQF+Evj444/R2dm57ucXL17E+Pj4iv+dOnUK3/3ud+mD7UlNZhQUFEAoFKKsrAwqlQpqtRp+vx+JRALAfT0MnU6Huro6aDSaFTMELFKpFOXl5Th79iz27t1LXr6kUimMRiOqqqogl8uRyWSIRofFYiEuKGKxGG1tbaiqqkIul4NGo1lzW/l8PiwWC5k18Hq9iEaj4PP5UKvVKCkpWfFbZ86cQVNTE8LhMFQqFYqLi7f8W5SvBgKBAF//+te3PMB+/etfX/Maf1QDKassH4/H4ff7EQgEkEqlVvQxZ7PZZ64SYzOOHTtGBlY2+GAYBjKZjMyiJBIJiMViiMXix9J+8rWvfW3LyQzaYkKhPIHBGY8HlUqFAwcOEGHNeDyOTCYDHo8HpVKJ0tJSVFZWkmB+OVwuF3q9Hi0tLZBKpSSGSafTMBgMKCkpgcViAY/Hg1qtRllZGUpLS1dob1gsFpw9exZLS0uorKxcczu5XC7kcjn2798PnU4Hq9WKUCiEfD4PsViMoqIimM1mlJaWQiAQgMvlQiqVkooNvV4PiUSypd+iUJ62WOtB2AkkVjg3FAohFAohnU6T2KGgoIAIe34V9DB2CrZN6PPPPyc6hdlsllQOCwQCojXypCQ11Go1fvGLX6z7eV9fH/r6+lb87/XXX6cne7v5hXw+n9/oC6xqLis2s16SgvU236pORDabRTqdJuKZ7Hq4XC4EAgE4HM6662JdSzKZDPFTZkWo+Hw+OBwO+Q67bTweD+l0GqFQCGNjY+BwONDr9SgvL1+3YoJVCmazp8FgEDMzMxCJRGSAFgqF5LeWb8vy32SPHRWreXjOnDmDTz/9FD/84Q/xgx/84IndzuHhYTQ2Nm7pu/fu3UNDQ8Mj3b58Pk+qByKRCAKBAHw+H5LJJPk/e0++8cYb9MLbAp2dnSgoKCAzBAqFgvShL28/EYlEjzSpodVqEQgENvxOZWUlpqam6EmkUL4EuxUnLX9mswE72zfPxjwCgWDD9bEVY8tdD9hYiRUZZYUF2QR2NBqFzWZDQUEBVCoV9Ho9pFLphtWlrAuc1+vF1NQU+Hw+TCYTioqKIJFIyEsFG1Oxx4rH40EgEJD/53I58Hg8Wsm6Da5fv46Ojg5yvTwLPOmx1lrvPOxzIhqNIhwOw+/3E7FPhmFW3PN0Emlzrl69Sio1+Hw+ib94PB4RZ2fb/h9XUiMYDKK+vh4ul2tL3zeZTBgZGYFaraYneBtsGlmHw2EsLi4iFoshl8utvRIej1QwsBcNn88Hj8dbd5DlcrmkWmLbGZj/V+Gx2WD34ItDJBLB2NgY3n77bSiVSpw8eZL0ai5/4LCD+vKkRCwWg8PhwH/913+RZbVaLYRCIdmetaAD8rOF1WpFRUXFhkrbwH1dg0dd9shmspeWluDxeBAOhxGPxxGPx0lPH01ibB92tqCzs5O4n/B4PGQyGaK8nUwmIRQKIZPJHpn7CatwvxEnT56kJ5BC+ZLsVpzExjsCgeChZ5bZGGYjuFwuiVV8Ph9GR0dXxEknTpzYME5ikyupVAoLCwsr4iSTybTiRYJ1inuY7aRQnoZYazmszhar6RcKheDz+ZBIJEiSkk00FhQU0Fn5bXDixIkVsRebMBIIBERHMZ1OI5FIkKTGo67QUavVOH78OH71q19t6fvHjx+niYzdSGbMzMzgww8/xMLCwroiJuxAqFQqYTQaUV5ejj179sBkMq1yI3mc5HI5JJNJ+Hw+ZLNZxOPxVYGH0+nE3NwcKioqoFaricXqVpalUAQCAS5cuIB//Md/3PB7Z8+efeQP1Xg8DrvdDq/Xi1AoRKqj2Nk+msTYmaTGjRs3SIKITbry+XxIpVIyyyoSicDlcnc1eP/a1762aTKDtUOjUCgPD42TaJxEobHWWmSzWfh8PrjdbiLwGY/HSSKjoKAAuVwO3/jGN+hJ/ZKx16VLl4iYPZvIYNt8H0xqPMqJ5gsXLmw5mUGvg11KZrjdbty6dQvDw8OQyWRr2mKyL0WsdkVhYSEcDgdaWlrQ1NS07bLK3YJViH3uuecgkUhQVlZGLmhW3fvevXu4fv06zp07B4FAQAbpjZalUB58GG02wD5KMadYLAa32w2Xy0UUstkKAgB466236EnbQdra2gAAV65cIRoaPB4PXC4XiUQCEokEEomEzNSys7M7zblz54gL0FpoNJonVkyXQnmaoHESjZMoNNZaTj6fh8fjgcvlIq28rKgna/X+5ptv0pO4g5w5cwbAfQcUNnnB5/MhFouJjiKbzGCrZB9F+8nJkychk8kQjUY3/J7JZMLx48fpidyNZAarF7G0tIQ9e/asOXubSCQQCAQwNzcHm82G/v5+zM3Nwe/3E2GpzQY0tk+f1c14mAdHLpfbcFmJRIKKigq8/vrrRLSKbXVhGAaLi4vo7+/Hp59+in379qG4uBharXbTZXdzv5avB8CGWiLrwZavPQmB0rPAnj17UF1djYmJiTU/r66ufiRWmIlEAvPz85ifn0csFiPaLuw1QZMYu8tzzz0H4H4JZC6XQzQaJb3p8XiclEGyLXe7oamxUasJFRajUHYGGifROIny7MZay0mn07Db7XC5XMTink1ksroY3/zmN+nJ20VYB5TPP/+c6JQkEgnS9svqLbKTSqy+xm5hNBrR3t6OTz75ZMPvHTx4kLaY7FYyYzkWi4WU8zx488ZiMQQCAdy+fRuXL19GX18fbty4gZKSEmg0Guj1+g0HII/Hg2w2C4FAAI1Gs+2gnvVp3mhZHo8HmUwGmUy25jYsLi5idnYWDoeDOBRsZdnd3K/l6wEAmUwGqVS6ZSHRXC6HYDAIgUDwRJWyfpURi8V4+eWX8aMf/WjNz19++eWH1ovZCqlUCg6HA/Pz8wgEAqQ6gA3SqHvFo4V9Zl69epXckzwej4jdsZZi2WwWfD5/R91PNmo1oS0mFMrOQ+MkGidRno1Y68F7y263w+l0wuPxIJPJkOQhe419+9vfpiftEcJWOXz22Wck3mIn9NgJJbZSg9UxYqvMdpoLFy5smsx48cUX6Ul7FMkMqVQKg8Gw6v/sDZvL5aDVasHn8zE6Ooq5uTn09/evGtgZhkE0GsXi4iIikQii0SjsdjsymQwkEglMJhO0Wi10Oh0MBsOqfrdsNgu3200sjRiGQSgUQiQSgV6vJ4NpcXExFAoFWT6VSmFpaQk2mw18Ph9GoxEGgwEejwdDQ0Po6+vDzMwMUqkURkdHwePx4Ha70dTUBB6Pt+ayy7ctlUqtEAJjNQqW75fBYIDJZIJarV4xYIfDYXg8HrjdbqhUKphMJoTDYYRCIXi9XtjtdhQUFECpVBJbtZKSklWzGMlkEqFQCA6Hg/Tte71eCIVCaLVaiEQiqFQqGAwGKBSKRyJE+CzyyiuvrDvA7lbZI5vEcDqdiEQixLecbSf5zne+Q0/MY4QVq/rss8+IgN5ykdB8Pk/cT9hB9cven+u1mtAWEwpld6BxEo2TKF/tWGs5kUiEtPEGAgEkk0kkEgkAIMk0OoH0eGErNS5dugSBQIBoNEr0y9ikhkQiIVWyYrF4U5eoh7lO/+Iv/gKRSGTNz+Vy+WNriXrmkhmstdhGVFZWIpvN4u2338bCwgLm5uZIJozNTvr9fgwPD+P999/H3NwcwuEwsTZlg/mqqiocPnwYZ86cgV6vJ4NhJpNBMBjE1atXMTg4iMnJScTjcaRSKdKbLpPJYDabcf78eTQ0NKCkpAQcDgdLS0u4e/cu/uVf/gUqlQovvPACTp8+jb6+Pvz4xz+G2+2Gz+dDNBrFxYsXcf36dZSVleFv//ZvIZVK11xWo9GQ7XK73bhz5w7ef/99OBwOpFKpVfvV1NSEkydP4vDhw9BoNGSQXFhYQGdnJz766CPs2bMHL774IsbGxjA6OoqRkRGyf1wuF0ajEWfOnMFrr70GlUpFzkkmk1lRAup0OokQDvv7KpUKjY2NaGtrw759+6BSqahd7C6wXvnjbpQ9ZjIZOBwOLCwsIBgMkpdkdsaMy+XSGYEncGC9evUq4vE4qZpZWloCj8dDKpUiVoVCofBLD6prtZrQFhMKZXegcRKNkyhfzVhrOcFgEA6HA263G8lkEul0ekUrST6fp0mMJwxWU+Py5csoKChANpsFl8slbSdcLndFBQfrIrUTSQ2j0Yjjx4/jd7/73ZqfHz9+HEajkZ6kR5HM2ArsQMBeIMlkckWZVTQaxc2bN/Hf//3fmJiYgE6nQ01NDRQKBfL5PMLhMO7cuYOenh4sLi6Cy+WitbUVtbW1AACPx4Pe3l6899578Hg8kMlkqK2thUQiIf7oCwsL6OnpwdLSEl544QVcuHABcrmc2FKOjY1Br9fD5/OBYRgYDAY0NTWhq6sL+XweAoEA5eXlMJvNqKiogEQiWXdZdnB0uVy4evUq3n33XYyPj8NoNKKhoWHVft24cQNut5sM2CaTCcD9kieHw4Hh4WGEw2FwOBx4PB5wuVw0NzdDIBDA7XZjcnISt2/fBo/Hg16vx8mTJ6FWq8k2XL9+He+88w68Xi+MRiNZlj32Y2NjuHz5Mmw2G4RCIWpra6HT6eidsMOsV/64k2WP7Myb0+mE1+tFKpUiD2K2R/P3f//36cl4QmErNbq6uhCLxcDhcEiLCSsGyFoesn8PM6iu1WpCW0wolMcHjZNonER5emKt5fj9fng8HiwuLpLKV7bSktV+oXHXkw1rSd/Z2Qkul0vsc/l8PrLZLIm1BAIBmVASCoVfOqlx4cKFdZMZFy5coCfmSUpmRCIRLC4uIp1OQyKRrCgTZBgGExMTuHnzJrq6ulBfX4+2tjYcO3aM9CmGQiEYjUbcunULQ0NDUKvVZCAG7luC9fT0YHBwEBaLBWfOnEFzczNkMhkZpO/evYsbN27A7/fD5XIhEols+FCrqqrCSy+9BIfDQTQGWlpasHfvXlRUVECpVK7rCADc74UdHBzEtWvX0Nvbiz179uDIkSM4evToqv1i991isUAkEpFBejlOpxMjIyNoaGhATU0NrFYrBAIBXC4XBgYG8Mtf/hLj4+Po7OwkgjGZTAazs7O4c+cOBgYGcPToURw5cgQtLS1kkA6FQtBqtRgZGYHD4YDH44HZbKaD9C6xVvnjTpSR5XI5eL1euN1ueL1exGKxFcKeVNzz6aK9vZ0kNdgqjVQqRSzbWCtXdoZgu0mNB9tJ5HI5bTGhUB4jNE6icRLlyY+1luPxeODz+UjMxTAMSWDQmOvphG3tu3z5MjKZDEQiETgcDkls8Pl8pFIpiEQi5PN58Pl8cLnch05qnD9/HnK5fFWriVwux/nz5+kJeVTJDDZ79SBsL2gmk8Hk5CS6uroQiUSg0+lQXV1NBFUSiQS6urowODgIHo+Hc+fOob29HbW1taSMkGEYlJeXQyAQ4N69e+jp6UFjYyMpjWT7MUOhEI4fP45z585Bp9MRe51MJgOTyYTCwkLMzMzAbDaDYRjk8/l190uj0aC6uhpqtRpCoRAMw6C4uBhWqxUVFRWbqtwmEglcv34dQ0NDEAqFeOWVV3DkyBGUl5ev2i8A6O3txaeffori4mIcPXp0VfkiO0tz9uxZ1NTUECErq9UKs9mMW7du4e7du+jr60MkEkE+nyelk06nE8B9e8ijR4+iuroaXC4X+XweqVQKhYWFGBwcxPj4OKRSKVXu3kWam5tRV1eH0dFRAPeF4Zqbm7/UOl0uF7xeL3w+HxKJBJLJJJLJJFGCpyrZT39S48aNG0ilUggEAqR3UywWQygUQiqVQiQSbfu+ff311/HOO+8AAFpaWujBplB2CRon0TiJ8vTHWux94vP54PP54Pf7EY/HkUgkkEgkwOVyweFw1nQuojxdsJUa165dQywWA5fLBY/HA4/HI/EWh8MhFWnshNJ2nwvrtZrQFpNHnMwIh8OYm5tb84aPx+OYmZlBf38/rl69img0in379qGtrY0oWyeTSdy4cQPT09MwGo04ePAg6uvrVylfy2Qy1NXVwWq1YmRkBPPz87Db7SgsLASHwwGfzyc95g6HA0ajERKJhCxfUVEBtVqNxsZGiEQiaDSaDb2E2bJuHo9HLk7WO30ryrapVAr37t2Dx+NBaWkp9u/fj+rq6lWzHDKZDFarFYWFhVhYWMD8/Dwikcgq9WydTof6+npUVFSsuMAlEgnS6TSMRiPGxsYQCAQQCoXIy2wulyMDttvtRiQSWdHzJZVKySxQY2Mj9Ho9tQHaRYRCIY4ePUoG2Kampoe2f/L7/aQ/k73fWM9yDoeDb3zjG/SAf0Voa2sDANy8eRPpdHrFvcu6nmxHqR+4X8LIJjOOHj1KDzKFskvQOInGSZSnN9YC7lcReb1eOBwOhMNhIhTJVsDm83kac30F6ejoIEkNtlV7eSsRwzAQCoUQCoXg8XgkobUd1mo1oS0mjziZYbPZ1uz3yWaziEQimJ6exsLCApaWlrBv3z60t7eTgZIdzO12O+LxOKqrq6HT6SCVStccNLVaLcrKyjAxMUEUrNlBpbKyEnK5HDabDb/97W8RCARQVFQEpVIJiUQCiUQCrVYLrVYLDofzUBfcdh567Pbl83kUFhZCrVavObjzeDwolUoUFxfD7XZjaWkJwWBw1WBuMpmwZ8+edUs+2eAhkUggFAohFosRVfKioiLweDz09fWBz+cjk8lAq9VCJpNBLpcTpXWj0Qgul0tVuneZN954g+gVvP7669te3uv1wu/3IxgMIhwOE89ytp3kW9/6Fj3IX1GOHDkCAOju7gbDMEQAMJ/PQywWb+uZtryt5E//9E/pwaVQdgkaJ9E4ifL0xVrAfU0Wv9+PUChEYq50Ok1sVrPZLI25nqGkxo0bN5DP50kii62SFYlEEAqFkMlk29bSeLCdRCKR0BaTR53MGB4eXrcnki2f1Ov1OHr0KE6dOoXGxkYUFxeDx+MRG5x0Og0+nw+1Wr2hSqxYLIZWqwWXy0UikUA4HCalka2trbh58yZmZ2fx0UcfYWBgABaLBZWVlSgsLERZWRnp4RSLxRvONnxZYrEYXC4XkskkJBIJDAbDhhe3VCqFXq8Hl8tFPB5HMBhcZeOm0WhQWVm5bmaZXXc2m8XS0hJisRg0Gg3q6+sxMzODO3fuYG5uDn6/nxwbs9mMsrIyWCwWmEwmUnJKyyd3/4W0pKRk1QvlZiSTSczOzmJhYQH5fJ60lAB0VuBZ49ChQwDuV2pks1mkUimkUimoVCqoVKotrUOpVJIAT6lU0oNKoewSNE6icRLl6Ym1gPvtTQ6HA3Nzc8hkMkilUiucxrLZLNXEeAZhq2SB+5pmqVSKJEXFYjHy+Tzy+fy2Wn+NRiM6Ojpw7do1AEBNTQ1tMXnUyYzKykqcPn16zc/4fD5KSkqI77nFYoFSqSQDZDQahcfjIfZXm2W6l9ubRaNRuFwuMAwDtVqNvXv34o/+6I8wMjKC4eFh2O123L17F3fu3IFMJoNKpUJhYSEOHjxIBKp2C3bGIZvNQi6Xo7i4eJXf+1rBB5/PJ4HNg32qPB5vS3ZAbKkkq76rVqvR1tYGoVCI3t5e2O12+P1+3Lp1C319fZBIJFCpVKirq8Phw4dx9OhR+mKzy0ilUnLPbLVUlT2vPp8P4XCYlMXSJAYN1gCgp6eHVOlEIhEolUrI5fJNnxe0lJFC2X1onETjJMrTEWux10c2myVaZGzVKxt30SQGBfj/mma9vb3EhpetlBUIBNuq3nr11VdJMoOtAqE84mTGepZ+fD4fRUVFRA2Wx+OtKFl8GLEUluX9nwKBAHq9Hh0dHSgvL4fVasXs7CycTifcbjdCoRCx7nI6nWAYBkajcdeUqJcPtGxPFWuxtt73NxPa2s5xYQUC2cHdYrFAoVDAZDIRoSuHw0HcL+7duwen04lAIAC1Wo2amhpotVp6J+wi2xXldLvdmJiYgMPhIKJDb775Jj2QFABAa2srAGBpaQnJZBIejwcKhWLT5aiDCYXyaJIZNE6icRJ7jgMhAAAgAElEQVTlyY+1gPsuJVNTU1hYWKDxFmVTDh48COB+CwpbKZtIJKBSqbac9Dx//jz+5E/+BADw/e9/nx7UR53M0Gq1xPrrQdgBdLNySHZAyWazG/4Wm00HQPon2XJCtqdSLBajpKQEqVQKDMMQf/Br167h0qVL6Ovrg1wuR2VlJQ4fPrwrB3B5ABEKhTA3N0dEgtaCLbdkGAZcLhd8Pv+h+1S5XC6USuWKflqhUAi9Xg+ZTIbm5mYwDINUKoXFxUUMDQ2hs7MTExMT6OzsJKWtdJDeXdgZ9a3icrkQCoUgEAh23F6M8tVBqVSSv61+n0Kh7C40TqJxEuXpiLUAwOFwwO/303iLsi3YFpSenh5Eo1FSKatQKDatlC0tLSUOKjU1NfRgPupkBmtT87CDmVgshlqthtvthtvtBsMwGw5mbrcb6XQaIpEIKpVqRRlPQUEBUZVlyeVy0Gg0UKlUEIvF+PnPfw6PxwOHw7HhwPllXyjMZjMEAgH8fv+W9svn84FhGCIyxZaJbvvk8XhQq9WrxMG4XO4q5XOtVguTyYSioiK89957eO+999Df34+qqioy00vZHdYSb9uIvXv37mrJL+WrxcM+kykUyi4EVTROonES5amItYD7TnHrVVJRKJvBPhfC4TASicSWKmV5PB655h72uUb5EsmMnRjkKyoqSKnj3NwcdDrdiow3qxzrdDoxNTUFDocDpVIJtVoNDocDm82GkZERqNVqmM1mlJaWrggEtFotLBYLsfxiGAaJRGLDkkZ20Ofz+dtWrRYKhdDpdCgtLUUoFILH44Hdboder18hzsful9/vh9frhUajgclkglqt/lIXs0gkgkAgILZn4XAYfD4fjY2NUCgUZDZDIpGguLgY+XwefX19yGaziEajRFSSQqFQKBTK40+G0DiJxkmUR8OpU6foQaB8aRQKBRQKxbZaTShPaTJDKBRi//79cDgcuH37Nrq6uiAQCLB//34yOCaTSSwuLmJ4eJj4rJeWlkKv14PH46G/vx///M//jPLycpw+fRpnz56FQCAgvW4ASLlPLpcDj8eDUCjctESRw+FAJpNBJBIhn88jFoshFoshkUiAx+OtO8gXFBRALBbjwIEDCAaDmJ2dRXd3NwQCARobG1ft1/T0NILBIFpbW1FZWbktFdz1fh+4L/7129/+FsPDwxAIBPjjP/5jVFVVrZh5SKVSWFpaQjweh0AgIFZkFAqFQqFQHj80TqJxEoVCeTrZalXe8gQz5SlLZkgkEnR0dMDv92NsbAzvv/8+bDYbhoaGYDQaiaLwwMAAhoeHIZfL8dZbb6Gjo4OofbMK3P39/VhcXMTdu3fR2NhIysuSySTGxsbQ1dWFWCyG0tJS7N27FxKJZMMSSj6fj7KyMphMJkxNTaGzsxPBYBDNzc2orKzccMZCKpXizJkzCIVCGB4exq9+9SuMjo5i//79a+6XSqXC+fPn0dLSsmOWX3w+H2azGffu3cMXX3wBAGhoaEBFRQWEQiFyuRyCwSB6enowNDREFL1pvxaFQqFQKE8GNE6icRKFQvmKv3zT9pJHm8wQi8Wk1E8ul3/pk2c2m9Ha2koUoz0eD27evEkEnrLZLCk/bG9vx8mTJ1FZWUnWUVFRgXPnzkEikcDpdOLOnTvwer3gcrlgGAZ8Ph+hUAgAcPz4cRw9ehQWi4VY57DCTxqNBlKplMwIiEQiNDY2Yn5+HjabDXa7nayTtT5cb1mBQACr1UoCEHb5VCpF9iuXy8HtdsNkMuHo0aM4dOgQiouLyX4JBALI5XIYDAaoVCoyi/IgrJiVXq9HJpMhN4RQKERLSwvi8TjS6TQCgQD6+/sxNTWFfD4PLpeLXC6HhYUFcmwPHjyIwsJCehdQKBQKhfKQ0DiJxkkUCoVCeUKTGSqVCvX19ZBKpTCbzV/qx5aXGhoMBnzxxReYnp7GwsICxsfHIZPJYDabUV9fj6amJnR0dMBsNkMikZB1lJaWQqlUoqysDAMDA+jv74fX60UoFEI8HkdhYSEKCwuxf/9+tLW1oaqqivSR8vl8aDQaNDU1QaFQwGg0kpkMgUCAffv2IRqNwufzwe12AwCCwSDy+TyEQuG6y3I4HKhUKhw/fhzl5eXo7OzE7OwsPB4P2S+LxYLm5mY0NDSgtbUVFosFYrGY7Bd7fPft24eqqipIpdI1B2l2ZiQajSKbzZJ1CAQC1NfXk2M4MDCA2dlZLCwsIBgMQi6Xw2QyoaamBnv37l3z2FIoFAqFQtkeNE6icRKFQqFQHg8F+U2MvAOBABwOB+LxOIxGIywWy5f+0Xw+j3Q6DZfLhaWlJUQiEUQiEfD5fEilUgiFQmi1WhiNxjVtzHK5HKLRKBGJSiQSSKVSyGQykEqlkEgkUCqVMJlMEIvFZDBlGAbhcBgLCwvg8Xhk9oD9HAC8Xi8WFxcRj8cB3J+JMJvNEIlEYBhmw2Xz+TySySQcDgcikQjpSeXz+ZDJZJBKpVCr1dDpdKv2i1Xv9vl8kMvlKC4uhlgsXjVQs9sQDoeRz+dRW1u7YrBn+z39fj+WlpYQi8XIzIdEIoFEItnw2D6pnDlzBp9++il++MMf4gc/+MEj+c1sNotYLIZ4PI5MJrPC876goIDMYLHXLOXZI5FIIBwOk9lO9h7bSCAvn8+DYRhybUkkEojF4ifKlSSbzSKdTiMUCpH+cYlEAoFAALFYDJ1Ot+LZ9yDhcBjvvvsu4vE4SkpKcPz4cajV6h3ZtkgkArvdjqtXr0IikaCuro68SFIojwMaJ9E46XFy/fp1dHR0kOO7W2OcTCZbIdi6FdixwO12Q6lU4rXXXoPBYHiixoK+vj5cuXIFer0ee/bswYEDBwDct20dHR3F8PAwzGYzDh06RK7L3RzjKF+N+Gp5HMVaaK8FW0kmFApp+8lDsqXKDLlcTkrwdiSD8v/swkpKSlBUVIR8Pk8ewAUFBSgoKACHw1n39zgcDuRyOaRSKVGefnD97PLLByE+nw+1Wk1sc7hc7qpBUKvVQqVSrVgnj8dDQUEB8vn8hssWFBRAJBLBYrGQfdrqfkkkEpSUlKCwsHDNbV++DxaLhfSmPnjhs6rhGo0GuVxu1Qv4ZseW8v9Jp9NwOByYn59HPB5f1Q/M5/NJKatKpSIiakKhkJTN7hb5fB6ZTAbZbJYozO/m71HWJhgMYmJiAktLS5BKpTCZTKisrFwROK917uLxOObn5zE/P0+eg09CMiOTySAWiyEcDsPv98Nut8PpdMLv90Oj0UAmk0GhUMBqtUKpVEIsFpPgYvnzamlpCf/n//wfeL1edHR0oKmpaccCvWg0itHRUfzkJz+BTqfDa6+9BovFQpMZlMcGjZNonPQsjHEVFRUPlcz46U9/iv7+flRUVOD48eM7mswYGRnBP/3TP0Gv1+ONN95AaWnptseC/v5+/OhHP8KePXvw7W9/myQz7HY7Ll26hF/84hc4duwYSkpKoFQqSTLjpz/9KbxeL9rb27F3794VY1w6nQbDMKR1i8Znz158xTAM/H4/RkZGEI1G1/0en89HcXExFAoFZDIZhEIhJBIJnSTdyWQGh8PZtZuQy+U+9GDBzoxvd/nN9mejz9kBbrPtepjM2nb2Z7Pv7eY5e5YIhUK4evUqLl68CIfDgVQqtSrg4XK5EIlEMBqNsFqtqKurQ3NzM6qqqqBQKHYtGIrH47Db7XC73RCJRKRMmPJoGRkZwX/+539iYmICEokEzc3N+LM/+7MNlaozmQycTic++ugj/OY3v8G5c+dw8uRJGI3Gx7ovDMPA5/Ph4sWLuHXrFgYGBkhAlk6niSUjW4ZeXV2Nw4cP49SpUzAajY9s4OXxeFAqlaiuroZKpYJWq6WzGZTHCo2TaJz0LIxxb7zxBvbs2bOt5fl8PiorK5HNZlFYWPhEvqBptVrs2bMHlZWVW46j2P3SarUwm80QCAQrPp+bm8Po6Cjq6+thNBq/tJYOja+evvhqaWkJw8PD+PGPf4zZ2dkNn0UCgQBKpRJFRUVobW3F4cOHcejQIXoR7FQyg0J5VslkMsRGLhqNor6+fsVDNJvNIh6PIxgMIhAIoKenB2NjY+jr68OePXtw6NAh1NbWQiKR7HjQxP7exMQESkpKoNPpaDLjMRCNRrG4uIjJyUlS1n348GEcPnwYFRUVay7Dlll7vV5MTU3B6/WScu3HQTabxdLSEgYHB3H58mV0d3cjFApBKpWisbERKpUKQqGQlG0uLS3BZrOht7cXi4uLcLvdaG9vx6FDhx5JSbZMJkNlZSW+9a1vQSgUwmKx0J52CoVC2eUxzufzPdTz+vXXX0cwGIRUKoVWq33i9rGxsRF/8Ad/AJVKte64vd5+pVIpGAwGUo3EMj4+jl//+tcQi8WQSqU0mfEMxldsq/rs7CxCoRAqKytRXl6+qrIkk8nA4/HA6/Xizp07cDgccDqdiMfjaGlpodcOTWZQKDuDXq/HCy+8gPb2dvI/hmEQCoUwOzuL4eFhjI2NYXJyEj09Pejv70cymYRMJkNZWRmEQuGOvuSFQiHcvn0bQ0ND2LdvH9ra2uhJekyw5eCRSAQOhwNXrlyBXC6HxWLZ0cqcXC5HtFu4XO6OVSOk02lMTU3ho48+wttvvw0ej4empiacOHEChw8fRnFxMaRSKQKBAILBIOx2Ozo7OzE0NIRbt25hdnYWDMOguroaWq12Qy2NzfaNnbHd6F4Ri8WwWCzb1iVYXtK+3nnJZrPkO5ttB4VCoVA2RiqV4uzZs9sek4AvV5XEriefz4PD4Wz4PK+trUVtbe2O7Ber2TA9PY3PPvtsldMQ5dmKr1hMJhPa2trw/PPPr5p4TKfTmJycxODgILq7uzE4OAifz4dkMkkmazba12w2i1wuh1wuBx6PBw6H80TELsuPKdsO/zDblcvlkM1mN2z9o8kMCmULiMVioiC/nEwmg5aWFpw7dw5OpxO9vb34+OOPMTQ0hF/+8pdIp9N47bXXUFpauqPllclkEh6PB8FgcJWWB+XRwufzUV1dTQT2bt68ieLiYhw+fBhqtXrHBsVwOAyPx4NUKgWtVouioqIvvU6GYeByufDTn/4UX3zxBXg8Hr75zW/ixIkTaG1thVQqJfaHOp0OmUwGDQ0N2LdvH65cuYJ3330XY2Nj6O3tRXV1NU6fPr3tmTdWrMvpdEIsFsNgMEAkEu1oNRM7W5NMJpHJZNY8L9lsFsFgEIlE4okuiaZQKJSvKul0GjMzMygoKIBarX7oMZRdTzabhUQieWTPc4ZhYLPZiNMP5dmNr5bDXoPV1dXQ6/Wr4pOamhp0dHTghRdewI9+9CNMTk7i888/x+/93u9BoVBAp9Otm8gIBoNYWlpCMpmEyWQiuhuPk+VxXSqVglAoRHl5+ba1SxiGIRXwMpls3eNAkxkUyhbgcDjEuWQ99Ho9KQfL5/Ow2Wzo7u4mZWUlJSUIhUIYHR3F+Pg4AKChoQFWqxVyuXxFxpGdLR8aGkIwGER9fT1qa2vhdrtx7949dHd3Y2hoCD6fDz09PSgoKMCBAwegVCoRCoXg8/mg0WjQ0tKC8vLyNcv/M5kMZmZmcOPGDYTDYVitVrS0tKz7sKCsDWulaLVaYTAY8O6776K3txeffPIJXnzxxYcqq83lcojH45iensbg4CC8Xi+CwSBR9lapVCgpKYHVaoXVakV5eflDbbvX6yXWjYlEAi0tLThz5gz27t2LwsLCNZeRyWRQKpVgGAb5fB49PT0oLS2FwWDYclVGKBTCwsICBgYG4Ha7EQqFEAqFIBAIoFKpoFQqUVlZiYaGBhQVFa0YmDdSsF+uMF9UVITm5ma4XC7cvn0boVAIyWQSAGAwGIi1JQDMzs5iYGAAdrsdsViMfKepqQkHDx4kAr8UCoVC2d5L4kZuJolEAh6PB319fXA4HAiFQvB4PCgoKCDuKSUlJaiurkZ9ff2GLYXpdBoDAwOIRqOYnp6G3W5HJpOBWCxGcXExrFbrmmPKem4mW9mv5W4mbrcbN27cwPDwMHp6ehCJRHDx4kXcvXsXJSUlaGlpgd/vx9jYGJRKJfbu3buuLgLDMHA6nbh37x7GxsZQVVWF2tpaVFdX0/jqKYmvlsPqjbFtR2vFVWq1GiKRCAcPHkQ4HIbb7cbCwgIqKipWxOWpVAqjo6OYmJjA5OQkaQFOp9NQq9XQ6/UoLS1Fc3MzjEYjJBIJ4vE4BgYG0N3djbKyMhI3PUhfXx8+/fRTAEBzczM6OjpWVYa43W5MTk7izp07KCwsxIEDB1BUVAQej4doNIrBwUFMTk5iZmYGoVAIDMOAx+PBYDCgqKgIlZWVaGpqWhVXsfcUj8dDZWUlpFIpbDYb7ty5g1gsho6ODrz88ss0mUGh7CZisRhVVVXIZrPEDWJychL9/f2orq4myYzu7m68++67yOfzeOutt6DX61c9LBiGwfDwMH7+859jenoab775JjQaDcbHx/Hee++hu7sbXq8X2WwW0WiUuE4UFxfDZrNhYGCAVIMYDAbweLwV68/n80gkErh79y7+4z/+Ax6PB+fPn0d5eTlNZjwk1dXVaGtrw7Vr1zA1NYWLFy9i//79UCgU22q9yOfzSKVSmJ2dJdUPCwsLYBgGXC6XKO/L5XIcO3YML7zwAnQ63aaliGvhcrnQ398Pp9MJo9GItra2DRMZbHAhEAhQVVUFuVyOkpISqNXqVfaH65HJZLC4uIjLly/jvffew/z8PNLpNHFCYNd/5MgRXLhwAceOHVsh8rmRgj3rouLxeNDS0kKSgr/+9a8RDAaRTqeRy+UgFApx9uxZCIVCZLNZ9PT04He/+x2cTicSiQQYhkE2m8X58+ehVCrR1NQEmUxGL3IKhULZBuwzube3F1arFceOHSPJjHw+D6/Xi97eXvzsZz/D5OQkwuHwinEsm82ivr4ep06dgk6nQ3Fx8ZrjKTtD/fnnn2NqagqDg4OkEi+Xy0EkEqG9vR2vvPIK5HL5Cge4np4e/M3f/A327t2L73znO1tKZqzl2DU7O4v3338ft2/fhs/nA8MwuHz5MoRCIYxGI7hcLkZHR/E///M/MJlM+N73voeWlpY1x22GYYjuxm9+8xu89dZbEIvFz1wy42mOrx4m4SGTyVBTU4Px8XE4HA4EAgFEIpEViQy23aazsxNdXV2QSqXgcDjEzluj0aCmpgZvvvkmDhw4gIqKCsTjcXR1deHv//7vcfToUXzjG99Ykcxg26O6urrwV3/1V+BwOPje976Huro6FBUVrdh3h8OBS5cu4Wc/+xmOHDmCoqIi6PV6JBIJTE5O4v3338etW7cwMjJCrLPZdw6LxYK2tjYIhULU1NSseN9g7yk+n4/Tp09DpVKhv78fH374IQoKCqBQKGgyg0J5FLCWcC0tLbh16xYmJiYwMTGBUChEPmftl9gZ4K0il8vR1NQEhmGg0Whw5coVRKNRNDU14eTJk9i3bx+4XC4mJiaQSCQQDAYxOTlJZq2XP4zYF0qbzYZkMklmPR4UsaJsHYVCgaqqKpw6dQpXr17F0NAQ+vv7IRKJtiwqBtyfqbLZbPiHf/gHDA4OIp1O46WXXiLK6eznAwMDuHr1KvEwP3XqFDQazba22e12Y2BgALFYDKWlpTh8+PCWbe3Y2S621FMkEm1avcAqjX/66af4t3/7N4hEInR0dODQoUMQi8XIZrPEUaWnpwfz8/MQCARoaWlBcXHxlvcrk8nA5XLh7bffRklJCV577TXo9XoyG8MOtrFYDIFAACqVCidOnIDZbEYikcD09DR+85vf4Pr16wCAv/7rv6bJDAqFQtkh2Na/a9eu4cc//jE8Hg8aGxtx4sQJqNVq8Pl8LC0t4eLFi5ifn8c777wDs9mMI0eOrDme+nw+DAwMYHFxEVVVVfjDP/xDKBQKRKNR2Gw2dHZ24tatWwiFQigsLERjY+OOCyvW19fjO9/5DkwmE3p6ejA3N4dXX30VNTU1MJvNaGpqglwux8jICMbGxrC4uIhAILBmu0QqlcLIyAjm5uYglUpx7NixNWfSaXz15MZXu8HQ0BD+93//F5988gny+Tyef/55HDt2DGq1GqlUCtPT07hz5w5u3LiBxcVFfPvb38b3v/99KJVK6PV6KBQKzM7OrmqDWt4exeFwIBaLEQ6HMTU1Ba1Wu6KSKRAIYHx8HIlEAiaTCU1NTZBIJOjs7MRPfvITDA4OQqFQ4Ny5czh48CCUSiXi8Th6e3sxNjaGDz74AIFAAK+++ipeffXVVfvocDhw7do1hMNhaDQafP3rX4dYLEZzc/O6x4UmMyiUHaSgoID4YRuNRvB4PITDYWLrygocPkyGVygUQq1Wo66uDg6HA/39/chkMigpKcH+/fvR1NSEXC4HqVSK4eFh3Lx5E6Ojo9i3bx8RIWXJZrOYn5/H1NQU0uk0rFYr6uvrqWryl4DL5UKtVuPUqVMIh8P49a9/jQ8++IB4iG/V6WN+fh5XrlxBX18fJBIJnn/+eZw5cwZmsxlSqRQMw8Dj8aC6uhr/+q//inv37kEoFKKpqQkKhWJb7RB+vx/Dw8OIx+MwGAyoq6vbck8j23q1nd7MTCYDh8MBv99PEhlHjhxBS0sLBAIBcrkcAoEAmdEaGxvD2NgYSkpKtpXMCIfD8Hq92L9/P/bv34/29naoVCqk02nYbDb09PRgcXER/f39qKioQENDA44fPw69Xo9MJoO5uTnMzMxgZGQEg4ODsNvtMBgMW070UCgUCmXjscDr9cLn8yGbzaK5uRnHjx/HCy+8QGbB4/E4pFIpPvjgA1y9ehXXrl2DVqtd8+XV4/FAJBIRS8vW1lZIJBKkUinY7Xbkcjl0d3djdHQUIyMj0Gq1Ox7vsG0qMzMzsNlscLlcqKurQ2trK8rKyqBSqRAMBtHa2oqpqSnMzs6ir68PbW1tUCqVK+KzSCSC3t5eeDweVFRUoKKi4ol0gqHx1c7Bup+Mj49jcXERXC4XGo0GcrmctMaMjo6is7MTyWQSR44cwcsvvwyr1QqJRIJMJoOmpiYYjUbSijI4OIiRkRHU19dDo9GgrKwM09PT8Pv9SKVS5Lil02mMjY3B7/eTalsAmJiYIPu+PJlhs9lQWFhIbImnp6fR19eH/v5+aDQadHR04KWXXoLFYoFYLCbvGV1dXbh06RIGBwdhtVpx/PjxVe0mfr8fXC4XtbW1OHz4MI4cOQKBQLBhDEiTGRTKLjx0xWIxNBoNZDIZMpnMinJHhmGQyWQear2stRlrl8nn8yGXy2EymWAwGJDNZlFQUACz2Yzu7m7MzMxgcXERyWQSEomEPOwzmQzsdjsWFhbA4XBQVlaG8vJyanH5JRGJRDhw4ABmZ2fxxRdf4IsvvkBhYSGOHTsGnU63yot+LRYWFvD555/D4/Hg+eefx6uvvrqqzaGqqgoVFRW4fPkyrl+/jq6uLni9XpjN5m0NtuFwmPifKxSKHRe9ehC21FCj0aC9vR0vvvgiGhsbYTabyXcKCwuRTqfh8XgwNDSEmZkZeL3ebf1OJBKBXC7H4cOH8dxzz6GxsZF8plQqUVJSgrm5OXg8Hrz00ktoa2vDkSNHyHd0Oh2am5vhdrvJXzQapckMCoVC2QFYq02pVIqWlhY0NzejtbUVDQ0NK17utFot3G43Pv74Y9y9exf79u1b95kfj8dx7tw5tLa2rtDlMJvNiMViWFpawkcffYTR0VFUVlbueMsGK2CtUqkgFovB5XKh1WpRWFhIXsTMZjP279+PDz74AIuLi+ju7kZzc/OKZEYqlYLX68Xw8DCSySRqa2uh0+m2LZ5I46vHG189eL1nMhmk02kyuflgci8SiWB6ehoDAwNwOp3QaDQoKiqCSqVCNpsldrPj4+M4dOgQjh07hvPnz69YT0VFBUQiEYnt5ufnMTAwgLKyMpIIHBsbQygUQiQSIYkEhmEwOTmJSCSCiooKGAwGCAQCzMzMEHchdjsDgQBcLhdaWlpQVFSEdDqN4eFhjIyMIBwO49ixYzh58iTOnDmzYtuqqqogk8kQDAbxzjvvYGZmBna7HVKpdMVxjUQikEqlaG9vx+nTp9HS0rLp8eXQRyqFsvOws9YikQiJRAJ2ux1er5f4ZrtcLjAMsyuJFKlUivLycpSWliIajZKSMvYBmsvlEIvFYLPZ4PP5YLVaUVFRQfruKA9PQUEBRCIR9u7dizfeeAMSiQR3797Fhx9+iKWlpS2tY70SvgcRCARobGxEWVkZGIaBw+FAMBh8oo+PUCjEgQMH8K1vfQt//ud/jra2NhiNxlXXcFFREbRaLdG8cLlcDxX4tLS0rLLF43A40Gg0UCgUEAqFaGhoWJFMAQAej4eioiLodDqSgNmN+5VCoVCeRQQCASoqKnDhwgX85V/+JV577bVVbRTsbPxWWvxUKhUqKipQVla2yvpSIBCgvr4epaWlSCaTuHv3Lubn5x/LfhsMBuzduxdmsxnRaJS0eS7H7XZjaGgI8XgcpaWlOHLkCE2kP+XxVTweJ8KZo6OjK/6Ghobw2Wef4d///d/xd3/3dxgcHIRGo8GxY8dgtVpJC0l/fz8mJychFovR2tqKqqqqNX+LdXuRy+VwOp0YHBwk1bfNzc2QSCTw+XyYmpoi7wXpdBrT09NIp9NobGxEY2Mj+Hw+JiYmiHA62ybsdruRTqdRXl4Ok8lEWlRcLhfEYjEOHjy47rYZjUY0NzdDKpXC5XJhaGhozZZ7iUSCjo6OLbdW0coMCmWXHrqs1zOPx4NcLodYLEYwGEQymSRWRbsBn89HVVUVmpqasLCwAJvNhvHxcZLZj8fjWFhYgN1uh0AgQENDA0pLS7clokTZOJFlNpvR0dGBmzdvwm634+OPP0ZdXR14PN6m1S/RaBRutxsGgwGFhYXrBnLsS7lcLgfDMJidnUVVVRUMBgPm5uYQDofJILQcrVaL4uJiUsrLlgA+qmMjl8shEHZ6HE4AAB0pSURBVAgQiUQwNTVFLIZZ2GTb2NgYcrkcsWTbDnK5HIWFhdBqtWuKkrKtXqzGzYNWaay3PZ/PRz6fJx7uFAqFQtm5F1M2VnI4HMRZ4kFu37696frEYjGUSiXEYvGqWIbL5cJkMkGj0ZCKkEQi8diSOBqNBk1NTWT2fGFhATqdjiRh2GQGwzAoLy9Ha2sr1Wx6CuOr5TidTly7dg2Li4urYpJsNktcfHw+H+rr63Ho0CGcOXMGJpMJfD4f8XgcS0tLiMfjpLVmPQ0PuVxO2j/8fj/sdjsYhoFWq0VdXR0kEgkxKKiqqiLvBaw+S0NDA/R6Pfx+P27fvk3eW/L5PGZnZ+FyucDn81FXV4fi4mJkMhm43W4Eg0GkUilMTU2hoKAAg4ODayaTpqamiF6ZzWZbFX+q1WqUlZURcwSazKBQHhPL20lEIhF0Oh1UKtVDzTA/TDLDbDajvr4eXV1dcDgcmJqaQlNTEwwGA6LRKCndVygUqK2tJfoelJ1BpVKhtrYWra2t+OSTT9Dd3Y07d+5ApVKtm7FmSaVSiMVisFqtUKlUGwaDAoEAfD5/xcxBOp3G3bt3MT09DZ/Pt2q5pqYmSKVSCIVCCAQCyOVyBINB5HI5ZLPZXVXsZpXEPR4Ppqam0Nvbi6mpKTidzlVuO2z7y8Mgl8uJi8+GAyCPB61WSwNFCoVCecRkMhn4/X5MTU1hYGAAExMTmJ2dXTUGbWUsEIlEUCgUa45fHA4HMpnsiWnTYKsLZmZmcOPGDUxMTKCoqAhqtRr5fB4ejwcjIyMQCASwWCyora2lF8tTGF8tJxgMYnh4GDabbVUFdEFBAbhcLrGkb2trw7Fjx9De3r4q6ZHL5cik0HrXs1AohFwuB5fLJWYAmUwGCoUCZrMZCoUC4XCYtJCk02mEQiG43W5UV1cTl5GhoSGEQiF4vV5EIhEIhULMzc3B6/VCIpGgqqoKJpMJiUQCkUgEiUQCiUQCfX19GBsbW3Pb0uk0SQQxDEO2bTlKpXJd1yKazKBQHiGsfZLH40FJScmuWzo9OHCrVCqYzWYUFxdjYGAANpuN2DuFQiEMDw8jEAigpqYGFRUV0Gg0j3QbnwWkUim+9rWvIRaLYXJyEhcvXoRMJtt0sP2yJJNJ9Pb24ubNm5ienl71eTQaRWNjI3Q6HZRKJSwWCxmE1lNW38n7or+/Hx9//DEuXryITCYDo9GI8vJyaDQa8Pl8Uo3B9o8+DHw+HxKJhLZNUSgUyhOayHA6nfjggw/w85//HD6fD0ajEdXV1WQsWD5uTE1Nbbg+nU6Hmpqap0JXgm23vHfvHj777DP09vbCbDajpqYGyWQSCwsLGB4eRnNzM0pLS+nF8pTGV8uxWCxobW0l7h7LYdupNBoNmVx5UJyWtR5ebtO6FaLRKBHZZd0UrVYrbDYbaSEJBAKYnJxEMpkk1RsymQwGgwF8Ph8zMzOwWCwoLCzE9PQ0lpaWYDQaodfrIZVKt1XlxOPxiKaMwWCAVqvdkXiTJjMolB0kl8shGAxienoaXq8XMpkMJSUlD6WanU6nEYvFHqpXn8fjEa/p6elpOJ1O2Gw2GI1GuFwu2Gw2iEQiVFZWrgocKDsDn89HWVkZDhw4gOHhYYyPj6O7u3tXBtvlswhisRgdHR2wWCxr9njW1tZCr9eDy+VCp9OhsbERCwsL8Pl8mJiYQHNz85YrFRiGwdzcHEQiEfR6/aaK4rFYDJ988gmuXLkCj8eDF198EU1NTbBarcQ+mJ0FWWvWYzvHgyYyKBQK5ckkHo/j888/x5UrVzA1NYUTJ07gwIEDaGxsXGUlz1q4bra+QCDwUOLqjxpWk6myshJmsxnj4+OYnZ1FOp3GzMwM5ufnwTAMDh06tOMipTS+enTx1XKUSiWqq6vR3t6+KtHB4XAgkUggkUjWTcaxbVlbETldjlgshkqlApfLJetoaGiAz+fDzMwMotEoQqEQbDYbJBIJEbAVCATQ6XQoLCzEwsICXC4X9Ho9pqenwTAMamtrIZPJVu2nRCJBW1sbKisrN33vYX9vuVMKTWZQKE8A6XQaCwsLuHfvHoLBIIxG44pyNg6HQ/r1N3rpYy2awuHwQ+sZKBQKVFdXE3uviYkJ6PV68mDSarVEXZiy87ClrfX19XjuuecwPj6Ou3fv4vLly9i3b9+6GgxcLhcCgQCpVAoMwyCfz697rSwvO5TJZBAKhZBKpTh79uyWtlGv16OhoQFXr16F0+nEwMAAqqqqIJVKN7U5S6fTCAQC6O7uhkqlwt69e0lCYz0SiQS6urowMTEBs9mMV199FS0tLSuU51OpFO7evYu+vr6HPvb5fB75fJ5ehBQKhfIEkkgkcPXqVdy5cwdCoRAvv/wy2tvbV4gx5/N5MAyD/v7+TdcXDAYxNze3ZrzErodhGFLS/zgrUdnxurS0FDU1Nejt7YXdbsfS0hJGR0fhdDqhVCqxf/9+lJeX04vlKY2vliMSiaBWq1FcXLxK9HwrcLlcqFQqIgTLMAyy2eya383lckin08jn81AoFDCZTKT6QSAQwGq1YnBwEKOjo1haWiItJ1qtFjqdjrTIqNVqWCwWuFwuuFwulJeXEwfE+vp6ov1RUFAAPp8PLpcLiUSCgwcPoq2tDSUlJY/ueqC3BIWyM6RSKTidTnR1deGjjz7C/Pw8SktLV5ScCYVC6PX6DUurcrkckskklpaWiKDOw6BSqdDQ0ICysjLE43GMjIygt7cXY2NjSCQSsFqtqKur25GsKGV9ysrKcPr0adTV1SEUCuHSpUuYnZ1dt1yQHXzm5uawuLiIRCKx5sC8vOyQz+ejsLBwlYr7ZhgMBtLjOTo6it/97ndwuVxbSqDNzc3h/fffx7/927/hJz/5Cd59991N1b5ZZxCxWLyu8vzDllMuJ5PJrHvcKBQKhfJ4YRgG09PTWFxcJM4mD77ksS4Jbrd70/XF43H4/f41KzOWr4etWn0SJnFYZ4eCggJMT0/j2rVruHXrFoLB4LrjI+Xpia92ErYVRS6XI51Ob+iuEg6HYbfbkU6nIZFIVrxv8Pl8VFZWorCwkFTBjo6OYmRkBEVFRSgsLCTr0Wg0KC8vh91ux/DwMCYmJhAIBCCXy2G1WknSg8fjobi4GDqd7rE569FkBoXyJWAFDRcWFnDt2jW8++67+PDDD2G321FcXIyDBw+itraWJAz4fD5UKhV5IPl8PoRCoRUP01AohMHBQYyMjCASiaz4jHVH4fP5m5bRs2ViVVVV0Ov1mP+/7d1JbFvX1QfwP2dxpqiZFEVNVGjKlCXZmqzIiZXBRZwBCJAgQYJsmiaLFsmim8IoCmRhIEBXHVwUDdCuihQo3AAN0gyua1uRVcc2rXmIPMmSJUvUZEqcx2/x4V2YkeSpdlpa/x9gwCBs8fGK7537zrv3nOlp9PX14eLFizCZTKipqUFpaek9L1uje5OXlwe73Y6DBw+irq4Ok5OTOH78OEZGRrac4DQ3N0Mmk4m9s9/dkxiJRDA/P4/x8XEsLS2J3/OtKxzuhsFgQHV1NTo7O1FaWorR0VEcPXoUJ06cwNzc3KZJjXg8jrGxMRw7dgxHjx7F5OQkNBoN6urq7mq/cjKZFMVxpaWbt36u69ev49y5c/ddL0MK5vPz8zmx5JiIaLuRy+XQarUiZigUiqw5jdTh4V//+hdGRkagUqmwvLyMYDC46c8LhUK4ceOG2OJ7q1gshvPnz2NychIqlQoulyvrpu1hSafTWF9f37TrBQCUlZWhtbUVFosFs7OzOHXqFP79738jnU6jo6ODW4BzfH71ICmVStTW1sLhcCCTycDn82FychKxWGzDKlTpfiQQCKC4uBhut1usopASD3a7HXl5eRgbG8Pw8DAWFhZQUVGRlVC0Wq2orq7GzZs3MTY2hv7+fkSjUdhsNtTX14ufqdFoRBtbqQDoVsc2NzeHEydO4E9/+hNOnDiB9fX1LVeY3NP48FQgurNkMolAIAC/35+VyEgkElhbW8PExAR6enrQ29uLqakplJaWYs+ePWhtbYXD4RAnvVqtRn5+PiwWC65fv46pqSlcvXoVhYWFMBgMSKVSmJqawtmzZ3Hx4kVkMpmsFRzS3j2dTgelUimeQEtLxVQqFdRqtdjGotVqUVVVBafTib6+PkxPT8Nms6Gurg5Op1NUPKaHS6fT4amnnsL8/DxOnjyJnp4exGKxTduG2mw2tLS0wOfz4caNG+jr6xPdORQKBTKZDBYWFjA8PIyxsTHE43G43W5UVFTc85MDjUaD4uJidHd3IxwO44svvsDRo0fh9/uRTCZFIShpGWYmk0EgEMCpU6fw1Vdf4fTp07Db7Whubsa+ffs2/Ty3kslk0Ov1SKVSWFpagt/vFwVHk8kkFhcXMTY2hvHxcfj9fshkMlF9PBAIQKvV3tVqi/X1dfEZiIjoPxcOh7PmQFuROjPcrrCfQqFAeXk5ioqKxKrW0tJSMQ+SWkVKWzD0er2IGYFAABqNJuv6nslkEAwGMTg4KOY1CoUC6XQaCwsLOHPmDC5dugSj0YgdO3bAZrM91CSNWq1GIpHA7Owsbty4gfLycvEgSkpQFBYWwuPxwGaz4dq1a/jmm28wPj6Op556Cu3t7WJLAeXm/OpBUqvVqKysRFVVFfLz8zE0NITa2lq0t7fDbDaL75S0TffUqVNIJpNwOBzYuXOnGAuFQgGr1YqSkhIYjUYMDw9jZmYG4XBYnI8Si8WCiooKxONxXLp0CUqlEnK5HDabLWv7k1qthsfjQW1tLVQqFfr7+1FZWYldu3aJY5PJZIjH4xgaGsI//vEP9Pf34+mnn4bH40FeXt5/fB/CZAbRXbh+/To+/vhj9PX1icApdX+Q/gQCAUSjUVRVVeHAgQP4wQ9+gIaGhqwLqtFohMfjgdvtxoULF3Dq1Cmsrq5ieHgY+fn5WFlZwdTUFG7evIm8vDw4HI6sJxFSp5LS0lIYjUasrKzg7NmzMBqNmJychNPphNfrFRckpVKJyspK7NixA+fPn8f8/DysVitcLpcIrvTwKZVKlJWVobm5Gc888wx6enqwtra2abC12+3o7OzEyZMnMTExgY8++gjj4+OoqqpCYWEhIpEIJiYmcPbsWczNzWHv3r148803NxSVupeJwNNPPw2VSoV4PI6+vj78/e9/F8W0zGazWE4YCoWwuLiIq1evIhwOo66uDm+//Ta6urqg1WrvuFpIo9GgpaUFwWAQ3377LX7729+K1sBSkVq/3y+OR2orfPz4cZjN5g2tyoiI6Ptx+vRpfPDBB3f8d4WFhXjnnXdgt9tvGwvq6+sxNTWFM2fO4Pe//z28Xi+qq6uxurqKK1euYGZmBu3t7bBarejv78fg4CD6+/vxl7/8BfX19VmrSp1OJ3bs2IFPP/0UAwMDaGpqgsViQSgUwpUrV/DPf/4TkUgEbrcbTU1ND61LiHRj5/P5sL6+jk8++QTz8/OYm5tDWVkZqqurUV1dnTUOra2tCAaD8Pl8iEQiKC0tRUNDA3Q6Hb90OT6/elCk4p2NjY145ZVX8PHHH+Ozzz7DzMwMdu3aJdr6joyMYHR0FJcvX4bX68X+/fvR1ta2ITFmtVrhdDoxNDQEv9+PwsJCsVpbYjKZYLfbodFoMDY2hrW1NdGOdavx7+7uRl9fHz755BNcvHhRHJu0lWp0dBSXLl2Cx+MRXezYzYToIV8gLRYLysvLsbi4iEAgkNUeLB6PIxaLiWVbUobd4/Fg165dcLlcG+pRqNVqFBcXY+/evVhdXYXP58P09DTC4TCKi4uRl5cHo9EIt9stLqrLy8vIz88XmUupEnZ3dzeSySRWVlYwOTmJRCIBuVwOl8sl3k+hUKC0tBRVVVWwWCyQyWQwm8147LHHsooC0f3R6/Xiwn672iMymQwajQZutxsvvvgiAoEApqenxX7GW4OuTqdDVVUVXn/9dZw7dw4jIyOYnZ3F9evXkUqloNfrEY1GkZ+fj66uLrS3t2PPnj33PfGRMvV79uyBQqGA0+kUSQW/34/p6WnEYjEYDAaxZFBq6ev1erF3717YbLasRIZ0Tmi1WhQVFYmnBnq9HgcOHIBer8fp06fF3kpp7KTiUZ2dnaipqYHBYMCFCxcQi8UwNDQEt9sNs9kMnU6H8vJyWK1WmEymrHPDbrcjEomgtrZ2020vUheX8vJy0a7su6Q+7iUlJXA6nTAYDDxXiGhbxriysjIEAgHI5fI7tkgF/r8dpLRFUbom37x5Ew6HQ1xvtVot9u3bJ27oQ6EQfD4fxsfHRdcIj8eDrq4uRKNRsfw9nU5jcHAQBoMBNptNxAK9Xo/du3cjFAphfX0do6OjiMfjiEajiEQicDqdqKmpQUdHBxwOh0jQS7G7uroaZWVlWXFco9GIm76ioiJoNBoR57aKcUqlEhUVFWhqasLevXuxsLCAa9euwefzobGxccNWhby8POzevRtXrlzBmTNn4Ha74XK5HthNHudX/735lVQQc7O5yv2Qy+WorKwUBUi//fZb+P1+9PX1iVVIoVAIOp0OBw4cwP79+9Hc3Lzp2JWVlaGtrQ1+vx9arVYkMm79nAqFAiaTCbt27UI6nUYmk8GePXtQWVm56fjv3LkTr7/+OsrKyjA1NSWOTVotHgqFoFQq0dXVJY7t1vnXVucUkxlE/wG1Wg2bzYbGxkYsLS1t2iJV6pVcUlICm80Gl8slbn42e0otLbNvamqCWq2G0WjE+fPnEYlEkEgkUFFRAa/XC6/Xi9XVVeh0OiwuLqK8vDzrxC4pKUF3dzeUSiUGBgYQDAaRSqUgl8uzKjPL5XKYTCYUFhbCaDTCYrGgpKQEDodDdFih+5efnw+PxyN+J3dit9uxb98+TE9P4+rVq1AoFKisrMzqO65QKFBQUIAXXngB1dXVsNvtmJycxOXLlzE3NweHwyG+a8899xwqKysfSBFXh8OB4uJi1NbWYmJiAqOjo5iZmcHc3BwWFxdhNpthMBhgtVrR0dGB5uZm7Ny5c9OfpVKp4PV6sb6+jtraWjFx1Gq16OjogMlkgtFoxMDAAJaWlhAIBOBwONDU1ITHH38cLpcL0WgU5eXlKCgowOzsLDKZDNLptCjg1tjYCKPRmFX3RXpfaRnkZkXe1Go1qqqqEI1GkUqlNp2kKJVKsdf01razRETbLcbV19fDZDJtWfvhuwoLC7MKDnq9XhiNRhQVFYnrrUajQVNTE7RaLXQ6HQYHB8UNkMPhQH19Pbq6utDQ0IBEIoGCggJEIhERC1KpFJRKJfR6vYgFzc3NKC8vx8TEBI4fP46lpSVkMhkRL1pbW9Ha2rrhiX1JSQna2trgcDiy4rjUcaS5uRkulytrXrdVjJMeDjQ0NODgwYMYGBhALBZDLBaDXC7fMC+Ukh9FRUXQarVoampCTU1NVrKF86vcnF+p1eot5yr369a5vM/nQ29vL2ZmZkTtPWlbSXt7O9ra2rY89pKSErS0tMDv94sV5Zsl0LRaLTo7O2G1WhEKhdDe3g6n03nbOaTNZsPAwADOnz8vjk2pVKKgoAAej2fLY9vqnLobsgz711EOePbZZ3Hs2DEcPnwYhw4d+l7eM5lMIhgMIhgMIplMbrpXXy6XQ6VSQalUQq1Wiz7Qd8q+JpNJRKNRrK2tIRgMIp1OQ6VSQaPRiOCeTCYRCoWQTCah1+uzsrrpdBqxWAxra2uIRCLiCbNOp4PJZBIXzEwmg1AohJ6eHvzmN7/B6uoqXnjhBbz66qtZKzjo/oTDYQQCAQAQv6PbkeqsLC8vIxaLieSWXq/fMMFKp9OIRCIIBoOIRqOIRqNIJpNiz21eXp7oB/6g6p5IBW0jkQgikQji8bgo1intQZYmkJsd863f74WFBaRSKdGSTErG3fq5pO+3FPh1Oh2MRiM0Gg0ymYzo6hOPxyGXy8XPkSqNSy3T9Ho9FAqFeN9kMgmNRoOCgoIN2X3p/0ajUWQyGZSUlGyYYEhPOMLhMGKxGPLz86HVark6g4j+5/T29qKrq0tcwx90jLt58ybi8fhdd4dSqVTiuipdk2OxWNbrkmg0ivX1dYTDYcTjcTGX0ev1MBgM0Ol0G2KBFDellRJSLNDr9VCr1YhEIllt7RUKhYhZer1+Q0JhbW0NKysrUKvVMBgMIo7HYjERpzQajYi3MpnstjEOgDiGUCgkap9tFjfX19fx+eef4+jRo+jt7cXPfvYzdHd3o76+nvOrHJ9fpVIpRKPRTecqD2KeJt2f3HpuSqua7vReiURC1NtLp9N3NV9KpVIwmUzQ6XRbJhoymQzC4TDC4TBCoZA4Nql5we2O7U7nFJMZxGTGNiRdVIaGhvDZZ5/hq6++wmOPPYbXXnsNbW1t//U9gERERPS/m8yghycSieDatWs4cuQIfD4fUqkUPvzwQzQ2NrIlK9E94GMmokeIlJlOJBKi8nhfXx/OnDmDRCIBt9ud1SqWiIiIiB6+RCKBeDyOeDyOhYUFDA4O4ptvvkEkEkFLSwsqKyuZyCC6R0xmED1CwuEwZmZmMDExgfHxcYyOjmJkZARyuRydnZ3o6OhAcXExe5cTERERfY9mZ2cxMDCAq1evYmxsDIODg5ibm8P+/fvx1ltvccUs0X1gMoPoERKLxTA/P4+zZ8/iwoULCAaDKC0thcfjwf79+7Fjxw5otdqsIqFERERE9HAtLi6iv78fIyMjWF5ehlarxUsvvYQnnngCO3fu3LIOFRFtjckMokdIJpNBMplEIBBANBqF3W7H7t270dLSgoaGBhQUFHCQiIiIiL5niURCFG0sKiqCy+XCwYMH4XK5uCqD6D4xmUH0CLFYLGhra0NdXR3C4bDoEHG7zhNERERE9HA1NDTA4XAgGo1CJpOJrhlsxUp0/5jMIHqEKBQKGI1GGI1GDgYRERHR/wiDwQCDwcCBIHqA5BwCIiIiIiIiIsolTGYQERERERERUU5hMoOIiIiIiIiIcgqTGURERERERESUU5jMICIiIiIiIqKcwmQGEREREREREeUUJjOIiIiIiIiIKKcwmUFEREREREREOYXJDCIiIiIiIiLKKUxmEBEREREREVFOYTKDiIiIiIiIiHIKkxlERERERERElFOYzCAiIiIiIiKinMJkBuUEi8UCAJiamuJgEBEREQEwm83i79PT0xwQItpWmMygnPDSSy8BAP72t79xMIiIiIgAeL1e1NTUAAA+/fRTDggRbStMZlBOeP755wEAy8vL+POf/8wBISIiIgLw8ssvAwB+9atfcTCIaFthMoNygtlsxo9+9CMAwAcffMABISIiIgLwk5/8BABw8eJFPvAhom2FyQzKGT//+c9FsH733Xc5IERERLTtVVRUiAc+77//PoaHhzkoRLQtMJlBORWsDx8+DAD4wx/+gN/97nccFCIiItr2fvnLX8JqtWJ5eRk//OEPWQyUiLYFJjMopxw6dEg8ffjxj3+Md999F4FAgANDRERE25bZbMbJkydhtVpx7tw5NDc3o7e3lwNDRI80WSaTyXAYKNe88847+OijjwAABQUF+OlPf4o33ngDFRUVHBwiIiLaloaHh/Hkk09iZWUFAPDss8/ivffew8GDBzk4RPTIYTKDctaRI0fwi1/8QgRsAGhpaUF+fj7eeustvPHGGxwkIiIi2lamp6fx9ttv49ixY+K1goIC7N69GwDw5ZdfcpCI6JHAZAbltEAggCNHjuCPf/wjLl++LF4/fPgwDh06xAEiIiKibam3txe//vWv8de//jXrdU79iehRwWQGPTKGh4fR09ODQCCAffv24fHHH+egEBER0bYWCATw9ddfY2hoCAD4sIeIHhlMZhARERERERFRTmE3EyIiIiIiIiLKKUxmEBEREREREVFOYTKDiIiIiIiIiHIKkxlERERERERElFOYzCAiIiIiIiKinMJkBhERERERERHlFCYziIiIiIiIiCinMJlBRERERERERDmFyQwiIiIiIiIiyin/B8hsuT2o/pCzAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAAXMAAAEKCAIAAABv9SLMAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QMMFyEmW0GCBAAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAACAASURBVHja7Z3NjrPI+fbpyaNZTDQyHY30T6RExqvsYqxsIxUcgfE+EvgITB+B4QiMj8CFcgDgIzBIs42Ms8uKsvRIyUhRXNZoEmmixO/i1lMvY7pt+uvx1/Vb0TQfBXX5qrvuguJut9tpAADwpnyBWwAAgLMAAOAsAAA4CwAAvAkf6quEENPptCgK3J1rxTTN0WhkGMa7niWO4zRNpZS44VeJruuO47iu++h/7/bGhjjnw+FQ0zTGGO7dtZLnuaZps9nM87z3OL6U0rbtoija7fZ7+xc4FUKI9XptmuZisdB1ff/fuwplWZKnbDabHbheNptNt9vVNK0sy/c4PrVjSZLgVl83s9lM0zTXdev/+omzjEYjTdNgKzdiLpqmjUajCzoyOEOeMo2fZHCLomCMPRLYgGvsJDPG3iObRsd0HAc3+Ragiq4LCWNDAIC358M5FIJzvl6vq22paZrvfVIpZa/XS5JEnStN09VqNR6Pj+4bBMHd3R0tG4bBGHtZnlJKaZpmmqaf4XpvgdMKSdf1OI7VetM0G/YAhBBxHPf7/ReX9gyF9MWZCEKlEpfLpWVZND71rgyHQ9d1qzUxHA5ns1mapkf3DcNQFThJkk6n02QvTdMsy8qyrNol4Zzbto2h2SsQkhAiCIJqAqJhzQZBMJvNoihqftILEFI16cIYY4x9/iQQY2yxWKg/F4uFpmnL5VJJJIoiJZqyLNW/NptNlmVqxyzLKJNUliXnvKoz2qssS6r75XLZarWqaafZbNbtdieTSb/fP1pgTdOqBXZd9/BeqpDqSqtXwRgbj8cnue3vUd1UfdX7cyNCotPt6eToANlms9F1nfY9OnhyhkJ6qrrPMc9CcQS5r+/7nudtNpvlctnr9YqiKIpiMBjQllEU9ft9yh5JKS3LoobLNM3lckmtFkUTnHPf9y3LohvBOXccpxqpxnHseZ7jOPP5XAjxrAILIQ4HvVSwvdbV931a9jyvGkWDixZStYdCneXDhUzTtN1uW5bFGOOcHw1VLkVIH85QEJzzVqtlWVZRFNPptCxLVT1RFEVRJISQUuq6nmWZ4zhZllEnk7q1Dw8PURTRM2CmaT48PFD6Os9zdaiiKFR9kDVkWUZd5X6/zzkPguBwIeM4pufNSBnPCmX3cBxnOBzSFcEOLlpI1FMmW1ksFuPx+GjiI4oiOoLneWEY7h3tcoV0LjHLw8ODbdu2bd/f33POqQ8phOh2u0oNjuOsVivKzNEGVK+0TOIgrazX6zAMwzBcrVYUgOi6Xn0eNM/z6t0PgsB1XVrjOE4T469G4FmWHW1tDkDnxesUVyAkJYxWq2WaZhzHh6u1KAohBBkWhVTV7MlFC+lcYhaVTK3Ge/VeBj0lTM2LruuWZZmmSbcyz3Pf96n61SsLrVaLxnpM03wqLpVSzudzKWXVUNI0PfxEhud5qqi+73c6HSoMfts3KyTVSqll3/eVYT0VsGy32/v7+2qcVe/yXCLn4iymadZvqGmaFFsqg1eioZw/7UIR7G63Uz9sx3EO/8hbrVbVRCgJVxUE9Z+f1VYcTsurwis7Q9/nyoRUxzCMA4OG1JgtFgtV4KIoer1eFEUHtHEpQjrrJ+Usy2q1WqQJegNbdXo3m02e51QllmWFYaiqx3XdMAzpdx6G4aMv3akGStM0ddhqPKLyuPRmXf0Iq9Uqz/M8z+fz+XA4pP68cqW9jRljqkgkjjiOlXPR8a+jpbplIan+ERHHcRiGqpbrQuKcU+62erRut0v6uXQhnYWzmKb5lO9mWbZcLul97dFopGrX8zzqyirdqH9FUdRut+mYZVlSblXX9arTUxhMOqvuq8rjui7VU1mW9WCEMZYkyXg8Ho/Hk8mk3W6r4SQpZX1oicIi0zTzPLdt2/f96rVkWdbv9/H7v2ghaZ+ezRt/IkmSyWSiUvt1IRVFUR8o8H1fDVFdtpDO4XmWk7yP12q1mrzp2+/3n/WKJump4QMXhGEYp3r648qeZ4GQPv9tv6TnWT4Duq4HQfDw8HB0y6eeVjic3G2+cRRF3W4XXSEI6cqE9OFmNUEPDuzlw15Zu9qxd3w9z6uOLEgppZSvGbEGENJ5CukDNPE52ZMXtXj4cUJI1yckzKIAAICzAADgLAAAOAsAAMBZAABwFgAAnAUAAOAsAAA4CwAAzgIAAHAWAACc5VSoSVIVr5zOFkBIEJLiRt9InE6nSZLsCYImQ91ut/QRbAAgJDjLM6DPzRiGYdv23r+2263v+2ma0nw2AEBIcJamzGYzmnm//pEgmml9MpngZwMgpNdwi3kW0zSzLMuybG+e0aIoaD0+7gEgJMQsL0HX9fqM/PV52AGAkBCzAADgLAAAOAsAAMBZAABwFgAAnAUAAOAsAAA4CwAAzgIAAGfkLJzzvWeiNU0LguDARySzLLu7u6uvtyyL9qovNCFNU9M0pZRZloUV8jxveAQhRBiGr3zsUkppGAae3bwCIak1YRimadpk3yAIlPDiOK5f0cUJ6bycxfO8535YW9O0KIr29lJr0jQ9rAwp5XA45Jzrup5l2Ww22+12u92uLMt+v9/we71BEMxms/praYexLKv69r2u65xz27ar0gSXKCTlX5PJZDgcNjl1GIZlWZL2kiTpdDoNLelshXS+vSEhxHQ6rccCUso4jqfT6VFfF0LM5/P1ep3neVEU1e2FEHTYKIr6/b56c8wwDGruOOec8+l02qSJmM/nnPM4jpvUZT0UUoWxLKvb7T7XocAZConWBEHQbrcbzgLleR5pL01T13WP7nXmQjovZ6HfM/l9p9MhF9+LSD3PWy6XZVl2Oh2yat/396qB1gghFotFWZaLxYJzXg1AaO4MTdPiOHYc5ynLaLVaTWLgdrttWRZjrImGLMuqX7Uqm+d5cRzDDi5dSGRGjuP4vv+CChVCqNjnQoV0vu860+QXFEdMp1OlCcdxVMgaRVH9/lZvvWEYpCchRKfTkVLquk5RRhRF1P5UBbFer8Mw1DStKIqyLPfmCnsqhKbq9DwvDMOGHaincBxnOBxSOWEQlyskznm/3zcMgypUCGEYxuFyxnFMYQi1Va+MOE4upDPtDdF8fyqTWo1jVf3tZcsOYxiGiinSNKVar++++0S329V1/eHh4fApqpLyPG+z2TQxowOQDpDHvXQhxXFMtqXruuu6TWxCaY8x9vqZdE8upDONWSjI9H3fNM29LonyYMMwnpVC9zxvOp36vj+dTsfj8VO6qQbMpmnuRb/1gGW73d7f31cbqwOtH7gFIaVpKoQYDAbVcx01F5qeThW70+mQLV7onT/TmIWiVt/3679SZcNZlh2NMPdqjjo4ZVk+lVupG/+B1oxSgIvFQrU2y+WySR63nkpE3+eahMQ5H41GuwqtVutZMQjp4aKFdEpnWa1WeYXqv9rtNjUjKixUdzmKIikldXGPGoRhGKvVqqqJwWCgetfUIFTbq+12q8pD8TMp8tHIhXNOudtqjNPtdqnA9XQgwRgLw1BdTlEU1eSfyu3DFC5USJS73VOLyqceCIHVVczn8+Fw2Gq1SAYXKqST9YZM00ySJEkStabadFAFRFHkOA5Fs47jRFHEGHMcx7IsIYTneVRJpmnSjvUF3/c9z1PhLkWwqmp1Xe92u1mWqQxfq9VS8a1hGIvFQtVNPWAuiqL+jANNrUwKfjTGVsH5er22bZsxNhqNlEazLOv3+zCLyxVSlmWu6+4FQbSeXOBRVTDGqldhmqba7FKFVI3ZGGOMsd31MpvN9i5wNpsZhtFk3+femSRJJpPJ4QNWe1IE2dnnuRvvVN30HYzPdhUQ0mmF9FR138p7Q/QA/sPDw16U4XlekxG+R8OTJh3yZ20fRVG320VXCEK6AiHdkLOQ/ddvd5qmR1Nlpmk+t54cxzmcTqPoupp+k1Liq50Q0nUI6W6326k/6Jpf+UQGuBTeqbqzLLNtu5qiAlfMU9WNWRQAAOgNAQDgLAAAOAsAAMBZAABwFgAAnAUAAOAsAAA4CwAAzgIAAHAWAACcBQAAZ7keOOd7L+O9flpjACFBSMSH27zs6XSaJMmeIGhC4+12OxqN8IMBEBKc5Xn0er2iKAzDsG1771/b7ZZme6eZsgCAkOAsTaFPW1mWVZ8BjGaxnUwm+NkACOk13GKexTTNLMuyLNubuLgoClp/uR95ARASYpZTout6/fNxpmni44QAQkLMAgCAswAA4CwAAABnAQDAWQAAcBYAAICzAADgLAAAOAsAABzlNM/ghmHIGDvJd3/v7u6af3J4OBy2Wq0oisIwVCsNw2CMVb/RfQAhRBzH/X7/xQ96SylN00zTFO8cXIGQqqpwXbeJioIguLu7e4H2Tiuk08QsQRCc6rv0i8WC7qzjOIfLkKbpcrkkNQRBUJblbrfb7XZJknQ6nTRNG17pbDarv7F2AMuyqgXTdZ1zblmWlBJWculCUsWeTCZBEDR0z5dp77RCOvF7Q0IIKaWu6/P5XNd113WFEGqZjFYIYRjGfD6XUtJKtazruqZpeZ4zxtQBydrVS2Lz+VzTNLUx2X9RFKvVarVaGYaxXq+73S79l/6l67phGA8PD9V3VemtVrXMOXcc52grMZ/PkySxbTuKInWKR8mybK8BpJtjmibN9xFFUUMt3iAXJCRSRZqmg8GAynz06p6lvTMR0onzLJzzwWDged5ms5lMJsPhUC17nkfVY9u253llWc5ms8Fg4DhOWZaLxUJNilG9j5xzms6Lc/7w8EBHS5JkMBiojYuiKIpCCLFcLoUQruuqRkBK2ev16Lybzeap+luv100EkaZpu922LIsxdnSSsfocH5xz3/eVnuI4hoNcgZA456SKbrfbMPrYs4nD2jsTIb1jzCKlXK1Weyurpk5sNpvlcknuPhwON5uNruuWZdm2TVUrpQyCgBzXtu0kSRzHkVLe398XRXGg07hYLKgahBCdToeaLHV/SXyWZXmel6Yp6S9NU+rH0hmrR4vjOM9z5RdNOjhRFFGNep4XhqGq3RfgOM5wOGzYxF0ZVyak6XQ6Ho9p3+l0Stsf5gXaO7mQ3tFZhBB0BxVFUaRpuheqmaZJF2kYRl0uahvVpJD902aP9hjVyuqRqTyPpr48z1NyUcqg6LG6GXV0NU2jAKTaDjwKtWZUWs/zaCqgF+ca6UKKojhJtvLkPZ2rEVKWZSqEcRzH9/3DpvYy7Z2DkN7RWWhenL2UUpPLfhb1iTCeOzWGYRj9fj9NU0rFUfsmhNir772+bq/XcxznQJY+iqLtdnt/f18NSm/QFyCkqpA453uqiKLoaE+5qj3f9zudDmVMzrnWvrgC2al82wvUoGpuOp2SJkiUhyfvoW32ZhLba+7iOF4sFrtPLJfLOI4Pp+X3znibfZ8rFhKpYrlcKlUsFgvKIj836Dh/IX1WZ/E87/BQ/Ha7fcFh2+02ZcJoisBnhdlUQ47j7Ha7aiqEUv3VjVerVZ7neZ7P5/PhcNjtdqkZ8X2/3uaoLF1VuN1ul7Z8dBfGWBiGSjFFUcRxrDJ/pBWEPBctJFJFNdawLKvVatFJH1XFo9prtVoHtHcmQjqNs6infQzDUDda13U15qeWqytpx+oyOTH1PHVdT9M0iiI6YPXI1Y3Vwng89n1fKcBxnGqtU+ZfVQ9jLEmS8Xg8Ho8nkwljTCmPhjPrjUZ9YI861U/tkqZpq9UyTTPPc9u2fd8fjUYqvZdlWb/fh6dctJAeVUUQBAdUUddeu91Wm521kHYVGGOMsd1NYlnWbDarrun3++Px+OiOSZLs7dhkl8lk8tR/GWPVbhTRbrfrK1/JO1U3fQfjzUsLIZ2nkJ6qbrw3pGVZNhgM6k+vUGrtQDJFcfSRuUdb3eYbU/uJrhCEdEFCgrNoQohut5tl2V6WyzAMzvnRTJ7K1TXn8C57SQQppZQSX/OEkC5LSHc0Tq76hGS9UMkt8E7VnWWZbdvN39YDlx6pPVrdiFkAAOgNAQAuzllopApv698CUso8z9/jOU465gvetQOXCFX0I0KqDhSVZUkbbTabHbheNpsNSUFN/PG20BwFzx1DBRfHbDbTNM113fq/fpLB1TSNcz4cDjU87nntWTea4uxZY5bPCogsy6JZS142ARo4f4QQQgjGWJqm9SGqfWehHaIouoVPXn/77beapv385z//5S9/+fe///2HH37QNO0Pf/jD1V+4aZq+77/3b55znqbpLXSub1NIuq47jvNU4/SIs9waf/rTn/79739/9dVXf/zjH9EQAQjpTbj1saHvv//+X//6l6ZpP/zww/fffw9BAAgJzvI2fcVHlwGAkOAsL+evf/0rBAEgJDjLW/Ljjz/+85//VH/+7W9/+/HHH6EJACHBWV4FPb9zeA0AEBKc5eV9Y8SxAEKCs7xNBLter6uD7rvdbr1eI44FEBKc5bURrPpirlpGHAsgJDjLW0awiGMBhPRWfLjZK//mm2+++eYbTdO+++67jx8//uY3v/m///s//E4AhARneRW///3vaeEvf/nLx48ff/3rX//ud7+DIACEhN4QAADOAgCAswAAAJwFAABnAQDAWQAAAM4CAICzAADgLAAAAGcBAMBZAABwFgAAgLMAAOAsAAA4CwAAwFkAAHAWAACcBQAAZwEAADgLAODsud0Ztv/85z/Twnfffadp2sePH//zn//QGjVnMgAQEpzlefzjH/9Yr9fqz48fP378+FHTtHa7jV8LgJDQG3ohhmE8az0AEBKc5TidTkfTtL3P8ar1AEBIcJaX8OWXX7bb7b3P8bbb7S+//BK/FgAhwVneMo5FVwhASHCWt4ljEcECCAnO8sZx7C9+8QsVwf7qV79CVwhASHCWN+C3v/2tamcQwQIICc7y9j1kCAJASHCWt+Hrr7/+6quv7u7uvvrqq6+//hqCABDSm3BXHYcnhBDT6bQoiqu/+G+//VbTtJ/97GdffPHF//73v//+97+apv3hD3+4+gs3TXM0Gr130xrHcZqmUkoI6SrRdd1xHNd1GzkL53w4HGqaxhiD714reZ5rmjabzTzPe4/jSylt2y6Kot1uo2twrQgh1uu1aZqLxULX9f1/7yqUZUmestlsduB62Ww23W5X07SyLN/j+NSOJUmCW33dzGYzTdNc163/6yfOMhqNNE2DrdyIuWiaNhqNLujI4Ax5yjR+ksEtioIx9khgA66xk8wYe49sGh3TcRzc5FuAKrouJMz8BAB4e85ufpYwDNWyYRiMsc+QAhRCWJaVpqlpmiqTvd1uKdI7TBAE6m201xRYSmmaZrUM4HKFpOt6HMdqvWVZDYdEhBBxHPf7/RfL4EyEdHYxSxAEKq2YJEmn04mi6L1POhwOgyBQNSGE8H1/PB4LIZooeK/AaZo2OallWVmWVbsnnHPbtm9hmPbqhSSECIJAJZ5c1+31eg2LPZvNnlXUMxVSNenCGGOMnTYhpGnaYrFQfyZJUi1klmVBEKRpShmjsiyVesqyzLKsuiUtLJfLKIo459UtidlsRvntdrtdLcN4PHZd13XdJmnIvQK7rtvv9w9srwrGGKMdy7JcLpdq5Xg8/jy3+p2qe7FY7N2TGxQS3YS9UVdVyweS37qu075HB1LOREhPVfe551konUyxw2AwoJ96kiS9Xk8IkaapeiIjCALLssini6Lo9/tqJd3xXq9HeSbOued5juPQn9WDEHEcO47j+341oG0eDx9OgVuWtbeGc+77Pi17nveCk4LzFFJVFaoMB0jTtN1uU9eJc340VDlnIZ0mzyKlXK1Weyu73W791sdxTE9bZVm2WCzU79ayrCiKfN9/eHigLfM8d103yzLHcdI0dRxHCBGG4XK5pG6OYRjUTJFi1KHm87mqD6rd3W5HGe9Wq0XqOXw5cRzTs2ekjNdE3Y7jDIdDKSVG6C5dSCrXI4RYLpez2exooodKQr4QhuHe0S5LSKdxFiHEeDyurimKIk1TsuGHhwe6HfQQJ1VhlmWmaarbRH1LwzDa7XZRFLqut1otx3FIEFmW+b5PDcV8Pp/P53RSWtA0rXqovcakaiUUthx1FhV+U1NTbTpe1rQWRVFvkcBlCUn79Opzu93ebDbT6dSyrAPmQiZFTZrneb7vZ1n2YhmcXEincRbTNKs5p73QznVdahya3BSqfl3XLcuyLItaiTzP0zSlGFW9vtBut/dUWC2PUioJqDqyIIQ43Np4nqeK6vt+p9OxLAtDPLcsJNWxqorE9/0D2f0oirbb7f39fbWRu9wG5sN5yqV+Q3Vd32631TBYRbOcc3o5Stf13W6Xpik970cb+L5/NCBUjQPnnDFWFavjOFEUNe/g0LkOp+WLoqhKEH2f6xPSo8I4MNQopYzjeLFYqN2Louj1elEUHTjpOQvpXDK4nucdjQvKspxOp3RD4zimHofjOHmez+dzqhJqbSikNE2TMUb9ZykljQjWj9xut5URTKfTvb6PyoQVRWHb9qNlW61WeZ5TMYbDYavVosL4vl/PwzHGwjBUZ6RrUU+sUvOIrtClC0mlbIjpdBrHMR35USFxzil3W7XFbrdL+rlEIX04H0Go+/Wo7+q6Tp3e8XhsmuZkMlF3zXVd5daUqFf/StPU932SmmVZpCHDMKpOrxJ1WZZ1u909Z3Ech3NOcfJyuawXjDGWJAkNapIgVNMkpaw3U1Qk0zTX67Vt24yx0WikTpplGQ1GgMsVkvbp5QnVadJ1fTKZqLLVhVQURd2tKNVyqUI6t+dZPj9lWeq63uQ9zOfenCRJJpPJgaPVnwIwDOOzPQly3c+zQEifpwou9XmWz4BhGK7rqkHHAz3hF4z4PGsClCiKut0uukIQ0hUICc7y/2vicNqVcnvPOizlAhtmBKSUUsqjz0cBCOkihPQBalB92lNlBJTgHs0LAgjpEoWEmAUAAGcBAMBZAABwFgAAgLMAAOAsAAA4CwAAwFkAAHAWAACcBQAA4CwAADjLqaBZV6prsizDC4EAQnoTbvSNxOl0miRJfQpV0zQbfhoRAAgJzvIT6HsxhmHUJw3cbrc0DTLNZwMAhARnacpsNqPZ9uvzZtP8gJPJBD8bACG9hlvMs9CnJLIs25tbtCgKWo8PegAICTHLS9B1nSY33xNKfSUAEBJiFgAAnAUAAGcBAAA4CwAAzgIAgLMAAACcBQAAZwEAwFkAAOAcnSUMw73nozVNsyzrwEcksyy7u7urr1d7VRf2XkU9AOecvrPNOQ8/MZ1Omz9SKYQIw/CVj2BKKQ3DwHOcVyAkVaFhGDbcPQgCpb04jutXdBFCOgtnCYKgfvuiKNr7YG0T6ntFUUSvb0RRdPh7t0IIej+VlLFYLHa73W63Wy6XvV6v4bdygyCYzWb1V9QOs6daXdc557ZtH/72ODh/IRFpmk4mk+Fw2NAfy7Ik7SVJ0ul0qoe6FCFdRm+IAoF6LCClnE6n0+n0qK8LIebz+Xq9Looiz/PqjRZC0O5BEPi+r+t6tdUKgoBzPplM4jhu0kTM53POeRzHTeoyz/N6OekaLcvqdrvPdShwhkLSNG06nXLON5tNw7DF8zzSXpqmrusenUfqDIV0vs7i+z7d0DRNTdMkC7csq+rfjuNsNhuKKahS1V7V4xRFIYQoy7Isy6IoZrOZ7/tqA9u2syyTUsZx7DjOU3pqtVpHy5ymabvdtiyLMdZkVrFqwKyiaFU2z/Oa2Bk4cyEVRVGWpeM4nue9YK45IUTVpC5FSJ/vXWcp5Wq12lvZ7XaP3jUpZZqm6t5FUaSqLQgCWk9zZBwwZsuyDMOwLMvzPMMwBoOBqvXNZuN5XpZlrVar+tp7nudhGKptmmgiiiKqTs/zwjCsyu4FOI4zHA6llEdv0U1xcUJSJ/J9v9PpRFF0tKhxHFMYQm3VKyOOkwjp8zmLEGI8HlfXFEVRrekDkeF8Pqcf+V7Up/Z9VnbNsqxWq5WmqeM4nHOqdSHE3mwa1LiRaqmDc3i6DWrQ6Gie59HcP0ev7gCkg6IoXnOQq+zRXJCQKIRZLpeaphmGQVo62uQo7VHw22SXcxPS53MWmibncAj3KLZtU2tgmmZZlq9Jle9FyI7jzOfzJElIEHXdqESd7/uGYTDGnuouUdO03W7v7++rESlM4caFRKFur9er5lyO2gRNVadO0el0aG7dC6qmC8jgZllGvQzLsvbCOZU/e26kR1KoBq40JfIB17+/vz8wekdNkxpOohGlJnnceioRfZ9rEtJ0Op1MJkoVm81GCNE8LFIRx8UJ6ZTOQj1VWl6tVnmF6matVovuWhzHRVGs12v1r4eHB2olDiRfHxWQYRj9fn84HKrWoz7sv16vVXkGgwE1d3u5sWrTRLnbatNKoe+j6UCCMRaGoSpVURTVC1G5fZjChQqJJrKsjl7ruq7Geg70cdRVzOfz4XDYarVIBhckpA+nFYS6L0mSUDCpqsQ0TZIL55xG4DzPS9OUUhie5/X7fcYYbeO6Lh1N7VVdIPP2fd/3fSkl1Y3neYPBQN190zTb7Tb1mbVPEw6q/jxF4Eq+9eClKIr6Mw6UaiEhPhp7p2nq+75pmuv12rZtxthoNFK3Jcuyfr8P47hcIZGE9mIHGlF+Skj1qzBNU4nnkoS0q8AYY4ztboPxeOy67t4ay7KO7liW5d6OR0mSpBoS12GMVXtShGEY9ZVvyDtVN30H411LDiGdj5Cequ5bfG9ICPHw8FB/ktL3/SbPMtETli9uVxsSRVG320VXCEK6UCHdqLNQl1v1blQfmHN+9CWLF2TpHcc5nE6rZgoo6FXBNoCQLlFIdzRsri6VemUQzS3wTtWdZZlt24vFAgHXLfBUdWMWBQAAekMAADgLAADOAgAAcBYAAJwFAABnAQAAOAsAAM4CAICzAAAAnAUAAGcBAMBZrgfO+d7LeFmW4fViACG9CR9u87Kn02mSJPWJmmkS09FohB8MgJDgLM+j1+vRnBq2be/9a7vd0nczaaYsACAkOEtT1q+7GgAABg9JREFUZrMZfXWh/oEomrl2MpngZwMgpNdwi3kWmi6b5lWvri+KgtZf1oddAISEmOVc0HW9PpkgzdePHwyAkBCzAADgLAAAOAsAAMBZAABwFgAAnAUAAOAsAAA4CwAAzgIAAIf5fM/gcs4NwzjJt37v7u6af2Y4CAIhBOecc75er2mlruuMsYYPawsh4jju9/uvebhbSmmaZpqmeNXg0oVUVQVjrMnuQRDc3d3RsmEYjLG9j9Kfv5C++JyCONW36BeLBd3WIAgOl4Fm1qAXzDjni8Vit9vtdrvlctnr9dI0bSip2WxWf0vtMJZlVcum6zrn3LIsKSXc5KKFpIo9m83CMGxyojAMy7Ik7SVJ0ul0GmrvfIR0gveGpJRCCMMw4jjWdb3f72uappZ1XZdSrlYrxlgcx1LKfr9PG6tlTdPyPO92u7quU2tAxkwLtLGmaWpjsv+iKObz+f39va7r2+1W7U7/0nXdMIwwDIMgUOstywqCQNVQFEWO4xy9uvl8niSJbdtRFKlDHZDgXiOmLoem+YiiSJUBXKiQqGCcc8dxqMxHr47eolbLtO8FCekEeZaiKIbDoWVZm81mMpkMBgPHcTabTZIkg8GANrAsy3GcsiwXi0Wv1/N9f7lc0jJZr2VZ6qUvzrnv+7SgjkwbK4MoiqIois1ms1wui6IYj8fV9sS27aIohBBZlh2ov6M2oWlamqbtdtuyLMZYk4nF6lN7qMshSZG4wUULKU3T3W5HhXluMEsecVR75yakD6fSRFmW1Fu2bXu5XFJD0el0qp7tOI6U8v7+3jRNz/Oo0SC5HD0ybVw1cjJ+1RRQq0K13mq1HMfhnFfbH2rQKHwlMTVxiiiKqDo9zwvDUFXty3AcZzgcSimbmNptmstFCIm2p30Hg0ETc4njOM9z1Va9wI9OK6TTjA212+1qQEh9V1qTZRldPFk+LauNGWOHj9ztdhuGmpvNhhqrNE2p1ustw+4T3W5XCDGdTo8KXQhBJadTvDIjQOXBK/kXLSQhxHw+p39ZltVqtZo0UUp7jLHXT6z7+YV0mpjlQJ3puv6aJHZzS/Y8L4oizvl8Pl8ul08lw1TX1Pf9+/v7fr9/oKGLomi73d7f31cbq5OMYtwIFyEkMoVqGBXHMRlNwzyL7/udTofSJZdSNWf3PMsL7t3Lkt6+78/n8zRNGw7pkdQOnEtKGcexGk6iESXKFx6NdPaOg77PNQlpOp3OZjOlirIs69PQvVJ7Zyik0zjLdrt95RH6/f58Pqegt/mAXPXuG4bR7XYfHh5Ups2yLPUAC7Fer/NPDAaDVqtFzYjv+/UECueccrdVcXe7XWqyfN9/NKBljIVhqERTFEUcx6pIVFpEPZcrJM75brerRiiGYfT7fcqbPCokYrVakfDm8/lwOKxq7yKE9PmcxTRNcnR66kyZcbXHq5b3VirrNU2TloMgWCwWNFbPOVcd7GpLpXZUCxS4qmqmTrL6k8YClGJM0yzLcvyJdrtNY4qq81yXWn1Uz/d9OiANkdZvC6X9TNPM89y2bd/3R6ORKlKWZTSYCi5USEKIuio8z1NieFQVjLEkSUh4k8mk3W6rzS5GSLsKjDHG2O5mcF13NBpV14zHY9d1j+64WCzG4/GzzpUkyWQyObABY6zakyLa7XZ95VvxTtVN38F4v2JDSGclpKeq+0Zn2KZYMU3TPfv3fd8wjKIojvbSj2bgXr9LFEX0mBPiFAjp4oT0xc0KotVqVXs3KqjOsuzo4JxlWc99j8NxnMPpNM/zqseUUkop8RFPCOlChXS32+2q10ldMijmFnin6s6yzLbt5m/ugYvmqerGLAoAAPSGAAAX5yw0ZIXX9m8BKWWe5+/xTCcd81nPhoDLhSr6ESFVB4rKsqSNNpvNDlwvm82GpKAmAXnzUVhN06oPnoKrZDabaZr26Pj6TzK42qf3xzU893ntWbdWq1V91uvNAyLLslarlWEYL54MDZw5QgghBGMsTdP6cNW+s9AOURTh/dorxjRNeuDiXc/COU/TFJ3ra0XXdcdxnmqcHnEWAAB4JRgbAgDAWQAAcBYAwG3y/wCUZRH/aQFpSAAAAABJRU5ErkJggg==
* Losing is not the same thing as failing.
* Moral fluency
* The evidence against God is Legion.
* While it is true that many individuals could thrive by electing to be immoral, it is far from obvious that we all could thrive by electing to be immoral. Capitalism, then, cannot be a universalist prescription; it fails the Categorial Imperative test.
* Starter packs are a cliquish form of gatekeeping and stereotyping.
[[American schools suck|2017.02.19 -- The American Education System]]. I would know. I've been a student and teacher in them for a very long time (and recently enough at that). I was homeschooled for the wrong reasons and by the wrong teachers.<<ref "1">> I have hope for my children though (well, as much hope as one can reasonably have these days). 

Status crystallization is setting in, upward mobility is disappearing, and proletariat education continues to spiral downwards. This is the best chance I can offer my children. Unfortunately, I have to work while they learn. I can't tutor them like I'd prefer. I can only do my best at this point, and I've got to teach them to work hard, to focus, and to see the value in studying and understanding the world and themselves as much as possible while they still have the opportunity to do so. I must create powerful autodidacts.

Their brains are still very plastic; their minds are malleable and evolving. They have low-effort, significant transformations available to them before their frontal lobes are fully developed. I'm going to help them maximize their utility and become elite eudaimonic lifehackers. I must give them a //Liberal// education in the oldest sense of the term: //Liber//, freedom based on literacy, etc. I hope they will escape my hell and have the tools to empathize with themselves. I'm here to give them wings before I die.

In addition to critical reasoning, understanding the interconnected contents of the core of human knowledge, and pushing deeper into specialties and key areas of interest, homeschooling is an opportunity for personal development and becoming citizens of humanity.

We are working on empathizing with ourselves, honesty, self-reflection, working hard, doing our best, identifying with our future selves, executive functioning, delaying gratification, thinking about and applying utilitarianism, appreciating and working with our virtue theoretic identities and practices, and understanding the Kantian point of view.

We are working to understand the redpilled nature of the world together, to understand the power dynamics and structures of the world, to appreciate and be skilled in the art of socializing, and to have the means to be happy in a dire world. 

The core tool and nexus of their education will be their wikis. They will become adept users of self-reflective lifetools. Their wiki is their school journal, mind-mapping device, curriculum vitae, and proof of work and competence. They've only begun to use these wikis. They are clearly learning how to use them. With time, they will treasure these creations. You can find their wikis here:

* [[1uxb0x's wiki|http://jedihacker.life/#Home:Home]]
* [[j3d1h's wiki|http://kokonut.life/#Home:Home]]

The current structure of their academic week is roughly:

|customTable|k
|Day|Plan|h
|Monday|Standard school day|
|Tuesday|Standard school day|
|Wednesday|Standard school day|
|Thursday|Standard school day|
|Friday|Vocational training day|
|Saturday|Accountability/Celebration Meeting|

The standard school day covers it all. We start with the most difficult and draining subjects and work our way towards what they find to be easiest and most fun. They are freshest in the morning, and least inclined to work later in the day. They have the will to wrestle and focus in the morning because they've not been toiling at it for hours that day. That's when we work on formal reasoning and problem solving. Afterwards, we move into humanities, narratives, simpler practical life skills, etc. We continue into the territory of more accessible and fun things. This constitutes simple brainstorming, brainfarting, searching, watching, and less drudgery-based activities for them. Eventually, we get to physical education. 

[[1uxb0x]]'s standard school day schedule:

|customTable|k
|Subject|Minutes|h
|Morning Routine|15|
|Mathematics|60|
|Electrical Studies|60|
|Language Arts|30|
|Reading|60|
|Handwriting|15|
|Writing (typed)|15|
|Humanities|30|
|Curation|30|
|Redstone Art|60|
|Physical Education|15|

[[j3d1h]]'s standard school day schedule:

|customTable|k
|Subject|Minutes|h
|Morning Routine|30|
|Mathematics|60|
|Computer Science|60|
|Formal Reasoning|30|
|Spanish|15|
|Literature|60|
|Humanities|15|
|Writing|15|
|Curation|30|
|Redstone Art|60|
|Physical Education|15|

Physical timers have been immensely useful to staying on track and chunking their subjects into manageable segments and deliverable workloads.

Bootcamps are available to both children to replace [Mathematics + Vocation + Curation] sections of a standard day (they are allowed one bootcamp a week). These are one-time immersions into subjects which I think are worth diving into. It's a curation + landscape discovery + project setup phase. Once you've sunk your first few hours into a thing, it it more likely that you will have the logistics and workspace setup to continue working on it if you so choose. Break down the barriers to entry to new topics and practices. Bootcamps are practical, self-made bridges to new intellectual and lifeskill landscapes. It's a key skill to being a lifelong learner. They have to have something to show for it at the end of the day. I should see their research and curation, their workspace and toolset, as well as a minimal product of some sort.

Both children practice their vocation each schoolday. I would love to see it on Saturdays as well, but I want to give them the freedom and space to decide for themselves that they value doing so. I don't want to dominate every hour of their lives. It has to be up to them. That said, it's clear we need to push hard into their vocations.<<ref "2">> It's a place to be excited, to encourage them, and to help them see the value in their work. 

Vocational training days are about accelerating the pace at which they acquire the mythical 10,000 hours for mastery of the vocational practice we've selected for them.<<ref "3">> They only spend an hour each standard school day working on it. Vocational training days will provide an additional 7 hours of each week: that's about 11 hours a week. It isn't much, but we'll fill that mastery bucket droplet by droplet. It's consistency that matters right now. It will fill the cracks of their days more and more. It will be a thing they do because they want to do it, not just because they have to do it. It will become an obsession and artform for them. They will need it to feel satisfied. They are walking from the shallow end of getting their feet wet into deeper waters of these subjects. It is a place for projects upon projects. I want them to see how they should spend their leisure time (I mean this in the oldest sense of the term as well). I want them to understand what long-term, structured focus on a field is really like. I want them to walk away with a crucial skill that sets them up for success.<<ref "4">>

Here are the portals to all things related to their homeschooling found on this wiki:

* [[Homeschooling Both Children]]
* [[1uxb0x: Homeschooling]]
* [[j3d1h: Homeschooling]]

Ideas:

* The Tool Rule
** When I do have the money, I want to be consistently buying my children tools for their trades. I want them to set things up, build things. I want to pay them for their labor on themselves. I want them to see what it's worth in as many ways as possible.

-------------

<<footnotes "1" "It is clearer to me that the more I engage in this process, the more I realize how terrible my parents were at being parents. My success as a parent shows me what is morally salient about their failings. Kids, religion is a helluva drug.">>

<<footnotes "2" "One can (and should) have multiple vocations. I also don't mean vocation here in the stronger, purpose-filled sense that I generally use it. I mean it in the votech, tradeskill-oriented occupational sense.">>

<<footnotes "3" "Of course, they helped select these subjects. Without their buy-in, this doesn't work as we need it to.">>

<<footnotes "4" "Ultimately, they may choose not to go into these vocations, and I'm completely fine with that. In that case, they have a strong backup plan to fall back on. I believe that regardless of where they end up, these skills will actually be put to good use though. Additionally, the art of learning to learn will be there for them. They will understand the value of hard work, of practicing correctly, and understand their limits.">>
I very much appreciate having [[Homeschooling 1uxb0x]] and [[Homeschooling j3d1h]]. They are key to planning and thinking about them individually when it comes to homeschooling. However, I have principles that they keep in common, these are general concepts and strategies that they both share, the tactical implementation and application, however, varies with the individual child. I need a place to think about the collectively, just as I do for them individually. This is that place.

I build templates here. I build concepts here. I then go and apply them to each child. This is for more broadly universalized content. We will have a basic structure like this:

*Academic Gameplan:

** [[2017.04.15 -- xxxx: Gameplan for Homeschooling]] 
** etc.

* You do the following chores each (or every other) day as needed: 
** You clearn your downstairs area
** Your perform basic cleaning of your room (bed, desk, drawers, etc.)
** You clean the kitchen (on rotation)
** You push your laundry through when you have a load to do

* You do the following chores each week:
** You clean the xxxxx bathroom
** You completely clean your room

Gameplan Structures will look like this:

* Morning Routine – 30 minutes
* Elective: Cosmetology/Curation – 30 minutes
* Math – 60 minutes
* Writing – 60 minutes
* Vocational Theory – 60 minutes
* Lunch – 60 minutes
* Vocational Practicum – 60 minutes
* Reading – 60 minutes
* Social Studies – 30 minutes
* Elective: Spanish, Language Arts – 30 minutes

We are working on empathizing with ourselves, honesty, self-reflection, working hard, doing our best, identifying with our future selves, executive functioning, delaying gratification, thinking about and applying utilitarianism, appreciating and working with our virtue theoretic identities and practices, and understanding the Kantian point of view.

We are working to understand the redpilled nature of the world together, to understand the power dynamics and structures of the world, to appreciate and be skilled in the art of socializing, and to have the means to be happy in a dire world. 

I'm trying to bring order to the chaos of homeschooling. Tailoring to the needs of one's children is not simple, especially not with children like mine.<<ref "1">> I am putting out many fires, and trying to figure out what works. Our needs change, and thus our solutions must vary. It is what it is.

This is a place to plan, digest, and celebrate the didactic work of my children. 

Here is a template: [[Homeschooling Log Template]].

!! Vault:

* [[2017.02 -- Homeschooling Log]]
* [[2017.03 -- Homeschooling Log]]
* [[2017.04 -- Homeschooling Log]]
* [[2017.05 -- Homeschooling Log]]

!! Current Month:

* [[2017.06.03 -- Homeschooling Log]]
* [[2017.06.10 -- Homeschooling Log]]

---

<<footnotes "1" "Everyone thinks they are exception, the special snowflake. I don't know what to tell you. There is significant psychological/sociological deviance in my family. We look weird on a wide variety of metrics and bellcurves. We're very much not normal. We have to know who we are. It's not about being cool or different. It's about realizing what works and doesn't work for us and why.">>
```
!!General Notes:


---
!!j3d1h:

* Review past week: 
** Interpersonal Skills: Cosmetology
*** 
** Math: Singapore Math
*** 
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** 
** Vocational Practice: Applied Computer Science
*** 
** Reading: "Literature: The Human Experience"
*** 
** Writing: 250 word count in her wiki
***
** Social Studies: Khan Academy - World History
*** 
** Spanish
*** 

* Plan next week:
** Interpersonal Skills: Cosmetology
*** 
** Math: Singapore Math
*** 
** Vocational Theory: Commenting on Algorithms and Data structures written in Python
*** 
** Vocational Practice: Applied Computer Science
*** 
** Reading: "Literature: The Human Experience"
*** 
** Writing: 250 word count in her wiki
***
** Social Studies: Khan Academy - World History
*** 
** Spanish
*** 


---
!!1uxb0x

* Review past week:
** Interpersonal Skills: Depression Workbook
*** 
** Math: Life of Fred - Edgewood
*** 
** Vocational Theory & Practice: Reading Comprehension
*** 
** Reading: "Fairy Tales from the Brothers Grimm"
*** 
** Writing: 150 word count in his wiki
*** 
** Social Studies: Khan Academy - World History
*** 
** Language Arts: JacKris Books
***


* Plan next week:
** Interpersonal Skills: Depression Workbook
*** 
** Math: Life of Fred - Edgewood
*** 
** Vocational Theory & Practice: Reading Comprehension
*** 
** Reading: "Fairy Tales from the Brothers Grimm"
*** 
** Writing: 150 word count in his wiki
*** 
** Social Studies: Khan Academy - World History
*** 
** Language Arts: JacKris Books
***

```
```
@@display:block;text-align:center;

foobartexthere

@@
```

```
using pure HTML:
   <div style="text-align:center;">[img[...]]</div>
```
```
using wikitext inline CSS:
   @@display:block;text-align:center;[img[...]]@@
```
```
using a CSS rule in a tiddler tagged with $:/tags/Stylesheet:
   .center { display:block; text-align:center; }
and then write:
   @@.center [img[...]]@@
```

Note that "display:block" is required for centering to work, otherwise the left/right extents of the containing element fit the content (i.e., match the image dimensions) and there will be no extra whitespace to center the image within.
Everybody thinks they are (epistemically) right. If they think there are limits to their knowledge, they think they are right about that limit (and the various implications of that limit). People trust themselves too much. It is easy to see how the beliefs and arguments of others are flawed, but we cannot see where we fail. 

Most people think they are the heroes in the stories of their own lives. Most people believe they've overcome real adversity, that they are the victims, that they generally behave according to what they (subjectively) see as what is morally right. Nobody thinks they could possibly be evil. People believe they are as they ought to be, but they are quick to see how others are not as they ought to be. People do not reflect over their own lives very much.

People are hypocrites. We are arrogant; we think we are better than we really are.
```bash
#!/bin/bash

# Before you run this script, you need your drives mounted first, obviously.

# Install samba
sudo apt-get update
sudo apt-get install samba -y

# You know the password
sudo smbpasswd -a h0p3

# Add the share to samba's config file
sudo cat <<EOT >> /etc/samba/smb.conf
[HTPC-Share]
path = /mnt
valid users = h0p3
read only = no
EOT

# Start the service
sudo service smbd restart
```

```bash
#!/bin/bash

login="user"
pass="pass"
host="host:port"
remote_dir="/foo/bar"
local_dir="/stuff/things"

trap "rm -f /tmp/seedboxsync.lock" SIGINT SIGTERM
if [ -e /tmp/seedboxsync.lock ]
then
  echo "seedboxsync is running already."
  exit 1
else
  touch /tmp/seedboxsync.lock
  lftp -u $login,$pass $host << EOF
  #set ssl:verify-certificate false 
  set mirror:use-pget-n 5
  mirror -c -P5 --log=seedboxsync.log $remote_dir $local_dir
  quit
EOF
  rm -f /tmp/seedboxsync.lock
  trap - SIGINT SIGTERM
  exit 0
fi


```
I expand on this term borrowed from Christine Korsgaard. She may be deeply right.

It is not easy to see how our agency exists. The coherentists and constructivists who define agency in terms of constitution, psychic unity, and self-integration seem completely unable to call morally wrong things, people, choices, actions, maxims actually morally wrong. There is only good action. My truism that we all [[do the best we can with what we have]], in conjunction with this neo-Kantian, neo-Aristotelian view of agency, results in the fact that we only do good. Insofar as we are good, do right, we are agents. Otherwise, we are not.

Do I need to be able to hold someone morally responsible for doing evil? It seems necessary to have the yang to the yin in this moral equation. Perhaps not. Maybe noone is blameworthy. If so, do I even really care about freedom? I don't think so. All I care about is being constituted in a way that makes me happy. Presumably, being "morally virtuous" (even if morality doesn't obtain) is something that would constitute me and make me happy in many ways.

<<<
[[RPIN]]: Ah, friend. It is obvious that moral people are not happy people. Don't you see? You can either be moral, or you can be happy in this life. You are, essentially, Hursthousianly marred at the very least. It seems perfectly obvious that bad people are some of the most integrated as well. What say you now to your psychic unity? You yourself, [[KIN]], know it. See your previous work in [[Summa Theologica]].
<<<

<<<
[[KIN]]: To be clear, we are deep into constructivist territory here. We've already begged the question that our view doesn't spiral into moral relativism. We create our own value. It's standard looking existentialism. Once you beg that first question, are we really going to be unwilling to beg a lesser question such as the non-existence of rationally justified, objectively true blame? You've already thrown out the baby, does the bathwater really matter?
<<<

It's the way human societies have already organized, in levels of slavery to each other. It is the hierarchy of power and wealth. 
So I've learned the awful truth about who we really are as humans. It's time to move on. To accept this red pill and figure out what I need to do. It is the only practical option. Accepting and dealing with the red pill experience is my plight.

[[The Red Pill]]

[[How We See Ourselves]]

[[Libertarian Taxation Non-Hypocrisy]]

[[The Good]]

[[The Problem of Doxastic Voluntarism and Christian Salvation]]

[[The Problem of Undeserved Grace from God]]

[[Voting]]

[[Empathy]]

[[Love vs. Like]]

[[Pragmatism]]

It is very clear to me that comedians are philosophers of a sort. They tend to be damaged, intelligent, psychopathic, economical, and intuitive. I think of them as articulate and more well-intentioned magicians. They see the cracks in society and in ourselves. They laugh about what we fear and don't understand. It's a strong fight-or-flight mechanism, an oscillation.

Collections:

* [[Anti-Humor Collection]]
* [[Back-Handed Compliment Collection]]
* [[Dark Humor Collection]]
* [[Euphemism Collection]]
* [[Latvian Potato Humor Collection]]
* [[Limericks Collection]] 
* [[Masturbation Euphemism Collection]]
* [[Philosophy Humor Collection]]
* [[Pun (is it really humor?) Collection|Pun Collection]]
* [[Self-Deprecating Humor Collection]]
* [[Fun Word Collection]]
* [[Racist Word Collection]]

//Here I pretend to be the philosophically inclined, redpilled version of Dr. Fred de Rosset, blessed be His name.//

This film is a drug. It is, as they say: //dope//. It has clear cult classic appeal. It has the impact and hallmarks of a //Feel Good Film//. It was uplifting. Of course, that which makes me happy in the short-term does not necessarily make me happy in the long-term. Know thyself, and thus, know thy drugs. It makes me happy, therefore a grumpy, redpilled fool like me doesn't trust it, especially because people made money from it. This movie made me happy. But, should it make me happy? 

Perhaps you think I'm sabotaging my own happiness. Perhaps you think I'm ungratefully looking a gift-horse in the mouth. Perhaps you think this movie doesn't actually have anything to say, that it doesn't mean anything, and that I should just enjoy it without thinking about it. I'm not so convinced. There is an element of sophistication to this movie which we should not overlook. Of course, you might claim that rigorously examining the film would be missing the very point of it, as if entering into the Heideggerian Present-at-Hand mode is exactly what it is preaching to us not to do. As far as I can tell, this movie fits into that canonically patterned oscillation between the Romantic and the Rational in the history of the Great Human Conversation. It cries out to us about the relationship between our Fastminds and Slowminds. Pay attention! 

I cannot neglect the profound components of non-cognitivism and religiosity in this story. Forgive my distrust in or of my feelings. If you had experienced the pain I have, passing through the spiritual fires and existential school of hardknocks I did, you would be wary too. My goal is to understand the intellectual substances I put in my mind in roughly the same respect that I understand the physical substances I put in my body. Why does it make me feel and think the way I do? How does it affect me? Is it good or bad for me, and why? Let us be wise in our critical examination of this film. 

I must parse this experience and investigate the phenomenology of this film like I would any mind-altering substance. It's a matter of risk analysis. What is the core of its memetic power and affective hold over me? Why should I take its message to be authoritative? Why should I trust the motives of the authors? While it feels like I'm in the author's good hands, that doesn't make it true. Have I been sent a propagandistic memetic bomb or door to utopia?  Is there a meaningful message, or was this merely an enjoyable ~2-hour masturbatory film? Do I have an existential threat to neutralize or a friendly antidote to my own poisoned soul to embrace? The devil always looks delicious. Raise your shields to full power!

Not to be dismissed, even parts of the film itself could support the claim that I'm justified in employing a Straussian interpretation of it, in being: rebellious, hypercurious, imaginative, analytic, and paranoid about its message. Although, ultimately, it is not clear what counts as the definition or role of reason in this story. Humor is disarming. Does it always tell us the truth though? Hmmm...not obviously. The worry is that this is a rhetorical Trojan horse, a heretical device. Do not //Slip//!

What does this movie really hold in store for us? What is the meaning and purpose of this film? Why was it made? Who is it for? Who are the villains and heroes of this story, and why? What are its themes, aphorisms, quotes, and principles? Why is it so successful at affecting me and people like me? Why does this drug hit us so strongly? 

In a sense, I'm begging to see how the sausage of my-happiness-from-watching-this-film is made. While dissecting such experiences may cause them to lose some of their luster, I do so as a matter of practical wisdom. I'm here to interrogate my drug-dealers and scrutinize their wares. 

---

!!Opening Intuitions, Feelings, and Gut Instincts:

To start, I often compare things I don't know to things I know better for illumination. 

If Tim Burton made a [[Deadpool]]'ed, [[Indiana Jones]]'ed version of Happy-Happy-Joy-Joy Kiwi [[Deliverance]] it would be this film (you can bet your ass that M. Night Shyamalan came rainbows watching this movie too). I gutturally associate this film with [[Lost in Translation]], [[The Royal Tenenbaums]], [[The Grand Budapest Hotel]], some [[Little Miss Sunshine]], and a hit of [[Shaun of the Dead]]. It has some of what I take to be the usual Oceanic senses of humor, aesthetic, and storyline (at least for the handful of Oceanic films and shows that are famous enough that I've seen them [I'm not a connoisseur]). 

Like any good theatre, this movie hits you right in feels, a variety of them. 

The Hunt for the Wilderpeople:

* satirically lambastes the Kiwi judicial system
** It takes particular aim at racial discrimination, especially found from colonial to indigenous populations

* is poignant, charming, sentimental without being unbearably cliché or boring. 

* is eccentric, idiosyncratic, and charged.

* is disorienting, absurd, and slapstick

* is super cute, warm, and ironic.<<ref "1">>
** It is so cute that a non-trivial portion of fat people in our population who are overly-sensitive trigger-warning-prone about their weight would laugh at the fat jokes because they are that fucking cute.
** It's cuteness allows it to touch us. We are willing to make ourselves vulnerable to it.
** It's absurdly GIF-quotable.

* is deadpan farce.
** It causes you to burst out laughing at its absurdities. It's a work of art.
** It's filled with a series of exaggeratedly fortunate and unfortunate accidents.
*** It's supposed to feel serendipitous, "wonderful" in the sense of "fanciful," and ultimately religious.
** They stuck their tongue in my cheek. 
** It's realistic and unrealistic at the same time. The contradictions stream out, and because we can disarm the contradictions by accepting its humor, it becomes surreal to us.
** It is absurdly redpilled in some respects, and absurdly bluebilled in others.

* rides the edge of not being disarming enough.
** It's incredibly optimistic while being hilariously tragic. 
*** You want to be cynical as you watch it, but God damnit, it's just too cute and funny.
** is filled with hope that is temptingly believable.
** It's like we're experiencing strong anti-hate emotions while running through an obstacle course designed to make us hate.
** It damns society while forgiving it.
** It forces you to empathize with the characters, and some of the jokes pull you out of empathy. It's like you are zooming in and out of empathy.

* is fast-paced in its delivery of conversations and literally sprints through the chaptered plot-line.
** Character development is honed to an art-form in how quickly the audience comes to understand and love these characters. 
** The scenes are so sparse yet rhythmic.

* has bad-on-purpose B-rated-film audio.
** It's retarded bad, and it adds to the comedic effect of the film. 

* feels like an R-rated PG movie.
** It's got some Disneyfied (closest to [[The Lion King]] in multiple respects) [[Kill Bill]] gore action going on.

----

!! Characters:

There aren't many characters worth examining in this story. It is very brief in a sense.

* Ricky Baker
** is a fat, delinquent protagonist who we initially see as having no future in society.
** is a wild child hooligan outcast of civilization. Whatever kind of wilderness there is in civilization, he seems to have explored it.
** is not loved. His own bloodmother abandons him. Nobody wants Ricky, except Bella and Kahu.
*** Paula only wants him insofar as he is useful to her career or other aspirations.
**** Ricky is a nuisance, professional marker, and a number to process to Paula.
*** Kahu's father appears to use and objectify Ricky as well.
** calls his dog Tupac instead of a matching "Zig" to Hec's "Zag."
** struggles to be self-sufficient, but in pursuit of that comes to recognize the value in being dependent upon others. He does want family.

* "Aunt" Bella
** is pragmatic, brutally honest, filled with gusto, and has a healthy dose of wilderness in her.
** is spiritual and attempts to live off the land (although, obviously doesn't when it suits her).
** pierces Ricky's defenses right out of the gate, but at the same time pokes fun at him almost mercilessly.
** offers dangerous options and puts Ricky in riskier scenarios than we might expect a motherly figure to do.
** passes away very abruptly.
** took pity on Hector. Bella didn't seem to need anybody, but rather needed people to take care of. 
*** Hector needs Bella's help. There is an asymmetry of needs here.
** is the Earth mother figure. She is warm, nurturing, loving, but not safe.

* Hec, "Uncle" Hector
** oozes fake machismo (Neill is quintessentially not that in any of his movies) which is meant to drive the cartoonish picaresque wilderness storyline.
** is an illiterate ex-con manslaughterer turned half-savage bushman, but oddly enough has a hard to pin down civility about him.
*** He doesn't seem to trust language in general.
*** He slowly comes to appreciate the value of reading and literary self-expression
** is stoic and self-sufficient.
** is remote, at times rude, mildly misanthropic, and prefers nature to civility.
** has an unclear but somehow believable connection to his wife Bella. 
** doesn't want to father Ricky.
*** After some negotiating, Hector begrudgingly takes care of Ricky in the bush. At the end, Hector learns to read and function in society as well. Ricky has an impact on Hector, and vice versa. They empathize with each other, and it's the core of their survival in the wilderness.
*** They obviously have much in common, despite the oil-and-water vibe, as they are both victims of "civilization."

* Paula
** is a  bureaucratically motivated social worker.
** hunts Ricky and Hec.
** chants "No Child Left Behind." 
** undergoes a kind of Dolores Umbrification.
** isn't an authority whom we should trust. 
*** Her motives and execution are all suspect.

* Psycho Sam
** is a paranoid, wiry lunatic who is delusionally detached from reality.
*** It is most unclear what counts as valid authority in this film, but Psycho Sam's character is meant to motivate the claim that we must trust authorities beyond ourselves though.
** He's a bad example of merging the urban and the bush. He doesn't do it in a healthy way. 
*** Psycho Sam isn't naked, so he hasn't gone completely crazy.
*** He's not naked, but he's half-naked. On the front, he has clothes on, but on the back-end, he's gone bush.
***Part of the problem is that he is alone. He doesn't have someone to balance him. 
** Hector rejects civilization, although seemingly in a more sane way than Psycho Sam.

* The Minister
** is played by the director of the film.
*** He's breaking the fourth wall, in a sense.
** has a message for us. But, what is it?

* Kahu
** I do not understand her role at all, except for us to assume there is a kind of undue hope for Ricky.

---

!!Quotes and Dialogue Analysis:

I was going to do a complete analysis of the transcript, but I'm not convinced it is necessary. It's probably not worth it, and I don't see hints of a deeper narrative to inspect (even if I don't know what it means). If for some reason I believe my analysis is wrong though, I may need to revisit this option.

<<<
One day you're here, and the next day you're in a box
<<<

Yup. Classic. Carpe diem. Yolo. Buddhism knows what it do.

<<<
All Eyes on Me
<<<

Perhaps a playful knock at Millenials, or humanity, or maybe it is to be taken more literally.

<<<
You know, sometimes in life, it seems like there's no way out- like a sheep trapped in a maze designed by wolves. And you know that if you're ever in that situation, there are always two doors to choose from. And through the first door- oh, it's easy to get through that door- and on the other side waiting for you are all the nummiest treats you can imagine- Fanta, Doritos, L&P, Burger Rings, Coke Zero. But you know what? There's also another door, not the Burger Ring door, not the Fanta door; another door that's harder to get through. Guess what's on the other side? Anyone want to take a guess? Vegetables? N-No, not vegeta- No. WOMAN : Jesus? You would think Jesus. I thought Jesus the first time I-I-I-I came across that door. It's not Jesus. It's another door. And guess what's on the other side of that door? WOMAN : Jesus. Jesus. Yeah, Jesus. He's tricky like that, Jesus. So let us pray, to Jesus, please, and make it a bit easier to get through those doors, uh, to find you and your bounty of delicious confectionary. Thank you, Selena. Take it away.
<<<

This is probably the most cryptic but important dialogue in the film. The Minister just is the director. He's breaking the fourth wall to tell us something. What is he really saying? It seems like he doesn't actually answer the question in any meaningful way. That might be the point. I don't know. It obviously has a great deal of sarcasm in it. Nietzsche would be amused.

<<<
It's not a thing. It's just- You just get it. It's a... Oh, it's a way of, um- it's a way of figuring things out without having to think too hard or... or talk, more importantly. You know, most people who die in the bush- they're found naked. Ew. Yeah, they panic, and they think their clothes are slowing them down. They throw them away, and then the cold gets to them. But the trick is- this is the knack- you stay calm, you look for water, you follow it to high ground until you can see what's going on.
<<<

This was actually genius. It was one of the clearest, most direct examples of [[Fastmind]] virtue-theoretic reasoning I've ever seen in a film. It could hardly have been more direct, except for being more technical.

It is befitting that it is not explained in a philosophical rigorous manner, using the standard terms of art. Virtue theory's argumentation towards inarticulacy, non-cognitivism, quietism, innate, nature-based, faster-acting, emotional reasoning is crucial. It argues for affective rationality in the face of a frontal-lobe rationality mindset. It's a key to practical wisdom. It's about having the right dispositions, salient perceptions, and virtue-theoretically trained emotions and gutteral, blink-of-an-eye inferences about the "moral" world. It's methodical means to pursuing eudaimonia.

<<<
Oh Sinner Man, Where are you going to run to?
<<<

Perhaps a red herring. Likely not.

<<<
You don't trade family for anything.
<<<

I know many that do. Where's the argument kid? If family just is a social construct, and we make of it what we do, this could just be relativized into nothingness. I like the thicker than blood approach. Taking it to the Nth degree can be non-intuitive for most people I know.

---

!! Keywords: 

* Ornamental
* Rickytown
* The Knack
* Gangster -> Outlaw -> Skux

I have nothing to say about these at the moment, even though there is plenty that could be said for them. 

---

!! Themes:

* There are deep asymmetries in how different kinds of animals are treated. 
** The murdering of the pigs. The rejoice in violence towards them. The smaller animals were skinned as well. You gotta' eat, yeah. But, you don't hunt horses, and you protect your dogs.
* How grief is handled
** Hector stuck Bella in a box. Ricky takes her with them, converts Hector. They take her to where the sky and the Earth meet to let her go. 
* The extinct bird represents this idea that man can live outside the structure of society.
** They are going to find that bird. It is a kind of freedom.
* It has the nostalgic, sirenical call of Romanticism. 
* Escapism, Survivalism not just on a physical level, but also on a mental level.
* Authority
** It examines authority and those who don't fit the mold. In the end, they have to find a way to work within the system yet still be themselves and escape it.
* Pop Culture
** There is an interesting mix of the old legends, the Maori, and pop-culture references. They all take pop-culture to be a new religious iconography. They see themselves as characters in pop-culture. Pop culture is a lens through which the young "process" themselves and the world around them.
*** That's ironic, because I ask myself which character in this movie I'm like. Who do I personally identify with on the show, and when?
**** Psycho Sam, a bit.
* Food is odd
** Paula gives granola, dried fruit, and chocolate
** Bella gives you meat, sausage, pancakes, and "real" food.
** Hector gives you eel. 
** Ricky tries to eat stupid food. Salad and treebark.
** Psycho Sam has food that ought to be civilized. He has dusty biscuits that aren't good anymore.
** Kahu, the chick on the horse, his first true love, also gives him sausage. 
*** He ends up with her and her dad.
* Family isn't defined by blood but by shared experiences.
** Memetic networks, rather than genetic networks, are the fundamental structure of family.
* It's got that "O Brother, Where Art Thou" outlaw protagonists searching for meaning, freedom, and family kind of thing.
* Haikus
** Some dark shit in them.
* Coming of age
** Not your normal telling of it
* Growth



---

!! Meaning:

Whatever it means, it is meant to hit us right in the feels. The memes are strong with this one. It has a message too on the order of magnitude of [[Dogma]] and [[Donnie Darko]], or not?

The funeral scene, in handling the pain of evil, is the heart of the message. The Sermon of the Doors was meant to show us that turning away from impulsive, short-sighted, psychopathic desires of the world and taking the other, harder-to-pass through looking door of Empathy will actually make us happier. Or, maybe it's going for a less prescriptive existential claim. I'm not sure.


---

!! Purpose:

* To make us believe in humanity again.
* To cause us to empathize with humans again in a respect we lost before.

I'm okay with that.

I despise how it fails to give us good reasons to accept its blind optimism and hope. 

----------

<<footnotes "1" "I realize the word 'ironic' isn't cool to use anymore. It's just a fact about this movie. Irony is what surprises us in this film; it's the source of much of its humor.">>
It is an obvious fact that Virtue Theory offers no obvious content-giving to decision procedures (they are even proud of the fact they don't have a rational ([[Frontal lobe rationality]]). Virtue Theory is the moral theory of the Fastmind. It pieces enough confabulations together that its Teleology can appear justified. Who is in control fundamentally? The Fastmind or the Slowmind? The Fastmind is clearly capable of being a warzone of rising intuitions and splinters in us. 

Kant's Groundwork is a masterpiece of masterpieces. Kant, imho, was the smartest person to have ever lived. His type: a scholar's scholar's scholar. He was the Archimedes, the Shakespeare, the most praiseworthy of all philosophers. I am proud to have even understood what I understand of his work. Kant was deeply virtuous man, and a man I could only aspire to be like. Kant was my hero. And, yet, even masterpieces of masterpieces can have mistakes in them. 

Kantians have never given fundamentally good explanations of how to implement Utilitarian thought (which is obviously true, to some degree, in any plausible moral system I've found). Kant seems to deny it outright, but it is obviously not effective at explaining key ways in which we employ the CI today. But, even if we weren't to deny it, Kantians still can't explain how Utility fits into the CI to a reasonable enough extent. It is a critical flaw, as far as I'm concerned. The problem is that utilitarian equations only seem to matter too far towards the end of the decision procedure found in the [[CI]]. Utility is clearly very deeply embedded in the CI decision procedure; integrated beyond what many people want to realize. Kantian's are very emotional people (fucking brilliantly intelligent and literal in so many ways too). 

They are the human gods. They obviously aren't supernatural in the metaphysical sense, but they border on being supernatural in terms of the unbelievable amount of power they wield (it is breathtaking and fucked up). 
The 90's were a special time. My first website was an Angelfire ad-based freebie. I didn't know anyone else who had their own website back then, and it was a fun thing for an asocial teenager to do.<<ref "1">>  My "coding" experience was limited to TI-83 Basic and QBasic.<<ref "2">> HTML and Javascript were totally new to me, and I had a blast. I'm sad to say that I can't find any of my work from back then. I stopped having a website in college, but after college I started publicly writing and programming again. Hypercynic was my second website.

I was a budding, naive, idealistic young adult in the 00's (and most of the 10's if we are being honest). While I was taking my first ass-raping redpill, getting my dreams and soul crushed by a reality I was obviously unprepared for, I spent time writing on a more professional personal website. It was a lot of fun, and it kept me sane. In a way, it was a predecessor to this wiki, and I wish to honor it by preserving its memory here. I found a copy of an encoded text file version of the site I made before taking it down, and I was wise enough to have backed it up with the original "G-Mail Drive" program (an unauthorized version of Google Drive which came out years before Google decided to officially compete in that space; it was the first "Dropbox"-like cloud for digital hoarders I'd ever used). I want to warn you that the formatting is particularly atrocious even after plenty of ctrl+h replacements (because I'm still too lazy to code it) to make it legible and sanitized.

It makes me laugh and cry that I thought I was hypercynical before. I didn't like the world, the people in it, myself, but I didn't know why. It's been a long decade trying to figure that out (and, perhaps, that suffering and searching will only continue). Obviously, I'm a radically different person than I was a decade ago in many ways.<<ref "3">> I accept the cringe with the nostalgia. It's the nature of the self-reflective beast. My blog<<ref "4">> was at least as odd and awkward as this wiki-journal-blog is, if not more so. I look on it fondly though. I see where I came from. Interpreting my Hypercynic work these many years later has helped me better piece together my narrative and make more sense of my world.

* [[Hypercynic: Personal]]
* [[Hypercynic: Cynic's Concerns]]
* [[Hypercynic: World of Warcraft]]
* [[Hypercynic: Magic the Gathering]]


--------------------

<<footnotes "1" "Back when I was first getting into hacking, curious tween to young teenager that I was, I decided I wanted to protect my site and create my own authorized private sections. I made some other neat little hacks that Angelfire obviously did not anticipate (hacking was really easy back then), but somehow it was a complete anticipatable toy security mechanism for punishing those who failed to enter the correct password after 3 guesses that made me laugh the most. It would just fucking rapidfire spam you with pop-up windows. Mind you, browsers were incredibly simple and unextendable back then. No one could stop it, and many browsers didn't let you choose to block pop-ups back then (not that anyone would have thought to do anything about it). It was very easy to crash a computer by flooding it with pop-ups (which you couldn't even click off). I set it to '50' pop-up windows, which crashed every single computer I had ever seen....50 pop-ups, rofl. I could likely throw 500 on my primary machine and survive just fine. Come to think of it, that website had many keywords for which it was the top result in Altavista (the original Google in terms of search engine excellence). Imagine that: I literally was the top result for multiple searches back then without any SEO! ">>
<<footnotes "2" "I had no one to teach or encourage me to pursue it. I wish I did.">>
<<footnotes "3" "Of course, I still have tons in common with who I was. I'm still just as foolish and ignorant in critical ways. I keep growing though.">>
<<footnotes "4" "Names will be redacted. I am obviously quite doxxable to anyone who is persistent (and odds are, if you are reading this [and I'm pretty sure no one does], you already know who I am). I can think of a dozen ways to unmask me. That's okay. Remember that anonymity and privacy come in degrees. I'm just trying not to be low-hanging fruit at this point.">>
This section was devoted to philosophy, political analysis, and my faith.

* [[2006.12.21 -- Freedom]]
* [[2006.12.21 -- God's Design: Comparative Advantage]]
* [[2006.12.21 -- The Form of Gaming]]
* [[2006.12.28 -- Letter to Alvin Plantinga]]
* [[2007.01.04 -- Meta-Ethics]]
* [[2007.01.30 -- Intelligence and wisdom are not separate ideas]]
* [[2007.03.15 -- Value, Arrogance, and Egoism]]
* [[2007.03.23 -- Brief Rant on Economics]]
* [[2007.03.26 -- Summa Theo-a What?]]
* [[2007.03.29 -- Standing by Your Principles]]
* [[2007.04.20 -- Show Me Your Umlauts! (and, I'll show you mine!)]]
* [[2007.04.24 -- Maturity in Faith--The Recognition of a Conflict and a Choice]]
* [[2007.04.27 -- On Communication]]
* [[2007.04.27 -- My Readingz (EL-2-Spell) (For my favorite mom who may be confused: L2Spell=Learn to spell)]]
* [[2007.05.11 -- Instinct, Neo-rationalism, Summa Theologica]]
* [[2007.05.16 -- Democracy]]
* [[2007.05.21 -- Right to Opinion]]
* [[2007.05.23 -- Rough Draft--Summa Intro Chapter]]
* [[2007.06.02 -- New Forum]]
* [[2007.06.08 -- Infinity]]
* [[2007.06.25 -- +Dimensional God]]
* [[2007.07.06 -- Godbotdom — Unique Idiots Beware?]]
* [[2007.10.26 -- Relevance]]
* [[2007.11.01 -- Community]]
* [[2007.12.22 -- Form Spectrum]]
I started playing MTG a bit in college (although, I remember when Alpha came out), and then afterwards I played with the security guard at Humana. Good times. I learned to love Eternal formats in magic, and this is where I got to see my systems-talents at work yet again. I was never the best at MTG (there was a time where I did rank among the best in WoW), but I was good enough to win a decent amount of money playing it. I continued to play, especially thinking and learning about it in Thailand, until my ~PhD. I have very fond memories of magic.

* [[2007.07.07 -- Legacy MUC]]
* [[2007.08.15 -- Affinity -- Legacy]]
* [[2007.12.22 -- Red Stax]]
* [[2007.12.22 -- Brainstorm]]
This section was devoted to more personal aspects of my narrative. It bleeds together with [[Hypercynic: Cynic's Concerns]] and to a lesser extent the other sections as well. 

* [[2006.??.?? -- Letter to Mrs. Phelps]]
* [[2006.12.21 -- Welcome to Hyper Cynic...]]
* [[2006.12.21 -- k0sh3k is not feeling well...]]
* [[2006.12.25 -- Poem]]
* [[2006.12.27 -- The Christmas Summary]]
* [[2006.12.28 -- Connection to Thailand]]
* [[2006.01.03 -- GG. (Good Game)]]
* [[2007.01.05 -- End'o' The Week (I <3 Weekends)]]
* [[2007.01.30 -- Burned Out!!]]
* [[2007.01.30 -- Flurry Of Posts!]]
* [[2007.02.12 -- When it rains...it pours.]]
* [[2007.02.22 -- Feb 22nd...(original title--True story)]]
* [[2007.03.15 -- Life Update.]]
* [[2007.03.23 -- Personal Update]]
* [[2007.04.09 -- Life Update]]
* [[2007.04.13 -- A Night I Will Remember]]
* [[2007.05.04 -- Lifedate 2.11.4.623925.65.....nm the Lifetrek]]
* [[2007.05.07 -- Hella' Good Weekend (Many boomshakalakas to you and yours as well!)]]
* [[2007.05.23 -- Vacation....err....V-O-cation as a calling]]
* [[2007.05.23 -- Ramblings]]
* [[2007.06.25 -- Life Update a la 'teh list+']]
* [[2007.07.05 -- Family-Guy-Esque Life Update]]
* [[2007.09.15 -- Life Update]]
* [[2007.10.18 -- Life Update]]
* [[2007.10.24 -- Monday ER Visit]]
* [[2008.05.13 -- INTJ]]
I really was amazing at World of Warcraft. I understood it incredibly well. I was wealthy. I was an amazing ~PvPer. I didn't really participate in the social aspects of the game, but I played it well. 

* [[2006.12.26 -- To DoT or not to DoT]]
* [[2007.01.11 -- Back to Basics]]
* [[2007.01.16 -- Burning Crusade is Here!]]
* [[2007.01.30 -- My experience in TBC so far]]
* [[2007.02.12 -- The Rogue Update]]
* [[2007.02.22 -- Rogue Update 1.1]]
* [[2007.03.09 -- Rogue PVP Guide]]
* [[2007.03.23 -- WoW Update]]
* [[2007.03.27 -- WoW Update]]
* [[2007.12.22 -- Resilience]]
What the fuck does that mean?

I do think there is a lack of empathy for my position. Rightfully so. I'm autistic (I have a different kind of social programming altogether) and I'm intelligent. That is going to make my brain different (that isn't a value judgment; I mean it in the sense of "deviance from the norm" any value attached), and it is going to make my mind seem really off to other people. I can't expect them to understand (although, by that same token, I'm not convinced they should always expect me to understand them either). 
I have no faith in authority. I've learned not to trust it. Your hierarchy is dumb as fuck. Tradition has no meaning outside of what general history teaches us about the cycles and tropes of humanity. I'm not an institutionalist; I'm an insurrectionist.
This is a very clean skinner box. It has to be one of the simplest I've encountered. You try to maximize your experience number, and that's it. It's not time consuming, so feel free to chase it like an addiction.

At the surface level, the GUI is at times brilliant in its straightforwardness, but also not very pretty in a sense. That it gives you the information up front to plan around, however, is still worth the ugliness of its general structure (the aesthetic is pleasing overall though). 

This is one of the better plain idlers I've ever used. There's no bullshit to it. Every button is meaningful, even if it is really simple. Snowballing has an elegant feel to it in this game. The multipliers are pleasing to me, and the reset progression fits my schedule nicely. It's the kind of idler that you walk up, hit a few buttons, and walk away for hours. You make your investments, but there's no awful grind feeling. It rewards grinding, but it's completely fine feeling not to. 

Optimizing both your reset strategy in general and your ergonomic implementation of the strategy for opening out of your resets is, as in any decent idler with the prestige of meaningful longer-term replayability, the real functions to understand. The honing of your reset strategy just fundamentally is the gameplay of this game. It's the only metagame that matters. But, when you look a bit deeper, you see the reset strategy is not obviously straightforward. The game is about optimization, growing it through theory-making and testing.

I have not read the wiki for this game. I worry it will lose its appeal the moment I do. There is enough simplicity to this game that the mathematically correct play may be too obvious from the wiki. In a way, researching the metagame too directly can ruin this game like cheating or god-mode in many games. Therefore, be indirect and more visceral in your metagaming. Enjoy exploring it by hand and being a subconscious, self-taught virtue-theoretically excellent data scientist with it.

* Early Game
** Experience is what you are really grinding for. Maximizing your experience rate is everything. All other goals emanate from that one number. If you were building a neural network to play this game, this is the value that you will be training strategies to maximize.
** This stage is tap heavy, but in a pleasing way. You have to bounce around in the early game to bootstrap yourself as fast as possible. 
** The first retirement/reset makes a huge difference, the second less so, and so on and so forth. Classic skinnerbox, as I said.

* Mid Game
** At this stage, the opener out of the reset has a very clean to flow it. It's quite easy to get back to where you were. In a sense, you quickly rewarded for doing the right thing.
*** It's click heavy for the first 2-minutes, and then you slowly trail off. You come back to it intermittently to make the final investments before your big "push."
** Deep runs that last for days are unworthy here (and definitely useless in the Early Game). Reset once or twice a day. You're methodically climbing that experience hill. 

... Actually, it stopped being fun.
This attempts to mix two game-styles, and it is basically the seed of what could be a truly epic game (it's far from being epic, but still quite enjoyable). It probably needs to be streamlined (there are some gameplay and mathematical strategies to it which aren't designed in a friendly or intuitive way) and the skinner-box reward components needs some tuning as well. Mixing these two game-styles probably isn't easy, despite having some conceptual overlap, and the author did a fine job.

* You really want to rush to Prestige. But, your investments can't be stupid. I've tried a number of strategies. I'm not particularly in love with any of them. The goal is to be as passive as possible. In a way, that means buying the right order at the right time. If you can fly through waves without any failures, you're on the right track. It's balancing that pre-Prestige level grind with deeper pushes. 

* Getting the right map matters. As far as I can tell, rushing to lvl 50 for Prestige reset is the only way to remake the map. I take it to be the case that eventually, towards the mid to late game, pushes will be reliant upon grinding for the right map to make your deep run. 

* I've found that upgrading Turrets is a sign that you aren't progressing well enough. Your goal is to get the point where you drop a turret and ride it (hopefully it is one-shotting at first) until you can afford another. 

* Daily Bonus and the Offline Bonus can be used to very quickly jumpstart your resets. 

* I suggest using a device you can AFK farm on full-time.

* Pay attention to the DPS to Cost ratios, and then consider how you value their effects.

* Spend your diamonds on gambling and recycling diamonds to fine the best initial blueprints you can find. 

* Crits are absurdly powerful. Since you are simply trying to clear bosses, you can AFK farm each wave until you are lucky on your crit rolls to take bosses down. Even for the Axethrower, a single crit can completely outdamage everything he'd normally deal for the duration of a mob in his range (even with a very extended range).

Early Game:

* You are finding the fastest way to clear through Wave 50 so that you can prestige. 
* Grind your way to Wave 50 a few times. You are collecting everything. Spend whatever it takes and reset.
* The initial boostrapping goal is to have enough resources to start shaping your zero-failure runs through Wave 50.
* The ultimate goal of the early game is to 1-shot everything through Wave 50. Once you can do that, you should continue pushing how far you can 1-shot.
* After the early game, if you are spending mana, you are doing it wrong.

Mid Game:

* You are farming Scraps, Auras, and Diamonds (i.e. Blueprints gambling and investment).
* Suggested path:
** Axe Thrower Opening
*** Just pump your gold straight into him. With enough permanent resources earned, you can just max level him once in a while as you race to 50. Done.
*** His speed allows him to clear both waves and bosses with great consistency.
*** If you find the perfect equipment, it could be worth investing in it. He's your initial grind choice, make it rock.
* You must build your way into the best turrets you can. Presumably, the higher level ones with multiple abilities are the truly impossible to replace aspects of them.

Towers:

|customTable|k
|Class
Class-1 Tower|Prereq-1|Prereq-2|h
|Knight|n/a|n/a|
|Snowblower|n/a|n/a|
|Axe Thower|n/a|n/a|
|Giant|n/a|n/a|
|Spider|n/a|n/a|
|Turret|n/a|n/a|
|Marine|n/a|n/a|
|Minotaur|n/a|n/a|
|Class
Class-2 Tower|Prereq-1|Prereq-2|h
|Ice Giant|Knight|Snowblower|
|Golem|Axe Thrower|Giant|
|Compsognathus|Spider|Minotaur|
|Sharpshooter|Marine|Turret|
|Class
Class-3 Tower|Prereq-1|Prereq-2|h
|Dragon Boar|Ice Giant|Sharpshooter|
|Cyclops|Ice Giant|Compsognathus|
|Tank|Golem|Compsognathus|
|Flamethrower|Golem|Sharpshooter|
|Class
Class-4 Tower|Prereq-1|Prereq-2|h
|Rocket Turret|Dragon Boar|Cyclops|
|Forest Guard|Cyclops|Tank|
|Ice Rhino|Tank|Flamethrower|
|Mage Tower|Dragon Boar|Flamethrower|

Tower costs (both buying new ones and leveling) scale up exponentially, thus investment paths are key. Unfortunately, to acquire a Class
Class-4 tower requires 2 Class
Class-3 towers, which requires at the minimum 3 Class
Class-2 towers, which requires at the minimum 6 Class
Class-1 towers. 

It is not clear that all towers are equal in this game. Some seem obviously better than others. Again, Axe Thrower seems obviously the best, followed by Spider. I'm going to hit Class
Class-3 first and then figure out what I like from there. I'm going for Flamethrower first.

Build order: 

# Axe Thrower 
# Turret 
# Giant 
# Marine
# Golem 
# Sharpshooter 
# Flamethrower
# Spider
# Minotaur
# Compsognathus
# Tank
# Ice Rhino


~~
You invest as far as you can, then you log. Reset and use your offline gold to start fresh. It's a way to snowball gold you should never have.
~~

Grind on screen as long as you can. Pickup the Star-based achievement resources.
//Dedicated to 1uxb0x for a sequence of questions only a child could sustain.//
I like being in the place, in the state of mind, where I don't have to inspect my intelligence with any pride. I am a box (an organic, not very clean, geometrically tuned creature with many...). I see it as a machinery to get things done. How can I harness that engine to rebuild itself while grinding through the world of thought? I'm just a finite creature living in a set of specifications. What are my requirements? 
* The best generalizations are sweeping generalizations I always say.
* Once weapons were manufactured to fight wars; now wars are manufactured to sell weapons.
* When you're drinking beer, the beer is getting drunk too.
//My daughter. She is Alia of Dune.//

The world is her oyster. She has the tools. She has the potential. She works hard. If she keeps it up, if she plans carefully, she could be quite happy. I'm here to help her do exactly that.

* [[Our Daughter: The Designer of Happiness]]
I'd like to have one or more physical copies of those things most important to me on USB drives. I'd like to plug them in, the program recognizes the device (we'd hardcode the UUID), and makes the appropriate backup. Encryption seems completely viable.
[[j3d1h]]'s got what it takes. She should be an excellent computer user. We'll work on social skills when we can. She will have the ability, no doubt. 

I want to offer her an optional elective: spending 2 more hours a day (even on weekends) on computer science. This would give her 14 of the 15.722527473 hours needed per week to eventually hit the mythical 10k hour mark by the time she is 18. Solid practice will be worth it.

* Programming Language
** There are several programming languages I want my daughter to know and be familiar with. 
** Know:
*** Bash/Zsh + Python/Xonsh (control your computer)
*** Autohotkey/Autoit/etc. (GUI-automation that is an incredibly cheaty-faced ugly hack, but it boasts absurd prototypability and high cost/benefit ratio)
*** C (the father of performance)
*** Golang (easy networking C/Python hybrid)
*** Rust (safer, but still hard to write C; the only C-replacement contender; also has strong support for WASM)
*** ~WebASM (WASM, a significant future ASM)
*** ~OpenCL & CUDA (presumably, this will be the multi-threaded languages; be able to get nitty-gritty when you need to)

**Familiarity: 
*** C++ (absurdly large language and ecosystem, a legacy nightmare, but necessary to know)
*** Java (because it just won't die, asshole)
*** Julia (easy, safer, scientific C or better)
*** SQL, preferably ~PostgreSQL (legacy code and business use)
*** OCaml (for CS)
*** Prolog (unique expressivity)
*** HTML5 (technically turing complete, but markup languages are valuable to be familiar with)
*** ARM ASM
*** x64_86 ASM

* Integrating Computer Knowledge into Our Personal Production Systems
** Automate your life. Make the computer do all the work for you. If you have to spend over 5 minutes a day on that task, think about trying to automate it.
** Make stuff you care about. Stuff you need. Stuff worth having.
**  I want you to be able to create strong environments for using these tools. I want you to have wandered the landscapes of both theoretical and applied computer science. 
** Build projects. Learn about requirements and specifications. Become someone who learns about the software development cycle.


* Other Educational Requirements:
** Overall, I need you to continue learning math as best as you can. You want to think abstractly and rigorously. Understand the beauty of math. It's a long climb. 
*** Push hard into calculus before ~OpenCL
** Given your aptitude for proofs, you could continue straight into discreet mathematics after Better Explained.
*** Afterwards, you should move into algorithms and data structures. You will be able to think about data structures much better once you can do discreet mathematics.


* Projects:
** Current:
*** Python/Xonsh/Bash
*** Tiddlywiki
*** Redstone in Minecraft

** Future Projects 
*** [[j3d1h: Make a backup for mom]]
*** [[j3d1h: Reinstall for your mom]]
*** [[j3d1h: Getting ethernet to your room]]
*** [[j3d1h: Run an XMPP Server]]
*** [[j3d1h: Autobackup to USB upon Mounting]]

* Links
** Python Data Structures/Algorithms -- https://github.com/keon/algorithms
*Academic Gameplan:

** [[Gameplan for Homeschooling j3d1h v1.0]]
** [[2017.04.15 -- j3d1h: Gameplan for Homeschooling]] v2.0, etc.

*She does the following chores each (or every other) day as needed:

**Clean her downstairs area
** Basic cleaning of her room (bed, desk, drawers, etc.)
** Clean the kitchen (on rotation)
** Push her laundry through (if and when she has enough for a load)

*She does the following chores each week:

** Clean the upstairs bathroom
** Full clean of her room
* Getting ethernet to your mom
** Measure the distance we need
** Pick it out the cheapest on either Monoprice (w/shipping costs included) or Amazon (I highly suggest using Prime costs). 
** We buy the cheapest one. 1uxb0x and I run the cable. 
** You setup one of our classic DD-WRT routers to be a switch for you. Voila. 
I love my daughter. She's my creation, and I live for her and her brother. She is amazing (and I'd love her just as much if she weren't). We are very compatible in many ways. I hope to help her become compatible with the world and herself. I hope to help her become a eudaimonic lifehacker, to be happy and possess (and use) the means to make herself happy. To the best of my abilities, I am preparing her to have a life she finds worth living.

j3d1h is very skilled in many areas. She is deeply existentially aware for her age (although, that doesn't make her fully mature or completely wise). She is naturally talented in the humanities and with language in general. She works hard in her quantitative and formal reasoning.<<ref "1">> She's even scholastically redpilled. Admittedly, she bears a striking resemblance to Alia Atreides from Dune (my wife, k0sh3k, was that as well). I do not know her destination or her potential. I cannot see that far, and there may be many surprises I cannot account for. I must find a way to constructively and wisely guide her (and for her to see my guidance is worthwhile) while I still can. I am only 20 years older than she is. If I do it correctly, she will quickly overcome my abilities in many ways. One day, she could easily be my academic and practical wisdom peer or better. If we're lucky, she'll be teaching me. I hope we can build a friendship and family partnership for life. 

* [[/b/ of Homeschooling of j3d1h]]
* [[j3d1h: Gameplan for Homeschooling]]
* [[Planning Future Gameplan for Homeschooling j3d1h]]
* [[j3d1h: Computer Wizard]]
* [[Things to Eventually Learn and Do]]
* [[j3d1h: lost+found]]


--------------------

<<footnotes "1" "It is what others would think she is best at because it feels so (ironically) tangible to them. As Clarke says, 'Any sufficiently advanced technology is indistinguishable from magic.' This is why people fail to understand her aptitudes. Her skills in the humanities, despite what others may think, are likely her greatest innate talent. I would know the difference. We've still chosen computing as her primary field to study while homeschooling because the utility equation looks best there. It's a practical matter, and that doesn't mean we aren't going to push hard in the humanities. Of course, she will be very well-rounded (one day, she will be one of the few that can understand the details of every page on the wiki I am writing here).">>
* Make a backup program for mom's tiddly (just the index.html file itself) elsewhere on her hard drive.
** Show crontab too!
** Make a backup every 10 minutes
** Make a backup every 1 hour
** Make a backup every 1 day
** Make a backup every 1 week
** Make a backup every 1 month
** Make a backup every 1 year
* Reinstall for your mom
** Repartition mom's SSD, say make 30 gigs of space for her new /
** Reinstall Ubuntu in that partition, but keep the now 30gigs smaller /home/user/ partition the same on her machine.
** Make sure it runs.
** Delete the 16GB partition and remove mention of it in Grub.
*** Extra points if you make this a backup location for special data.


----

After testing, you found that it was a memory error. We can't replace, then force linux to not use those failing memory addresses as a temporary stopgap measure.
https://www.digitalocean.com/community/tutorials/how-to-install-ejabberd-xmpp-server-on-ubuntu
This my daughter's wiki. She borrows from us all, I think, but she also does her own thing. Without a doubt, she has her own style.

!! Vault:

* [[2017.04 -- j3d1h's Wiki Log]]
* [[2017.05 -- j3d1h's Wiki Log]]

!! Current:

* [[2017.06.04 -- j3d1h's Wiki Log]]
* [[2017.06.11 -- j3d1h's Wiki Log]]
* [[2017.06.18 -- j3d1h's Wiki Log]]
* [[2017.06.25 -- j3d1h's Wiki Log]]
My spouse. The rock of my ages.

* [[k0sh3k's autism]]
* [[Gifts]]
asdf
My wife doesn't really love writing in her wiki. It's new, difficult, and she doesn't want to do it. I'm slowly coaxing her to do this with us. I think this will be invaluable to her later on. She has to be a good role model for the kids in this way because we desperately need the kids to excel at this. She's getting there. I see her write about an hour everyday in it now, which is wildly better than before. I'm really grateful to her for all her effort.

!! Vault:

* [[2017.04 -- k0sh3k's Wiki Log]]
* [[2017.05 -- k0sh3k's Wiki Log]]

!! Current: 

* [[2017.06.04 -- k0sh3k's Wiki Log]]
* [[2017.06.11 -- k0sh3k's Wiki Log]]
* [[2017.06.18 -- k0sh3k's Wiki Log]]
* [[2017.06.25 -- k0sh3k's Wiki Log]]
It is my opinion that Kant was the smartest person to have ever lived: he is the best student of wisdom to have ever lived. Even the titans Plato and Aristotle did not philosophically accomplish the proportion that Kant did. He is the giant leap forward for mankind. I can offer no greater praise. 

His type: a scholar's scholar's scholar. I think it would not be doing justice to this man to call him the Archimedes, the Shakespeare, the Newton and Einstein, and the Copernicus of philosophy. Okay, I keep trying to offer better praise than being a better philosopher than Plato and Aristotle. Full stop.

Kant is the most praiseworthy of all philosophers. I am proud to have even understood what I understand of his work. Kant was a deeply virtuous man, and a man I could only aspire to be like. Kant was my hero. Hell, Kant still is my hero, even if he's wrong about a few things.

I need to complete the Kantian project for myself. I have to do what is against cannon: hybridizing Kantianism and Utilitarianism. We always seem to fail. 

[[Why I Write this Wiki-Journal in Public]]

[[Rationality]]

[[Nietzsche]]

When I do my reasoning in public, when I explicitly have to state it, when I can imagine how the world views it (and armoring it against their criticisms, and changing when it is obvious that I can't overcome those criticisms), I am being empathic. I care about how others see it in a deep and real way. It is a filter through the infinitude of maxims (some that pass the CI test and some that don't). 

I have to ask myself, what should I be ridiculed for? What would the body of rational people (with different points of view and reality maps) say about this? In a sense, I care about what they say. Ah, but then I realize that not all people are rational, and that many people that are rational can still be wrong about whatever I disagree with them about. I'm extremely intelligent, and I know that disagreeing with otherwise rational people is often the rational thing for me to do. 
* Abilities

** Charismatic Khan-Artist -- Innate Type
*** I get two saving throws to convince NPCs I'm a regular human speaking common speech with my growls, meows, purrs, etc. 

* Appearance
** I'm a fucking Liger. 
//KIN the Empathic Idealist//

The [[Idealist|Idealism]] character animated in this wiki. It represents my [[Kantian Intuition Network]]. KIN is the opponent of the ever practical [[RPIN]] in hypothetical dialogues injected into this wiki.
//See: [[Virtue is Knowledge]]//

A goal of this wiki. I take this cliche-truism to mean a lot of things:

* Be honest with yourself.
* Empathize with yourself
* Know who you are, why you are here, where you come from, where you are, what you are doing, etc.

In a way, I think Know Thyself is a means to Being Happy. That's what this is really about. Know Thyself in order to be happy. Categorically, I want to be happy, and thus, as part of the constitutive nature of the categorical imperative, I exercise instrumental reason, I take the means to my ends, and thus I am required to know myself. 

I can be wrong about what I take to be categorically true. Perhaps being so certain of one thing will simply lead to being certain of other things (sometimes opposing things), and then we must rebalance ourselves. We must cull the weak beliefs, retrain our desires, and bind ourselves together. Knowing Thyself is for the sake of my personal maxim: [[Program Yourself]].


* Comprehensive
* I had no idea how extensive the labor movement was in the history of the United States
* A lot of people have sacrificed for us to have unions. We're indebted to them. 
* I was under the false assumption that the labor movement only recieved major political pushbac
<<<
[[KIN]]: This section sucks, RPIN.
<<<

You were only forgiven for your sins toward me to the extent that you were right about your religion (your reasons for those sins). Your acts were psychopathic (which we are all guilty of). You lacked empathy for yourselves, and you lacked empathy for your children. Even [[KIN]] agrees. You have angered your children, and you have made your bed.

<<<
[[KIN]]: I must still be empathic
<<<

Fine. You will be forgiven for your sins against me when I'm both sufficiently unified and find my life worth living in a cohesive and meaningful way.





Why I want to forgive you (I could just be lying to myself):

*I think raising an autistic genius is very difficult to do. There was very little information available to you, and you were busy with your vocation. You fucked up, badly. You did the best you could with what you had and what you assumed to be true (are you responsible for what you believe? that decides it). 

**Perhaps you aren't free. That makes it easier for me to forgive you, and to quickly forgive myself. We aren't responsible for our actions. Is that what we really want? If I let go of that, then I really really feel like I'm drowning. I need to overcome my allergy to relativism. That doesn't mean I plunge into full blown relativism, but at least I make myself vulnerable to the possibility of less black and white perspectives. It means I'm willing to doubt things I was certain about before. I have to try.





Boy: “But, mother, I no like grandma.”

Mother: “I know; is no potato. Eat anyway.”

---------------------------------------------

Latvian walk into bar with poodle under one arm and salami under other.

Eat salami first.

---------------------------------------------

Walks a horse into a Latvian bar.

Man says, ”There you are, dear wife!”

---------------------------------------------

Why Latvian man wear hat?

For to hide bread from family!

---------------------------------------------

What potato say to other potato?

Faulty premise, nobody have 2 potato.

---------------------------------------------

Hush little baby, don’t say a word-o.

Mama is buy you job in Politburo.

And if bribe of Mama don’t fly,

You is toil for fifty years then die.

And if you hungry and full of strife,

Hush little baby, such is life!

---------------------------------------------

Latvian man go to visit Estonian man and have stew. Latvian man say, “This very best stew! What is?”

Estonian man say, “This is Latvian potato stew.”

Latvian man is confuse because he never have this stew in Latvia.

Then Estonian man laugh and say, “This is trap! Is stew made from Latvian and from potato!” Then he shove Latvian man in pot, begin to make stew of him.

Latvian man say, “Thank you very much!”

Estonian man confuse, and ask why he so happy.

Latvian man say, “I am warm, and also in stew is potato! Truly, is no better way to be!”

---------------------------------------------

Latvian, Estonian, and Russian man all talking. Russian man say, “I give you joke: why does chicken cross road?”

Estonian man say, “I am confuse. What is chicken? Is kind of soldier?”

Russian man say, “No, is kind of bird. Sometimes we eat.”

Estonian man say, “You have bird to eat? Then why can bird cross road? Surely someone eat bird before it can cross road.”

Russian man say, “Okay, I try again. Why does wolf cross road?”

Latvian man say, “I am still confuse. What is road?”

---------------------------------------------

Politburo commissar comes to farm. Asks humble Latvian farmer how grows potatoes.

“Oh Comrade Commissar, bountiful is Latvia harvest. Pile of all Latvia potatoes will reach foot of God,” says humble Latvian farmer of potato.

“But Comrade Farmer,” says commissar, “In Soviet Union is no God.”

“No worry. In Latvia is no potato either”.

---------------------------------------------

Latvia woman is say, “I hope my son not die during night.”

Latvia man say, “What is hope?”

She reply, “In truth, I not know.”

---------------------------------------------

Latvia man in field is search potato. See one and happy.

Turn out actually is rock. Is very starving so eat anyway.

---------------------------------------------

Latvian man not see old neighbor for many days. He go into house to see how is.

Neighbor frozen to death. Man very happy. Family eat well for many weeks.

---------------------------------------------

Latvian girl is say, “I want go America one day.”

Father say, “I send you America.”

Daughter is thank father. Make tears of happy. Father use for salty potato.

Father think moment, say, “Daughter, I no send you America.”

Potato is more salt.

---------------------------------------------

Handy Latvian man see farmer and say, “Your wheelbarrow sound squeaky. I fix for half potato.”

Farmer angry because as he say, “This not wheelbarrow, this is wife!”

---------------------------------------------

One day, hear knock on door.

Man ask, “Who is?”

“Is potato man. I come give free potato.”

Man is very excite and opens door.

Is not potato man; is secret police.

---------------------------------------------

Two Latvian man is walk along road.

First Latvian turn to second Latvian, “I hungry.”

Second Latvia say to first, “I cold. I trade you my potato for your coat.”

First Latvian very sad, “I have no coat. I cannot trade you potato.”

Second Latvian, “Is ok. I not have potato either." 

---------------------------------------------

Is dead dog in road. Is dead Latvian in road.

What difference?

Dog have fur keep warm. Also, freedom. And, dog eat poop for pleasure, not just survive. 

---------------------------------------------

Latvia man is sent to gulag.

Comrade ask, “How long are you to be here?”

Man say, “10 year.”

Comrade ask, “What are you do to be sent here?”

Man say, “I do nothing!”

Comrade say, “Now I am know you are lying!”

How do comrade know man is lying.

Because all Latvian know, sentence for do nothing is 20 year!

---------------------------------------------

How many Latvian take to changing lightbulb?

Four.

One smuggle lightbulb across border with Estonia. One bribe border guards. One bribe Politburo not search yurt. And, one change bulb.

But then realize is no electricity in Latvia. Only cold and dark.

---------------------------------------------

In smallest village Latvia, lives man. Is good, nice man. Very successful. Have wife, have son, have house. No have potato. Is Latvia.

Man is walk in woods. Suddenly, appears God.

Says God, “GOOD MAN. I GRANT WISH.”

Latvia man is wise. Says “I know is not God. Is hallucinate from malnourish.”

But says God, “NO. IS NOT MALNOURISH. IS GOD. I GRANT WISH.”

Of course, man wish for potato.

Says God, “SO HUMBLE WISH? I GRANT TWO POTATO.”

Man very happy. Take two potato, run home. Tell wife. Tell son. They happy. Man cry. Wife cry. Son cry, but from malnourish.

Suddenly, Politburo see two potato. No Latvian has two potato. Is proof of capitalism spy.

Arrest man. Kill son. Rape wife. Bulldoze house.

Such is life in Latvia.

---------------------------------------------

Russian mafia man visit Latvia, say to Latvian man, “I flip coin, If you make win, I give potato; if I make win, you give potato.”

Man say, “What if have not potato for to give if lose?”

Russian say, “You pay with life!”

Happy day for Latvian man.

---------------------------------------------

Man open door. Sunshine outside. Birds is singing. Children play with wheel. They laugh. Wife yell from kitchen: “Potato ready!”

Politburo pull head out of water. There is no sun. No family. No potato. Only gulag.

Such is life.

---------------------------------------------

Latvia man die, but for him suffer not over. Man very wicked, and go to hell.

There devil make punish: he burn in lake of fire. Is warm. Latvia man finally happy.

So devil make lake hotter. But Latvia man now is warmer. Now is happier.

Devil get very frustrate. So devil make fire lake into ice lake–lake cold as million Latvia winter. But Latvia man now happiest of all!

“Devil!” he say, “Hell is freeze! Latvia is finally happy country!”

But is not true. Is only story.

Also, man not in hell, only Latvia.

---------------------------------------------

Russian barman say, “Here is shot of drink for each of you. If you can tells me what is this drink, you can has 5 minute alone in back room with Olga.”

All three mans is very excite about this!

First Romanian take drink. He smack lips and say, “Taste like…” But before finish, he fall over dead.

Next, Estonian man take drink. He make burp and say, “Taste like…” But he too fall down, now is dead.

Finally, Latvian man take drink and say, “Taste like… chemikal runoff from reactor.” Latvia man is drinking these chemikals since he was child.

Russian barman say, “Latvia man is winner! Olga is wait for you in back room.”

Latvia man go into back room. Is dark. Cold too. Is remind him of home in Latvia. He find light and turn on. He see Olga now. Olga is giant dog with rabies.

Olga kill Latvia man, eat him alive. Is slow and painful killing, but struggle for him is end now.

---------------------------------------------

Latvia comedian say, “What deal with potato?”

Latvia crowd not laugh. Comedian squint in darkness for see audience.

There no crowd. All die from malnourish.

---------------------------------------------

Three Latvian are brag about sons.

“My son is soldier. He have rape as many women as want,” say first Latvian.

“Zo?” second say, “My son is farmer. He have all potato he want!”

Third Latvian wait long time, then say, “My son is die at birth. For him, struggle is over.” “

“Wow! You are win us,” say others. But all are feel sad.

---------------------------------------------

Traditional Latvia Song:

Row, row, row boat,

Gently down stream.

Pain, anguish, rape, malnourish,

Potato only dream.

---------------------------------------------

Man is hungry.  He steal bread to feed family.

Get home, find all family have gone Siberia!

“More bread for me,” man think. But, bread have worm.

---------------------------------------------

Two Latvian look at clouds.

One see potato. Other see impossible dream.

Is same cloud.
!! The Farmer

* Get the Key (may be worth doing twice to ensure it works; remember to keep silver up at all times)
** Port to Bazaar
** Warp to John the Wise
** Buy an LDON key (don't forget to get group key when grouping)

* Port to 68 - Butcherblock

* LDON Farm Script
** Constantly check for people joining the zone and invite them. We will share.





!! The Leecher

* Cast XP potion
* Port to 57 -- The Lesser Faydark
* On zone into LDON (figure out trigger), warp to safe spot. 

I have much to say, but I don't feel like saying it. Lol. Perhaps I should. Lately, I've been playing ARAM and just watching LCS. I legitimately suck at this game compared to other games I've played. I despise the mouse controls and the artificial barriers to play. I'm all for skillshots. I'm not in favor of making gameplay harder than it has to be without adding serious strategic elements to it (which this game definitely has). The problem, in part, is that it is tailored for a playerbase with shit machines and without any investment in proper keyboarding and macros. That part isn't going to change. I'll just enjoy what I can in it.

* [[ARAM]]
* [[Drafting Strategy]]
* [[Dream Comps]]
Learned helplessness is a condition in which a person suffers from a sense of powerlessness arising from a traumatic event or persistent failure to succeed.<<ref "1">> It's linked to depression, inferiority complex, and addiction.

A suffering animal will eventually stop calling for help when no one comes. It learns that it has no control over its environment.

Nobody is going to help you except yourself. Get up and do it. That doesn't mean you will succeed, but you should try anyways. Even if nobody is intelligent, empathic, or idiosyncratic enough to get it, it is your job to get it. Even if your suffering isn't your fault, it is your job to try and fix it. 

Don't merely feel like a passenger in your own life. There is no freedom there. You must shape yourself. You must fight.

---

<<footnotes "1" "Of course, a psychopathic Randian would accuse a victim of being at fault here. That's absurd. Learned helplessness in society may be real, but that doesn't mean that conditioning is their fault.">>

''Copyright © 2016, 2017 m6ram''

THE AUTHOR DEDICATES THIS WORK TO THE PUBLIC DOMAIN. THE AUTHOR WAIVES ALL RIGHTS TO THIS WORK WORLDWIDE UNDER COPYRIGHT LAW.

''Disclaimer''

THIS IS A WORK OF FICTION. THE CONTENTS OF THIS WORK ARE PRODUCTS OF THE AUTHOR’S IMAGINATION. THIS WORK IS FOR ENTERTAINMENT PURPOSES ONLY. ALTHOUGH THE FORM OF THIS WORK IS THAT OF AN AUTOBIOGRAPHICAL WIKI, IT IS NOT ONE. ANY RESEMBLANCES IN THIS WORK TO ANY ACTUAL PERSONS, PLACES, THINGS, EVENTS, OR IDEAS IS ENTIRELY COINCIDENTAL. ALL EXPRESSIONS, THOUGHTS, IDEAS, CODE, TERMINOLOGY, STATEMENTS, INTENTIONS, ADVICE, AND OPINIONS IN THIS WORK ARE THOSE OF A FICTIONAL PERSON AND SHOULD NOT BE CONFUSED WITH THE AUTHOR'S. 

''Terms of Use''

BY USING THIS WORK OR THIS SITE, YOU ACCEPT AND AGREE TO THE FOLLOWING TERMS. YOU AGREE THESE TERMS OF USE, THIS LEGAL NOTICE, THIS WORK, AND THIS SITE ARE SUBJECT TO CHANGE AT ANY TIME WITHOUT NOTICE FOR ANY REASON WHATSOEVER. YOU AGREE IT IS YOUR RESPONSIBILITY TO REVIEW THESE CHANGES. YOU AGREE TO RELINQUISH ALL LEGAL CLAIMS TO ALL BITS OF DATA, INCLUDING BUT NOT LIMITED TO METADATA, PERSONAL INFORMATION, AND COMMUNICATIONS YOU TRANSMIT TO OR IN CONNECTION WITH THE AUTHOR, THIS WORK, THIS SITE, OR THIS SITE'S CONTACT ADDRESSES AND SERVICES, TO THE FULLEST EXTENT PERMITTED BY LAW. YOU AGREE THIS WORK AND THIS SITE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. YOU AGREE THAT IN NO EVENT SHALL THE AUTHOR BE HELD LIABLE FOR ANYTHING REGARDING OR IN CONNECTION WITH THIS WORK OR THIS SITE. YOU AGREE TO INDEMNIFY AND HOLD HARMLESS THE AUTHOR FROM AND AGAINST ALL LOSSES, DAMAGES, LIABILITIES, AND EXPENSES, INCLUDING ATTORNEY'S FEES, RESULTING FROM OR RELATING IN ANY WAY TO ANY AND ALL CLAIMS, DEMANDS, ACTIONS, OR PROCEEDINGS THAT ARISE OUT OF OR IN CONNECTION WITH THESE TERMS, THIS LEGAL NOTICE, THIS WORK, OR THIS SITE, INCLUDING BUT NOT LIMITED TO YOUR USE OR NON-USE OF, OR CONNECTION TO THIS WORK OR THIS SITE, TO THE FULLEST EXTENT PERMITTED BY LAW. 

''Transparency Canary''

SAVE A COPY OF THIS CANARY FOR FUTURE COMPARISON, AND PAY CLOSE ATTENTION TO EVERY WORD. THIS CANARY HAS HAD ZERO EDITS, ZERO ADDITIONS, AND ZERO DELETIONS SINCE IT WAS FIRST CREATED. AS OF THE LAST MODIFICATION OF THIS LEGAL NOTICE, THIS WORK, OR THIS SITE, THE AUTHOR HAS NEITHER RECEIVED NOR COMPLIED WITH ANY SECURITY LETTERS, COURT ORDERS, WARRANTS, CLASSIFICATION ORDERS, GAG ORDERS, OR ANY OTHER DIRECTLY COERCED LEGAL CENSORSHIP PROCESSES OR INTERVENTIONS PROHIBITING THE AUTHOR FROM SAYING IT WAS RECEIVED. THE AUTHOR HAS NEVER BEEN SUBJECT TO ANY LEGAL SEARCHES OR SEIZURES. THE AUTHOR HAS NEVER PLACED BACKDOORS OR SURVEILLANCE TOOLS IN THIS WORK OR THIS SITE'S HARDWARE OR SOFTWARE, AND THE AUTHOR HAS NOT RECEIVED ANY LEGAL REQUESTS TO DO SO. THE AUTHOR HAS NEVER DISCLOSED ANY USER COMMUNICATIONS TO ANY THIRD PARTY, AND THE AUTHOR HAS NOT RECEIVED ANY LEGAL REQUESTS TO DO SO. THE AUTHOR HAS RECEIVED ZERO DMCA TAKEDOWN NOTICES.
* [[To and From: My Immediate Family]]
* [[To and From: My Children]]
* [[To and From: My Wife]]
* [[To and From: My Family]]
* [[To and From: My Brothers]]
* [[To and From: My Parents]]
* [[To and From: My Friends]]
I’m struck by the ad hominem argument levied against (Nozickian) Libertarians and Randians (a.k.a. Egoists) that goes something like this:

People who are, by and large, against taxation, are being hypocritical when they choose to benefit from the infrastructure, safety, services, etc. paid for by taxes, and, in virtue of that hypocrisy, they are doing something morally wrong.

The idea is that Libertarians and Randians aren’t living by their own principles. So, if even if we were to assume their own ethical positions, they would fail to be moral through the inconsistency between their behavior and belief. Mind you, ad hominem arguments, despite what you may have been told in your logic classes, can actually be acceptable in ethics (when used correctly). I take seriously the above argument – we should not brush it aside. It seems reasonable to me that being hypocritical may be immoral, particularly about something as significant as this.

First, it seems obvious to me that if egoism/Randian objectivism, which is primarily and perhaps exclusively concerned with maximizing one’s personal utility, is true (and somehow survived the many powerful criticisms of it), that choosing to benefit yourself in any possible way is morally justified. Seriously. Anything goes; fuck everyone else. Ayn Rand wasn’t being hypocritical by taking government aid for health care; she was doing as any proper egoist would do: maximizing her personal utility. She might have been wrong to think her theory is actually the true moral law (let’s face it, she was), she might have been a terrible, immoral person when assessed from the true moral law (let’s face it, she was), but on this point, she was not a hypocrite. If she wasn’t a hypocrite, then it isn’t clear that from within her own moral framework (even if it is false), that she was being inconsistent or immoral.

As to Libertarians, the issue becomes much cloudier. Libertarianism is a deontic property theory which seeks to maintain (and rectify violations of) legitimate acquisition and transfer of property rights. It is surprisingly powerful and complete enough (in some sense) that it can serve as a framework for explaining human rights entirely in terms of property rights.

Libertarians come in many flavors. The most common flavor, at least in the major political arena, is the minimal statist view, which allows for a state to prevent theft. Minimal states may tax for the sake of preventing theft, but nothing else. Theft, in all flavors of Libertarianism, is a term which is broader, richer, and more robust than how we use the term in everyday life. So, this prevention is no small or insignificant task. Beyond this minimal taxation, any further taxation is in itself viewed as the government stealing from those who are taxed. Beyond legislating against over-taxation, the thefts which have already taken place must be rectified. This rectification is the tricky spot.

Let us say a minimal statist Libertarian was taxed $1 million, only $10k of which was necessary for the minimal state (flat or scaling taxation issues aside), and the remaining $990k would be considered “stolen” on the Libertarian’s view. It seems to me that when this Libertarian uses the government’s infrastructure, services, etc., he is recuperating some measure of his stolen money. Let’s say he recoups $100k in goods/services (pretend it was price adjusted to some sort of free market).  This rectification surely isn’t fair (on the Libertarian’s view), he isn’t getting  the full $990k in goods/services, he probably prefers money to these goods/services, and he is probably owed interest on that $990k. It remains clear to me, however, that the Libertarian is seeking rectification, and is not being hypocritical.

Take the same situation, only the Libertarian was taxed $30k, $10k of which was necessary for the minimal state, and he recoups $100k in goods/services. My intuition is that he’s going past his rectification right, taking far more than he should. Who is he taking this money from? Other citizens (present overpayers and/or future debtors), of course. It seems to me that the Libertarian is stealing, on his own view, in this case. This does seem to be a case of hypocrisy and immorality from within the Libertarian view.

Of course, the exact amounts which people are taxed, how much is required for the minimal state, and how much people recoup is not a completely solved empirical matter. We at least have a theoretical way to understand the problem, however, even if we don’t yet know how many Libertarians are seeking justice and how many are being hypocritical and immoral.

I submit that most Libertarians (many tea-baggers, for example) are receiving far more benefits than they pay for in taxes. Insofar as they benefit beyond their taxation, I take them to be hypocrites, inconsistent with their own views, and doing something immoral.

I fear that most Libertarians are merely ill-disguised egoists. They are not people who actually care about your rights and other peoples’ rights. They care about themselves, end of story. They should own up to that ugly fact. The problem, of course, is the Egoism, unlike Libertarianism, is far less defensible. Egoism is clearly wrong to sane people. I think Libertarians want to be egoists, but not have to own up to such insanity. 
* Buying a car? Buy it at the end of the month. Salespeople have quotas to meet each month and will be more likely to cut you a deal.
* If you are given a prepaid debit card as a gift, save it after you spend the money. You can use it to sign up for free trials online, hotels, etc. (Avoids scams and maximizes mobility)
** https://privacy.com/ seems good too!
Virtual Reality Bot MMORPG

Gameplay:

* Must program to run at first. Must also be necessary in mid/late game grinding.
* Start with Light bot. 
** Great teaching tool
* Have hotkeys/buttons to call particular scripts. Needs a text editor.
* What about a directory/tree structure to hold and call scripts? Make it simple to organize them. 
* Zones can have puzzles maybe. You should be rewarded for passing puzzles.
* Experience gain for levels? 

Technical requirements:

* PGP keys to verify who you are. Would prefer one key to rule everything on your ID. Your bot could still have a name. Would need to be unique, somehow. How?
* I2P network for anonymity 
* Decentralized, consensus and/or individual server oriented? Seems like centralized, on my own servers, is best. Could still figure out innate loadbalancing mechanics. So, centralized cluster of my own servers.
* Persistence over time
* Gamestates output in text, allows you to play the UI you want to play
* Bitcoin, could have an ingame mixer. PGP and Bitcoin addressbook in game. 
* Modding (lots of options here)
* Do I want to make money at this, and how?
* Only someone with master-game-GM PGP key can do certain things in the game, I assume. Clients will just be hacked though. Might need servers to do a lot of work here.
* Bitcoin to play with other players?
* New account keys need to be signed by GM-Key. An account key costs bitcoin to use. Monthly bitcoin cost. Dirt cheap.
** If they stop paying their key/account stops working. 
*** Bot persistence/account freeze. They can pay to bring it back online.
* Client needs to be retarded simple. It only accepts:
** Bot commands
* Bitcoin prizes? PvP, PvE? Percentage of income. 
* Clients might make a huge botnet, Sybil attack on i2p a well. 
** A bad option.
** Would prefer to make it so that other people can just make their own clients
** A “bring your own client” kind of game. 
* EVE Online
** Randian rules, universe inside.
** The anonymity makes it randian too. 
 
Hardware, dev.

* Development would need to be done with at least a VPN.
* Server
** ProxyHam
*** Throughput problem? Need a very small connection footprint per player.
** VPN (bitcoin this one)
** I2P
```bash
#!/bin/bash

### Replace all instances of foobar.domain in this script with your actual foobar.domain

# Install lighttpd server; default serves /var/www/html
sudo apt-get install lighttpd -y
sudo service lighttpd restart

### Setup HTTPS
# Open port SSL port
sudo apt-get install ufw -y
sudo ufw allow 443

# Install LetsEncrypt
sudo apt-get install letsencrypt -y
sudo letsencrypt certonly --webroot -w /var/www/html -d foobar.domain -d www.foobar.domain
sudo letsencrypt renew --dry-run --agree-tos
cd /etc/letsencrypt/live/foobar.domain
sudo cat privkey.pem cert.pem > ssl.pem
cd /etc/ssl/certs

# Generate key; this can take quite a while
sudo openssl dhparam -out dhparam.pem 4096

# create configuration file
sudo cat <<EOT >> /etc/lighttpd/conf-enabled/letsencrypt.foobar.domain.conf
$SERVER["socket"] == ":443" {
     ssl.engine = "enable" 
     ssl.pemfile = "/etc/letsencrypt/live/foobar.domain/ssl.pem" 
     ssl.ca-file =  "/etc/letsencrypt/live/foobar.domain/fullchain.pem"
     ssl.dh-file = "/etc/ssl/certs/dhparam.pem" 
     ssl.ec-curve = "secp384r1"
     ssl.honor-cipher-order = "enable"
     ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
     ssl.use-compression = "disable"
     setenv.add-response-header = (
    "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload",
    "X-Frame-Options" => "DENY",
    "X-Content-Type-Options" => "nosniff"
)
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
}
EOT

# Restart your http server
sudo service lighttpd restart

# Setup autorenew in crontab
(crontab -l ; echo "0 1,13 * * * letsencrypt renew") | crontab -












```
<<<
There once was a man from Nantucket,

Whose cock was so long he could suck it.

He said with a grin

As he wiped off his chin,

"If my ear were a cunt I would fuck it!
<<<
//Where my long-term drug-use transforms into a demonstration of my confirmation bias before your very eyes.//

I think I'm an exceptional link aggregator.<<ref "1">> My taste is impeccable. I have so much hipster style (suck it). Yeah, I'm pretty cool, man. I was an internet addict long before even using the internet on a weekly basis was socially acceptable. I'm literally an autistic savant with roughly ~50,000 hours spent on the interwebs.<<ref "2">> I do not exaggerate when I tell you that I am virtuous at the practice of using this drug.

I'm pretty fucking OG. I've been around the block, there and back again, and have forgotten more than you will ever know. You could never catch up to me even if you wanted to. You will never see what I have seen, explore the dead roads I've been down, or experience The Stack exponentially grow as I have. Oh, the stories I could tell ya', young'n. I'll learn you somethin' yet, chill'un.

I am an expert witness of this human network.<<ref "3">> I'm what you might call "well-read" in this domain. Here I get to be a gatekeeper because I am a Grandmaster.<<ref "4">> I'm an internet guardian, protecting the sacred grounds from intruders. Get off my lawn! 

I'm an internet scholar in addition to being a philosopher. I'm still a low-class user just like you, but with more time and willpower (or lack thereof) on his hands. =) Surely, you must fall on your knees before this delusional manchild internet addict. 

You are so very welcome to the fruits of my labor. With my virtuous perception, I pick out the morally salient features of the internet on a daily basis. Come, partake with me. Take a hit.

Lol.

No, but for real,  I am always sifting through the sands of the internet for diamonds. Even when you become adept at turning your signal-to-noise ratio up as high as you can in a constantly evolving landscape, most of what you see is still bullshit.<<ref "5">> You're happy to have seen many things, but they usually have a single-use appeal to them. Some links are worth keeping though, and some moreso than others. Normally, I just bookmark them in my browser.<<ref "6">> Since I'm trying to centralize my data and maintain control of it, I'm going to try to migrate that bookmarking data and my daily curation practices to the wiki instead. 

!! Vault:

* [[2017.04 -- Link Log]]
* [[2017.05 -- Link Log]]
* [[2017.06 -- Link Log]]

!! Current Month:

* [[2017.07.03 -- Link Log]]
* [[2017.07.04 -- Link Log]]
* [[2017.07.05 -- Link Log]]




For now, I won't worry about trying to categorize it. Although, ideally, I would get there. That is really its own giant project. Right now, I'm taking baby steps, one droplet at a time. Bit by bit.

---

<<footnotes "1" "Proverbs 16:18">>

<<footnotes "2" "I'm not sure if that is sad or not. I am who I am though.">>

<<footnotes "3" "For every 1 thing you've seen that I haven't, I have at least 10 things I've seen that you haven't.">>

<<footnotes "4" "No fallacies, and he's so humble too!">>

<<footnotes "5" "Including what you are reading right now. Got 'em!">>

<<footnotes "6" "Unfortunately, for my first decade, I barely even bookmarked. I memorized the URL, IP, or even how I got to a location. I didn't realize it would be worth cataloging. Even the bookmarks I had were lost because I didn't take the time to transfer/sync them to my new machines. Much progress has been lost because it wasn't recorded. Although, even those things which I didn't bookmark ultimately played into how I thought about and used the internet (and perhaps life in general).">>
I spend a considerable amount of time on the web, and I have since I was a tween.<<ref "1">> I have not been as systematic about it as I should have been.<<ref "2">> Perhaps I should comb through my old interwebs accounts for more context, links, etc. as well. There is history there.

* [[Link Log]]

I have the unenviable task of going through thousands of bookmarks collected over a decade. I'm not quite sure how I want to systematically tackle them. I would like to eventually just house it all here. This is my new computing home, right? Lol.

Let me tell you, I am very nervous about this project. I do not know if I will be able to do the kind of work I want to do with it. The easy part is sorting stuff, and the hard part will be digesting it. I will simply do my best though. What else can I do? The silver-lining is that I have more control of it. Categorization, tagging, and flexibility may give me the power to build something that I simply can't do in a standard web browser.

* [[Links: Anonymity + Privacy]]
* [[Links: Art]]
* [[Links: Comics]]
* [[Links: Computing]]
* [[Links: Education & Research]]
* [[Links: IP, Privacy, Censorship, Surveillance, Mind-Control, & Anonymity]]
* [[Links: Jobs, Occupations, and Vocations]]
* [[Links: Legal]]
* [[Links: Lifehacks]]
* [[Links: Media Sites]]
* [[Links: Music + Sound]]
* [[Links: NSFW]]
* [[Links: People Worth Reading]]
* [[Links: Personal Finances]]
* [[Links: Philosophy]]
* [[Links: Redpilled]]

Linkrot is always a problem. I adore https://www.archive.org/. 


---

<<footnotes "1" "I'm going to wager 4 hours a day average, which doesn't include my other computer and internet use. It's been tremendous.">>

<<footnotes "2" "Yay for that lack of executive functioning. The more I live life, the more I realize that it is I who must take responsibility for shaping my own experience and building my own tools and objects that I find valuable and useful.">>
Technology is a double-edged sword. Use it wisely, for good and producing happiness. This is a toolkit and library that I care about. I've been building it for quite a while.

* Cloud Storage and Backups
** https://www.digitalocean.com/community/tutorials/how-to-use-duplicity-with-gpg-to-securely-automate-backups-on-ubuntu
** https://www.boxcryptor.com/en/

* Doxxing
** https://www.truepeoplesearch.com/

* DNS
** https://dnscrypt.org/
** https://github.com/simonclausen/dnscrypt-autoinstall

* Fingerprinting
** https://browserprint.info/#fingerprint

* i2p
** https://www.whonix.org/wiki/I2P

* Information
** https://www.youtube.com/watch?v=7G1LjQSYM5Q&feature=share
** http://stop-prism.org/

* Messaging
** https://bitmessage.org/wiki/Main_Page

* Tor
** https://www.reddit.com/r/onions/comments/3kko94/security_by_advanced_obscurity_ssh_though_tor/
** https://github.com/patrickod/docker-tor-hidden-services

* VM
** Qubes
*** https://www.reddit.com/r/Qubes/
*** https://jrruethe.github.io/blog/2015/09/12/setting-up-qubes/

* VPN
** Software
*** http://www.freelan.org/
*** https://github.com/adrelanos/VPN-Firewall
*** https://sourceforge.net/projects/vpnchains/

* VPS
** http://cryto.net/~joepie91/bitcoinvps.html

* Art Ideas
** http://www.viralnova.com/bottle-cap-crafts/
** https://www.google.com/search?q=image+made+of+images&oq=image+made+of+images&aqs=chrome..69i57.2071j0j7&sourceid=chrome&es_sm=93&ie=UTF-8
** http://www.instructables.com/id/Open-Source-Beer-Bottle-Cap-Mosaic-Program/
* http://existentialcomics.com/
* Network Tools
** http://www.netlookup.se/
Some of these are extremely serious and highly technical. Others border on legitimate infotainment.


* Abnormal Education
** http://tvtropes.org/
** http://www.faqs.org/espionage/
** https://www.youtube.com/user/ChessNetwork/videos
** http://www.atlasobscura.com/
** https://www.youtube.com/user/thugnotes/

* Citation
** http://www.eturabian.com/turabian/index.html
** https://www.zotero.org/
** http://www.bibme.org/

* For Kids
** https://www.education.com/
** https://www.brainpop.com/games/

* Open Education
** https://www.khanacademy.org
** https://www.coursera.org/
** http://oli.cmu.edu/
** http://www.open.ac.uk/
** https://ocw.mit.edu/
** http://www.extension.harvard.edu
** https://www.codecademy.com
** http://ocw.tufts.edu/
** http://ocw.jhsph.edu/
** http://ocw.usu.edu/
** http://ocw.uci.edu/courses/
** http://www.open.edu/openlearn/
** http://oyc.yale.edu/
** http://ocw.dixie.edu/courselist
** http://ocw.umb.edu/courselist/
** http://ocw.capilanou.ca/courselist
** https://ocw.tudelft.nl/
** https://www.udacity.com/
** https://www.edx.org/
** http://antolin-davies.com/videos/
** http://www.open.edu/openlearn/free-courses
** http://study.com/academy/course/index.html

* Plagarism Checking
** http://www.plagiarismchecker.com/
** https://www.newjester.com/
** http://www.articlechecker.com/
** https://www.duplichecker.com/
** http://www.plagium.com/
** http://www.dustball.com/cs/plagiarism.checker/
** https://www.thepensters.com/free-plagiarism-checker-for-students-online.html
** http://www.copyscape.com/
** http://www.plagtracker.com/
** http://plagiarisma.net/

* Research
** https://www.worldcat.org/
** https://plato.stanford.edu/

* Specialized Topics, Courses, Collections, Books, Resources, Etc.
** Computer Science
*** https://crypto.stanford.edu/~dabo/cryptobook/draft_0_2.pdf
*** https://github.com/open-source-society/computer-science
** Music
*** http://www.freesheetmusic.net/
*** http://openhymnal.org/search.html
*** http://tobyrush.com/theorypages/index.html
*** Guitar
**** https://www.jamplay.com/tools/online-guitar-tuner
**** http://www.gieson.com/Library/projects/utilities/mic_tuner/
**** https://www.guitarlessons.com/
**** http://sethares.engr.wisc.edu/alternatetunings/alternatetunings.pdf
**** http://www.guitarhabits.com/16-legendary-fingerpicking-patterns/
**** https://www.ultimate-guitar.com/
**** http://www.theninhotline.net/knowthescore/index.html

* Standards, Search, Odd Resources, etc.
** http://www.corestandards.org/
** http://bestonlinemastersdegrees.com/2010/50-essential-web-tools-to-search-and-bookmark-open-courseware/
** http://www.learner.org/interactives/

* Summaries, Cheatsheets, Shortcuts, etc.
** https://www.getabstract.com/en/
** http://instaread.co/


* Articles
** http://www.law.harvard.edu/faculty/tfisher/iptheory.html
** http://www.groklaw.net/articlebasic.php?story=20091111151305785
** https://torrentfreak.com/bittorrent-piracy-doesnt-affect-us-box-office-returns-study-finds-120210/
** http://comicsalliance.com/neil-gaiman-piracy-lending-books/
** http://comicsalliance.com/underground-4chan-steve-lieber-sales-pirated-scans/
** https://etd.ohiolink.edu/send-pdf.cgi/Moore%20Adam%20D.pdf?osu1214419634
** https://research.stlouisfed.org/wp/2012/2012-035.pdf
** https://arstechnica.com/tech-policy/2012/03/opinion-the-problem-with-software-patents-they-dont-scale/
** https://gigaom.com/2011/08/12/ubuntus-shuttleworth-patents-misunderstood-misused-outdated/
** https://torrentfreak.com/pirate-party-enters-berlin-parliament-after-historical-election-win-110918/
** http://www.chronicle.com/article/fear-of-repression-spurs/129049?sid=at&utm_medium=en&utm_source=at
** https://googlecompetition.blogspot.com/2011/09/guide-to-senate-judiciary-hearing.html
** https://arstechnica.com/tech-policy/2011/09/us-net-neutrality-rules-finalized-in-effect-november-20/
** https://current.com/community/93466154_government-orders-you-tube-to-censor-protest-videos.htm
** https://i.imgur.com/aTBIS.png
** http://www.abc.net.au/technology/articles/2011/10/20/3344351.htm
** https://www.theverge.com/reviews/2011/08/11/broken-patent-system/
** http://www.economist.com/node/21531011
** https://www.reddit.com/r/AskReddit/comments/l584k/how_much_does_bandwidth_actually_cost_an_isp/
** https://arstechnica.com/uncategorized/2006/08/7502/
** https://www.theregister.co.uk/2011/10/26/michael_posner_at_svhrc/
** https://www.techdirt.com/articles/20120126/09565417551/why-piracy-is-indispensable-survival-our-culture.shtml#bXpulseX
** https://www.techdirt.com/articles/20151007/14402732471/right-way-to-stop-piracy.shtml
** https://www.eff.org/deeplinks/2015/10/final-leaked-tpp-text-all-we-feared
** https://medium.com/cuepoint/the-devaluation-of-music-it-s-worse-than-you-think-f4cf5f26a888
** https://motherboard.vice.com/en_us/article/78kzqd/internet-radio-copyright-is-bad-and-dumb-a-comprehensive-explainer
** https://opensource.com/life/15/11/audio-format-linux-flac-ogg
** https://www.lifehacker.com.au/2015/09/netlfix-has-apparently-reduced-piracy-in-australia/
** https://www.techdirt.com/articles/20150903/17071532162/more-experts-realizing-that-tpp-is-horrible-dangerous-deal-copyright.shtml
** https://torrentfreak.com/warning-illegal-downloaders-is-too-expensive-record-labels-complain-150914/
** https://www.usatoday.com/story/news/health/2015/09/18/company-hikes-price-5000-drug-fights-complication-aids-cancer-daraprim/32563749/
** http://www.latimes.com/local/lanow/la-me-ln-happy-birthday-song-lawsuit-decision-20150922-story.html
** https://torrentfreak.com/piratbyran-speech/
** https://www.macfound.org/fellows/951/
** https://motherboard.vice.com/en_us/article/ae3qx8/the-perfect-birth-control-for-men-is-here-why-cant-we-use-it
** https://torrentfreak.com/what-if-the-bad-guys-win/
** https://torrentfreak.com/what-if-the-good-guys-win/
** https://torrentfreak.com/copyright-corruption-scandal-surrounds-anti-piracy-campaign-111201/
** http://www.dailylobo.com/article/2015/09/1-q-and-a-with-jed-crandell
** http://www.thecritique.com/articles/economics-for-ethics/
** https://www.eff.org/deeplinks/2015/08/why-shouldnt-copyright-be-infinite
** https://www.techdirt.com/articles/20150808/05331531886/why-tpp-threatens-to-undermine-one-fundamental-principles-science.shtml
** https://torrentfreak.com/police-arrest-men-for-spreading-popcorn-time-information-150819/
** https://www.techdirt.com/articles/20150817/11362131983/yes-appeals-court-got-basically-everything-wrong-deciding-apis-are-covered-copyright.shtml
** http://www.groklaw.net/articlebasic.php?story=20111005102810176
** https://theconversation.com/technolog-chasing-illegal-movie-downloaders-proves-an-unprofitable-exercise-46432
** https://news.ycombinator.com/item?id=10101469
** http://www.wifr.com/home/headlines/Illinois-High-Court-Comcast-Must-Reveal-Anonymous-Commenter-308282431.html
** https://www.techdirt.com/articles/20150816/01043931970/germany-says-taking-photos-food-infringes-chefs-copyright.shtml
** https://www.techdirt.com/articles/20150821/00394032024/world-is-catching-that-creativity-creative-jobs-have-been-growing-not-disappearing-post-napster.shtml
** http://money.cnn.com/2015/08/20/technology/google-2016-election/index.html
** http://www.latimes.com/opinion/opinion-la/la-ol-spotify-bit-torrent-20141119-story.html
** http://www.belfasttelegraph.co.uk/news/northern-ireland/cut-nhs-from-ttip-trade-deal-say-doctors-31320704.html
** http://www.cbc.ca/news/technology/academic-publishers-reap-huge-profits-as-libraries-go-broke-1.3111535
** https://www.eff.org/deeplinks/2015/06/eff-stands-innovative-developers-wake-oracle-v-google
** https://torrentfreak.com/petty-hollywood-stops-pirate-admin-from-going-home-150711/
** https://copyright.gov/orphan/reports/orphan-works2015.pdf
** https://voat.co/v/news/comments/321464
** https://www.eff.org/deeplinks/2015/07/tpp-copyright-trap-our-last-stand-against-undemocratic-international-agreements
** https://www.techdirt.com/articles/20150723/06094731734/geniuses-representing-universal-pictures-ask-google-to-delist-127001-piracy.shtml
** https://torrentfreak.com/universal-asks-google-to-censor-furious-7-imdb-page-and-more-150722/
** http://thediplomat.com/2015/07/how-the-tpp-will-protect-the-united-states-third-offset-strategy/
** https://www.techdirt.com/articles/20150805/00144231854/tpp-leaks-shows-us-stands-firm-that-companies-should-be-free-to-abuse-patents-copyrights.shtml
** http://www.thedailysheeple.com/fbi-says-that-citizens-should-have-no-secrets-that-the-government-cant-access-the-orwellian-cyber-police-state-has-arrived_082015
** https://voat.co/v/news/comments/384440
** http://www.cbronline.com/news/cybersecurity/data/piracy-is-gateway-crime-claims-nca-cybercrime-chief-4592589
** https://torrentfreak.com/pirate-bay-block-doesnt-boost-sales-research-shows-150604/
** https://www.vox.com/2015/6/1/8697947/elizabethan-book-pirates
** https://www.eff.org/deeplinks/2015/05/eff-filings-copyright-office-highlight-unintended-consequences-dmca
** https://www.techdirt.com/articles/20150606/16191831259/according-to-government-clearing-your-browser-history-is-felony.shtml
** http://www.canberratimes.com.au/it-pro/security-it/dangerous-minds-are-maths-teachers-australias-newest-threat-20150607-ghira9
** https://www.extremetech.com/computing/207779-netflix-ceo-credits-piracy-for-helping-company-succeed-predicts-successful-spanish-launch
** https://noisey.vice.com/en_uk/article/download-festival-is-a-police-trial-ground-for-facial-recognition?utm_source=vicefbuk
** https://www.bloomberg.com/news/articles/2015-06-16/the-creator-of-linux-on-the-future-without-him
** https://arstechnica.co.uk/tech-policy/2015/06/shock-european-court-decision-websites-are-liable-for-users-comments/
** https://www.asc.upenn.edu/news-events/publications/tradeoff-fallacy-how-marketers-are-misrepresenting-american-consumers-and
** https://www.eff.org/deeplinks/2015/06/eff-cloudflare-ask-federal-court-not-force-internet-companies-enforce-music-labels
** https://www.techdirt.com/articles/20150209/17454529973/uss-naughty-list-countries-whose-intellectual-property-rules-we-dont-like-is-joke-thats-no-longer-funny.shtml
** https://www.eff.org/document/defend-innovation-how-fix-our-broken-patent-system
** https://www.techdirt.com/articles/20150312/06330930299/years-brainwashing-public-into-thinking-everything-creative-must-be-owned-has-led-to-this-new-mess.shtml
** https://torrentfreak.com/research-piracy-increases-literacy-and-access-to-knowledge-150405/
** https://www.wired.com/2015/04/dmca-ownership-john-deere/
** https://en.wikipedia.org/wiki/The_Man_from_Earth
** https://opinionator.blogs.nytimes.com/2013/07/14/how-intellectual-property-reinforces-inequality/?_r=0
** https://consumerist.com/2015/05/01/philip-morris-international-uses-copyright-claims-to-quiet-marlboro-critics/
** https://www.techdirt.com/articles/20150515/07042731012/eu-study-confirms-hollywoods-site-blocking-campaign-is-total-failure.shtml
** https://techcrunch.com/2015/05/28/netflix-hbo-streaming-video-traffic-increases-as-bittorrent-declines/
** https://www.youtube.com/watch?v=d9ryPC8bxqE
** https://torrentfreak.com/hollywood-piracy-poses-a-great-cybersecurity-threat-150602/
** http://www.zdnet.com/article/its-an-open-source-world-78-percent-of-companies-run-open-source-software/
** https://i.imgur.com/UwqKPS7.jpg
** https://www.wired.com/2015/01/fixing-broken-patent-system/
** http://www.businessinsider.com/norway-music-piracy-statistics-2015-1
** https://www.opednews.com/populum/page.php?f=The-True-Cost-of-Piracy-I-by-Mordecai-Hunter-Economy_Economy_Hackers_Movies-150131-101.html
** http://journal-neo.org/2014/10/12/censorship-alert-the-alternative-media-are-getting-harassed-by-the-nsa/
** http://www.nytimes.com/2013/10/13/us/the-soaring-cost-of-a-simple-breath.html
** https://www.digitalnewsasia.com/digital-economy/emerging-markets-report-fundamental-life-changes-from-connectivity
** https://www.aei.org/publication/us-patent-system-strangling-us-innovation/
** https://torrentfreak.com/you-cant-defend-public-libraries-and-oppose-file-sharing-150510/
** https://en.wikipedia.org/wiki/Illegal_prime
** https://www.techdirt.com/articles/20130410/12051322665/copyright-lobotomy-how-intellectual-property-makes-us-pretend-to-be-stupid.shtml
** https://www.joelonsoftware.com/2013/07/22/victory-lap-for-ask-patents/
** https://www.eff.org/deeplinks/2013/08/google-fiber-continues-awful-isp-tradition-banning-servers
** https://www.washingtonpost.com/news/the-switch/wp/2013/08/29/new-zealand-just-abolished-software-patents-heres-why-we-should-too/
** https://www.forbes.com/sites/bruceupbin/2011/10/22/the-147-companies-that-control-everything/#42728f2f5105
** https://boingboing.net/2013/09/09/scholar-shows-three-strikes.html
** https://www.bna.com/legal-issues-raised-by-the-use-of-web-crawling-and-scraping-tools-for-analytics-purposes/
** https://torrentfreak.com/rightsholders-propose-unprecedented-search-engine-manipulation-130911/
** https://www.techdirt.com/articles/20130918/02262824565/nbc-universal-funded-study-shows-yet-again-how-infringement-is-hollywoods-own-damn-fault.shtml
** https://torrentfreak.com/how-can-somebody-who-loves-culture-possibly-defend-the-copyright-monopoly-130929/
** https://torrentfreak.com/piracy-isnt-hurting-the-entertainment-industry-121003/
** https://torrentfreak.com/jail-for-file-sharers-does-nothing-to-increase-music-sales-131003/
** http://www.spiegel.de/international/zeitgeist/no-copyright-law-the-real-reason-for-germany-s-industrial-expansion-a-710976.html
** https://torrentfreak.com/copyright-monopoly-must-be-torpedoed-131013/
** http://pubs.aeaweb.org/doi/pdfplus/10.1257/jep.27.4.121
** http://www.deathmetal.org/news/heavy-metal-shows-piracy-is-not-killing-music-offers-new-business-model/
** https://www.techdirt.com/articles/20140103/08105125759/study-file-sharing-has-not-led-to-less-new-original-music-being-created.shtml
** https://www.techdirt.com/articles/20140114/10565225874/copyright-week-our-lost-culture-what-we-lose-having-killed-public-domain.shtml
** http://www.npr.org/sections/alltechconsidered/2014/02/06/272480919/when-it-comes-to-high-speed-internet-u-s-falling-way-behind?utm_source=News@Law%20subscribers&utm_campaign=49c80ad8f9-News_Law_February_7_2014_2_7_2014&utm_medium=email&utm_term=0_856982f9c6-49c80ad8f9-277213781
** http://www.nybooks.com/articles/2014/05/08/thomas-piketty-new-gilded-age/
** https://www.theguardian.com/environment/earth-insight/2014/jun/19/open-source-revolution-conquer-one-percent-cia-spy
** http://blogs.lse.ac.uk/europpblog/2013/06/15/five-minutes-with-mariana-mazzucato/
** https://www.techdirt.com/articles/20140929/08500728662/new-company-claims-it-uses-algorithms-to-create-content-faster-than-creators-can-making-all-future-creations-infringing.shtml#comments
** https://torrentfreak.com/scientist-deliberately-pirates-art-on-a-nanoscopic-scale-141102/

This is an incredibly pertinent section to my life right now. I need to push in this direction. It is more generalized that my [[Pipefitting]] section, but still useful.

* Advice
** https://www.reddit.com/r/AskReddit/comments/12xc1w/how_do_i_spot_a_bad_boss_during_a_job_interview/
** https://www.reddit.com/r/AdviceAnimals/comments/20hqbu/my_jobhunting_lifehack/
** https://qz.com/229570/here-are-most-valuable-skills-in-americas-tech-job-market/
** https://www.reddit.com/r/AdviceAnimals/comments/1imvuk/im_actually_kind_of_proud_of_myself_for_coming_up/cb62l2h/

* Interviewing
** https://stackoverflow.blog/2017/04/27/how-to-talk-about-yourself-in-an-interview/?utm_content=buffer74fe2&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

* Selling Drugs (lol)
** https://www.hipforums.com/topic/341573-drug-mailing-the-potal-system-courier-shipping-long-post/
** http://www.vocativ.com/tech/internet/drugs-usps/

* Tools
** https://chroniclevitae.com/

It's important that you keep a set of legal resources available. Make it easy on yourself. Be prepared. Right now, I'm not very prepared (but I've also barely started migrating my bookmarks).

* https://www.rocketlawyer.com/legal-documents-forms.rl
Being virtuous at a practice means understanding the boundaries, mechanics, tips, tricks, and overall metagame of the practice. One must do the same for life.

* http://unethicalhacks.com/

* Vacations
** http://www.atlasobscura.com/articles/the-container-ship-tourism-industry
I have used countless sites. Few survive, and even fewer are worthwhile. Signal-to-noise ratios are difficult to tune. Some sites, obviously, are more worthy than others at different time periods and for different contexts and purposes. There's plenty of overlap in here.

* "Reputable" News, Informative Blogs, Repositories, etc.
** http://www.bbc.com/
** https://arstechnica.com/
** https://torrentfreak.com/
** https://www.csmonitor.com/
** http://www.aljazeera.com/
** http://www.reuters.com/
** http://www.npr.org/
** http://leiterreports.typepad.com/blog/
** http://www.economagic.com/

* Explicitly Editorialized Aggregators, Feeds, and Centralized Curators
** https://digg.com/
** http://popurls.com/
** https://www.wimp.com/
** https://slashdot.org/

* Ranked and Crowd-Sourced Content Aggregators, Forums, Curators, and Reputation-oriented Social Networks
** https://voat.co/
** https://www.reddit.com/
** https://news.ycombinator.com/
** http://forum.ebaumsworld.com/ 
** http://www.funnyjunk.com/
** https://www.somethingawful.com/
** https://imgur.com/ 
** http://www.fark.com/

* Pseudonymous-oriented Forums, OC, etc.
** http://forum.encyclopediadramatica.rs/ (technically has reputation)
** https://www.4chan.org/
** https://8ch.net/

* Humor
** https://www.fmylife.com/
** http://leasthelpful.tumblr.com/
** https://r.sine.com/

* Unique Portals
** https://github.com/bibanon/bibanon

* Theoretical and Practical (Applied) Philosophy
** https://areomagazine.com/

* https://www.pandora.com/
* http://www.solopianoradio.com/
* http://www.rainymood.com/
* http://relaux.com/
(*crickets*)
This extends beyond my friends and family, obviously. This is about having good information sources.

I use a lot of aggregrators. There are collections of individual and group work that should be inspected. There are feeds that I should digest. 

* http://scattered-thoughts.net/
* Banking Institutions
** https://www.chase.com/
** https://www.paypal.com/us/home
** https://secure.bluebird.com/?linknav=us-Prepaid-Bluebird-Home-Login
** https://www.coinbase.com/signin

* Cryptocurrency
** https://en.bitcoin.it/wiki/Main_Page
** https://blockchain.info/
** https://bitcointalk.org/index.php
** https://www.virwox.com/
** https://ethereum.gitbooks.io/frontier-guide/content/index.html

* Student Loans
** https://studentloans.gov/myDirectLoan/index.action
** https://accountaccess.myfedloan.org/authentication/
** Advice
*** https://www.reddit.com/r/IAmA/comments/pkpic/iama_bill_collector_for_college_debt_and/c3q6q6s/
*** https://www.reddit.com/r/AskReddit/comments/1lz6xf/reddit_what_are_some_loopholes_every_american/cc49n1v/
*** https://www.reddit.com/r/AdviceAnimals/comments/1vlcya/too_many_graduates_dont_know_this/

* Identity
** Advice
*** https://np.reddit.com/r/StolenIdentity/comments/67lggi/what_to_do_if_you_know_or_you_think_your_identity/

* Housing
** Homes
*** https://www.hudhomestore.com/Home/Index.aspx
*** http://www.finestexpert.com/
*** http://www.hudforeclosed.com/
** Apartments
*** https://www.apartments.com/
*** http://www.bidrent.com/index.php
*** https://www.forrent.com/
*** https://www.craigslist.com/
*** http://www.housingmaps.com/
*** https://www.abodo.com/
*** http://www.rentals.com/
*** http://rentbits.com/rb/s/find-rentals
*** http://www.rent.com/
*** http://www.move.com/
*** http://www.mynewplace.com/
*** http://www.rentalsource.com/
*** https://www.apartmentratings.com
*** http://www.apartmentguide.com/
*** https://hotpads.com/
*** https://www.padmapper.com/
*** http://www.apartmentsearch.com/
*** http://www.apartmentfinder.com/
*** Advice
**** https://www.reddit.com/r/AskReddit/comments/1lz6xf/reddit_what_are_some_loopholes_every_american/cc4ep0x/

* Shopping
** https://www.craigslist.org/
** http://www.ebay.com/
** Glasses -- http://www.zennioptical.com/
** http://www.fatfingers.co.uk/default.aspx
** https://camelcamelcamel.com/
** http://www.ubid.com/
** https://www.fiverr.com/
** https://www.aliexpress.com/
** https://www.chinavasion.com/
** https://www.dx.com/
** http://www.focalprice.com/
** https://www.thisiswhyimbroke.com/
** https://www.wish.com/

* Will
** Advice
*** https://www.forbes.com/sites/financialfinesse/2012/10/18/you-just-locked-out-your-executor-and-made-your-estate-planning-a-monumental-hassle/#311084385200
* Articles
** http://www.austlii.edu.au/au/journals/MurUEJL/2005/9.html
* Articles
** http://www.smithsonianmag.com/smart-news/people-who-never-apologize-are-probably-happier-than-you-12584567/
** http://blogs.reuters.com/felix-salmon/2012/07/10/how-economists-get-tripped-up-by-statistics/
** https://www.uni-bonn.de/Press-releases/markets-erode-moral-values
** https://thebaffler.com/salvos/a-practical-utopians-guide-to-the-coming-collapse
** https://www.washingtonpost.com/news/wonk/wp/2014/10/18/poor-kids-who-do-everything-right-dont-do-better-than-rich-kids-who-do-everything-wrong/
** http://www.huffingtonpost.com/2013/05/28/income-inequality-study_n_3346073.html
** http://talkingpointsmemo.com/livewire/princeton-experts-say-us-no-longer-democracy
** http://www.economist.com/news/finance-and-economics/21635477-behavioural-economics-meets-development-policy-poor-behaviour?fsrc=scn/tw/te/pe/ed/poorbehaviour
** https://www.math.tecnico.ulisboa.pt/~sjh/thoughts
** https://mail.sssup.it/~amoneta/causality_econometrics.pdf
** http://economistsview.typepad.com/economistsview/2015/10/is-economics-research-replicable-usually-not.html

* Resources
** https://youarenotsosmart.com
```
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                           ,,                                # 
#       MMP""MM""YMM        db        `7MM                    #
#       P'   MM   `7                    MM                    #
#            MM  `7Mb,od8 `7MM  ,p6"bo  MM  ,MP',pP"Ybd       #
#            MM    MM' "'   MM 6M'  OO  MM ;Y   8I   `"       #
#            MM    MM       MM 8M       MM;Mm   `YMMMa.       #
#            MM    MM       MM YM.    , MM `Mb. L.   I8       #
#          .JMML..JMML.   .JMML.YMbmd'.JMML. YA.M9mmmP'       #
#                                                             #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# "do one thing well" one-liners or everyday CLI usage        #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
```



!Print

Print: all the lines between 10 and 20 of a file

```
sed -n ‘10,20p’ /file/name/here
```

Print: all the lines from 10 to the end of line

```
sed -n ’10,$p’ /file/name/here
```

Print: a specific line number from a file

```
sed -n 5p /file/name/here
```

Print: lines 5 through 10 and 12 inside a file

```
sed -e '5,10d;12d' /file/name/here
```

Print: working directory

```
pwd
```

Print: the last command that would be executed rather than executing it

```
!xyz:p
```

Use `column -t` to align command output

```
grep cpu /proc/stat | column -t
```








!File and Directory: Manipulation, Operations

Store directory to stack

```
pushd directory
```

Set top stack directory as actual directory

```
popd 
```

Create a symbolic link

```
ln -s source link
```

Print logical (physical) path to current directory

```
pwd
```






!Search, Find, Replace, Rename, Text Manipulation

Search: for files using file-name (case insensitve)

```
find -iname "foofilename.bar"
```

Search: for a given string in a file (case insensitive)

```
grep -i "foobar" /file/name/here
```

Search: for a given string in all files recursively

```
grep -r "foobar" *
```

Search and replace: old with new string, inside all files

```
grep -rl oldstring . |xargs sed -i -e ‘s/oldstring/newstring/’
```

Search and replace: oldstring with new string inside a file

```
sed -i 's/^Old String Here.*/New String Here/' /file/name/here
```

Rename: all files in a directory to lowercase names

```
for i in `ls -1`; do mv $i "${i,,}" ; done

```

Substitute "foo" with "bar" ONLY for lines which contain "baz"

```
awk '/baz/{gsub(/foo/, "bar")}; 1' filename
```

Substitute "foo" with "bar" EXCEPT for lines which contain "baz"

```
awk '!/baz/{gsub(/foo/, "bar")}; 1' filename
```

Delete ALL blank lines from a file (same as "grep '.' ")

```
awk NF filename && awk '/./' filename
```

Remove duplicate, nonconsecutive lines

```
awk '!($0 in a){a[$0];print}' filename
```

Remove duplicate, consecutive lines (emulates "uniq")

```
awk 'a !~ $0; {a=$0}' filename
```





! Delete

Delete: lines 5 through 10 and 12 inside a file

```
sed -i.bak -e '5,10d;12d' /file/name/here
```

Delete all files in a folder that don't match a certain file extension

```
rm !(*.foo|*.bar|*.baz)
```





! Serve

Serve: current directory tree at http://$HOSTNAME:8000/

```
python -m SimpleHTTPServer
```





! Mount, Partition, Write, Image, Burn

Mount: folder/filesystem through SSH

```
sshfs name@server:/path/to/folder /path/to/mount/point
```

Mount: a temporary ram partition

```
mount -t tmpfs tmpfs /mnt -o size=1024m
```

Write: a bootable iso to a drive. You can use //lsblk// to find the drive. Also, note that it's sdX, not sdX1.

```
sudo dd if=/path/to/filename.iso of=/dev/sdX bs=4M
```

Mount: a .iso file in UNIX/Linux

```
mount /path/to/file.iso /mnt/cdrom -oloop
```

Mount BRTFS (compressed) partition

```
mount /dev/sda2 -t btrfs -o noatime,nodiratime,compress=lzo /path

```





! Copy, Cut, Paste, Move, Sync

Copy: all files of .bar type from one directory to another

```
ls *.bar | xargs -n1 -i cp {} /destination/directory/here
```

Copy: all .bar type files in the system to foobar archive

```
find / -name *.bar -type f -print | xargs tar -cvzf foobar.tar.gz
```

Move (cut) all the files and directories from Source directory to Destination directory

```
mv  -v ~/Source/* ~/Destination/
```

Move (cut) all files (but not directories) from Source directory to Destination directory

```
find ~/Source/ -type f -print0 | xargs -0 mv -t ~/Destination
```

Move (cut) all files from Source directory, but not any files within directories in the Source directory to Destination directory (here, -maxdepth option specifies how deep find should try, 1 means, only the directory specified in the find command. You can try using 2, 3 also to test).

```
find ~/Source/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Destination
```




! Run, Kill, Execute, Chmod

Run: the last command as root        

```
sudo !!
```

Run: the last command

```
!!
```

Run: the last command beginning with xyz that I typed

```
!xyz
```

Kill: a process that is locking a file.

```
fuser -k filename
```

Recursive chmod all *.sh files within the current directory

```
find ./ -name "*.sh" -exec chmod +x {} \;
```

Use output of last command as input

```
program `!!`
```



! Process Control and Management

Run command in background

```
command &
```

Run prog2, if prog1 ends with success

```
prog1 && prog2
```

Run prog2, if prog1 ends with error

```
prog1 || prog2 
```

Stop process (SIGSTOP)

```
Ctrl+z
```

List processes running in background

```
jobs
```

Shell is replaced by command

```
exec command
```

Wait for end of background tasks

```
wait
```

List processes and users

```
ps -xau 
```

Get PID by name of process

```
pgrep process
```

Common priority p schedule niceness: -20 (max.) to 19 (min.)

```
nice -n p command
```

Change priority of running process

```
renice -n p -p pid
```

Send signal k to proces id. n, 0, 1 SIGHUP; 2 SIGINT Ctrl+c; 3 SIGQUIT; 9 SIGKILL; 15 SIGTERM; 24 SIGSTOP

```
kill -s k n
```

Run command when signal received

```
trap 'command' signals
```

Send signals to process by name

```
killall name
```

Command will continue after logout

```
nohup command &
```

Print time of process execution

```
time command
```

Print user and system time utilization in current shell

```
times
```

Every s seconds run command

```
watch -n s command
```



! Terminal, CLI, Command line, Screen, Bash

Salvage a borked terminal

```
reset               
```

Close shell keeping all subprocess running

```
^z; bg; disown
```

escape any command aliases

```
\[command]
```

Easy and fast access to often executed commands that are very long and complex, with modifiability internal to the command.

```
some_very_long_and_complex_command # label
```

Proper command nesting instead of backticks

```
echo "The date is: $(date +%D)"
```

List all bash shortcuts

```
bind -P
```





! Remote, SSH, SCP, FTP

Transmit voice data from local microphone to speakers of remote computer through SSH

```
arecord -f dat | ssh -C user@host aplay -f dat
```

SSH connection through host in the middle

```
ssh -t reachable_host ssh unreachable_host
```

Copy: your SSH public key on a remote machine for passwordless login - the easy way

```
ssh-copy-id username@hostname
```

Ghetto VPN proxy through SSH

```
sudo sshuttle -r username@hostname 0/0
```

Remove offending key from known_hosts file with one swift move

```
ssh-keygen -R hostname
```





! Automation

Set audible alarm when an IP address comes online

```
ping -i 60 -a IP_address
```

click a hundred times - every 18 milliseconds - using left mouse button (1 at the end)

```
xdotool click --repeat 100 --delay 18 1
```







! System Administration, Monitor, Log, Troubleshoot, Information Gathering, etc.

Low-level Reboot, even through most freezes

```
<alt> + <print screen/sys rq> + <R> - <E> - <I> - <S> - <U> - <B>
```

Show apps that use internet connection at the moment. 

```
lsof -P -i -n
```

Are you lost? Learn about the File System Hierarchy

```
man hier
```

Get the kernel version (and BSD version)

```
uname -a
```

Full release info of LSB distribution

```
lsb_release -a 
```

Show who is currently logged in

```
who
```

Show date, e.g. "20170225 18:05:57 EST"

```
date +"%Y%m%d %H:%M:%S %Z" 
```

Edit crontab

```
crontab -e 
```






! Help, Information, Manual

Information about command

```
type -a command
```

Brief help on bash command

```
help command
```

Detailed manual for command 

```
man command
```

Detailed manual for command

```
info command
```

Find command

```
man -k command
```






! 3rd (Third) party services

Google Translate -- Usage: translate <phrase> <source-language> <output-language>

```
translate(){ wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=$2|${3:-en}" | sed 's/.*"translatedText":"\([^"]*\)".*}/\1\n/'; }
```
```
# # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                                   ,,                #
#       MMP""MM""YMM              `7MM                #
#       P'   MM   `7                MM                #
#            MM  ,pW"Wq.   ,pW"Wq.  MM  ,pP"Ybd       #
#            MM 6W'   `Wb 6W'   `Wb MM  8I   `"       #
#            MM 8M     M8 8M     M8 MM  `YMMMa.       #
#            MM YA.   ,A9 YA.   ,A9 MM  L.   I8       #
#          .JMML.`Ybmd9'   `Ybmd9'.JMML.M9mmmP'       #
#                                                     #
# # # # # # # # # # # # # # # # # # # # # # # # # # # #

lftp                The only FTP client
mc                  Midnight Commander, a file explorer
htop                Top Replacement
discus              Disk Usage Display
ncdu                Disk Usage Tool
jed                 Text editor
bmon                Bandwidth Monitor
byobu               Terminal multiplexer
dtrx                Easy Decompression
mtr                 Traceroute + Ping utility
aria2c              Wget/Curl Replacement                           Usage: aria2c foobar.com/file.xyz
w3m                 Console Web Browser
weechat             IRC client
finch               All-in-One Pidgin-like messaging client
toxic               Tox client 
bleachbit           Disk cleaner
inxi                System Info Viewer                              Usage: inxi -Fi
openssh-server      Standard SSH Server (change the port)
btsync              Decentralized filesharing                      
sshfs               Mount remote folder over SSH                    Usage: sshfs name@server:/path/to/folder /path/to/mount/point
xonsh               Pythonic bash               
```
* [[HTPC's Seedbox LFTP Sync (1-way) Script]]
* [[HTPC's SAMBA Setup Script]]
* [[Headless Lubuntu DE Setup Script]]
* [[Backup File to Archive Script]]
* [[Lighttpd + Letsencrypt Setup Script]]
* [[vsFTPd Server Setup Script]]
* [[Cockatrice Ubuntu 16.04 Setup Script]]
* [[Whitelist-Only DNSmasq Setup]]
//Carpe diem//

Obviously, it would be insane to take this too literally. We are, however, seeking the kernel of truth embedded in these words. Let's find the [[The Way]]. That obviously sounds like some spooky insanity. Get past the metaphysics, the spirituality, the religiosity, the cultish scamosity, the ironically absurd jargon and doubletalk. Who gives a shit? Be practical! Everyone must write their own list of reasons to get out of bed (frame it for yourself).

* Are you happy to wake up each morning?
** Are you bursting with ideas?
*** Which ones matter the most to you today, and why?
*** Forget that extroverted-brainwashing, what do you want from the day?
** Do you know where you are in your plan?
*** Are you taking time to re-evaluate your plan?
****Doubt is a valuable tool.
** Is life feeling like a [[plight|Human plight]], an awe-inspiring opportunity, somewhere in between, all at once, ??

* Are you the author of your life?
** Does life feel like a video game (in a non-derealized way) for you?
*** Are you excited to explore, to plunder, to be the mastermind of your happiness?
**** What are your goals?
*** Are you kicking ass and taking names?

* Do you have "...'like'<<ref "1">>...10 million things to do" in a good way or a bad way?<<ref "2">>
** What is the grid of your objectives and the tree of your decisions?
** What are the moral boundaries, mechanical limits, and keys to victory?
***You must organize! But a good organizer must organize their organizating. //ad infinitum ad absurdum ad nauseum//.
****Play the game! You love games! (Be skeptical, but fucking play!)

*Do you feel Tookish today?
** Are you making your own luck today?
** Go on and confabulate your purpose, your divine path, until you don't have to. What else should you do?

* What is your purpose?
** Can you identify it? Can see the means to those ends?
* Can you be addicted to Eudaimonia?
** Is that definitionally impossible? 




--------------------
<<footnotes "1" "Best said/read with a valleygirl, rising inflection.">>
<<footnotes "2" "I'm sure this number is arbitrary in many ways.">>
!! Active:

* [[Carpe Diem Log]]
* [[Cry Log]]
* [[DCK Meditation Log]]
* [[Diet Log]]
* [[Family Log]]
* [[Family Wikis Log Collection]]
* [[Link Log]]
* [[h0p3's Log]]
* [[Homeschooling Log]]
* [[Pipefitting Log]]
* [[Prompted Introspection Log]]
* [[Wiki Review Log]]

!! Vault:

* [[Philosophy Probe Log]]
* [[Family Wikis Log Collection]]
//I feel really dumb for not having just fucking done this all along. Better now than never. Empathize with your future self.//

* [[Current Long-term Timeline]]

Ideas:

* Living somewhere better than the US.
I want to warn you that there is a considerable web of miscellaneous context connected to [[2016.10.17 -- Letter to Mom and Dad]] which I've basically left undocumented and/or disorganized. The links are there to find if you have the desire to click through though. 

Orphans, etc.:

* [[Draft of 'An Introduction to Daoist Philosophies']]
* [[Draft of 'Homeschooling j3d1h']]
* [[h0p3's Wiki]]
* [[Happiness]]
* [[popupStyle]]
* [[Sabbath]]
* [[SAP]]
* [[Theory of Positive Disintegration]]

Retired:

* [[Pragmatic Parenting]]
* [[Retired: 2017.01.14 -- Cryptographic Verification]]
* [[Retired: How to Donate]]
We watched it with L&K. The kids loved it. Everyone did. I adore this movie. Plus, I love Lucy Liu.
I met this woman in my wife's circle of friends who has become a true friend to me.

Outside of you, my wife, my brothers, and my children, and maybe my cousin L.E.T., I believe M.B.A. understands me best of anyone else I've met. 


Her brother is autistic. My wife's uncle is autistic (she and her family are definitely psychologically atypical). I take it that the two non-family stranger's that I have best connected to in my life share some important things in common. One of those things is that they know how to talk to autistic people. 


I think the reason [[A.L.F.]] and I don't talk much is because 
I do have my 10,000 hours in this game. It's burned into my brain. I'm teaching my children how to play. I hope it is something we can do together for many decades to come. There are very few board games I enjoy playing. 

* Resources
** http://magiccards.info/

* Decks
** Highlander
*** [[Highlander: Affinity]]
*** [[Highlander: Elves]]
*** [[Highlander: Humans]]
*** [[Highlander: MWC]]
*** [[Highlander: Reanimator]]
** For [[j3d1h]]:
*** [[Snakes.dec]]
|customTable|k
|one|two|three|four|five|six|seven|eight|nine|ten|h
|1|2|3|4|5|6|7|8|9|10|
|1|2|3|4|5|6|7|8|9|10|
|1|2|3|4|5|6|7|8|9|10|
|1|2|3|4|5|6|7|8|9|10|
|1|2|3|4|5|6|7|8|9|10|
|1|2|3|4|5|6|7|8|9|10|
|1|2|3|4|5|6|7|8|9|10|f



|!Table heading 1|!Table heading 2|
|>| Colspan |
| Rowspan |Left-aligned cell|
|~| Right-aligned cell|
|bgcolor(#a0ffa0):colored| Centered cell |
|Caption|Table caption
Monday-Thursday

* 7:30-8:00
**Morning Routine: Brush teeth, change clothes, get breakfast. (You know the drill.)
* 8:00-8:30
** j3d1h: Cosmotology: Research and try hair styles, make up, etc.
** kokonut: Curation: Set yourself a question or ask me for one; search the Internet for answers, and let me know what you find.

* 8:30-9:30

-----

etc.

----

Math:

– j3d1h: Better Explained

– kokonut: Khan Academy

* 9:30-10:30

Writing: Write! You can write a story, or an essay - whatever you want to write. It should be in your Wikis. You should have at least 150 words.

– j3d1h - you should be focused on structure

– kokonut - you should be focused on grammar and spelling.

* 10:30-11:30

Vocational Theory: Check with your Dad for what to do, and tell me every day what you're doing.

* 11:30-12:30

Lunch! Don't forget to tell me what you're having for lunch! (And, yes, you have to have fruits and veggies.)

* 12:30-1:30

Vocational Practice: Check with your Dad for what to do, and tell me every day what you're doing.

* 1:30-2:30

Reading - yay! We'll work together on what you're reading, but you do need to keep a list of the books in your Wikis somewhere.

* 2:30-3:00

Social Studies: Khan Academy

* 3:00-3:30

– j3d1h: Spanish (Duolingo)

– kokonut: Language Arts (JacKris)

Friday

* 7:30-8:00

Morning Routine: Brush teeth, change clothes, get breakfast.

*8:00-9:00

Structure Wikis (Play with the way your Wikis are set up, and make it what you want it to be - make lists, play with formatting, etc. Make it look nice and learn what you can do! We should see a real difference, though.)

*9:00-11:30

Vocational Project: Check with your Dad for what to do, and tell me every day what you're doing.

*11:30-12:30

Lunch! Don't forget to tell me what you're having for lunch! (You still have to have fruits and veggies.)

*12:30-3:30
* Do small things for your spouse, all the time.
* Go out of your way to make sure you don't make your spouse's day more difficult than it already is.
* The work in every relationship should be split 60/40, with both people trying to be the one giving 60%.
* D
* Manhandle the Ham Candle
* Playing a little 5-on-1
* Hand-to-gland combat
* Roughing up the suspect
* DJ your own party
* Patting the Robertson
* Making a map of Hawaii
* Shaking hands with the unemployed
* Sex with the person I love most
* A date with Pamela Handerson
* Rubbing one out
* 5 knuckle shuffle
* Private Johnson's dishonorable discharge
* Warming up the altar boy's dinner
* Jackin' the beanstalk
* Playing with my joystick
* Punching the one eyed clown
* Making the bald man cry
* Flogging the dolphin
* Paddling the pink canoe
* Bashing the bishop
* Distributing some free literature
* Beat my meat like it owes me money
* Charm the snake
* Drain the monster
* Exercise one's right to privacy
* Free Willy
* Left to my own devices
* Punch the munchkin
* Sample the secret sauce
* Adjusting the antenna
* Unloading the gun
* Make baby Jesus cry
* Drain the main vein
I really miss them. I feel like I failed to connect with A as much as I'd like, but you can't always get what you want. MB and I connected very well. She helped me understand what friendship is really about. She helped me realize I'm autistic as well. Her brother is autistic, and she speaks the autistic-language was fluently, in addition to her other incredible social talents, that I immediately clicked with her. 
Quietist. I used to think he was an asshole. I was wrong.
Before there was a [[/b/ -- Random -- The Playground of the Sandbox -- Seed]], it came out of me piecemeal. Eh, it always starts messy. I'm trying to be less of a mishmash and more organized in how I isomorphically link myself onto this wiki. Structure yourself!

* [[Autism]]
* [[Bifurcation]]
* [[Counsel]]
* [[Depression|My Depression]]
* [[Gaming Microcosms & Personal Narratives]]
* [[Intelligence]]
* [[What Next?]]
* [[My Purpose]]
* [[Ad Infinitum]]
* [[Christian Memetics]]
* [[Definitions]]
* [[Moral Philosophy]]
* [[Kant]]
//Philosophy: /b/ -- Random -- The Playground of the Sandbox -- Seed//

* [[Socialism]]
* [[Practical vs Theoretical Reason]]
* [[Less Wrong]]
* [[Transcendental Gateway]]
* [[Positive Nihilism]]
* [[Social Darwinism]] 
* [[Existential Warrior]]
* [[Existential Log]]
//See: [[Metaliving]]//
To be meta about something is to be second-ordered about something. It's a strong Present-at-Hand mode. It's a way of thinking about paradigms and strategies. It's about wisdom.
Any effective reaction to and successful emergence from [[Postmodernism]]. Unfortunately, postmodernism is so successful a meme that our species seems to be failing to constructively respond. We must nurture hope and work hard to defeat this slippery monster.

Here are some crucial concepts to explore:

* [[Daoism]]
* [[Less Wrong]]
* [[Positive Disintegration]]
* [[Positive Nihilism]]
* [[Postmodernism]]
* [[The Technohuman Stack]]
* [[The Ring of h0p3]]
* [[Bayesian Confirmation Theory]]
* [[Growth Cycle]]
* [[Principle of Sufficient Reason]]
* [[The Purpose of Knowledge]]
* [[China Brain and Reality Simulations]]
* [[Conjecture: Eudaimonic Moral Virtue]]
* [[Creating Faith]]

This wiki is meant to be a metamodern work.

I am tired of the postmodern deconstruction of the world. I am tired of my derealization. I am tired of my disintregation. I'm ready to be malleable, just let me out. I need something practical since I can no longer afford the costs of being ideal. What is the right practical ground? Or is that question already missing the point? To what extent is metamodernism like [[Modernism]]? 

This wiki is a stream of consciousness work, famously modern. I keep having difficulty ascending to the last level in the [[Positive Disintegration]] framework. I definitely had a philosophically backwards upbringing. I have fought tooth and nail to adapt to my environment. This is where I find myself: I hope this wiki allows me to move forward to being metamodern rather than falling back on modernism and the certainty before it. 
.
 ؋ $ƒ₼៛¥₡₱£€₾¢₹﷼₪₩₭₮₦₽฿₺₴₫
* [[Good vs. Right]]
* [[Moral vs. Legal]]
* [[Hybridizing Kantianism and Utilitarianism]]
All too often we confuse moral rights and legal rights. They are very different. It is generally easy to spot laws which are immoral (Godwin's Law straight to Nazi Germany). Unfortunately, we often fail to look in the other direction in our society (although, it is easier to spot in archaic, historical, or strongly otherised societies). Here are some oversimplified<<ref "1">> examples of things which are moral but illegal today in many places around the world:

* Feeding the homeless is moral but illegal in many cities.
** This is highly similar to the fact that giving away left over restaurant food or groceries is moral but illegal in many places.
** It is illegal because those in power want to push out the poorest out of the community. Wealthy and powerful people do not want to accept their moral responsibility to help others.
* Whistleblowing is moral but illegal (or treated as being illegal) in many countries and organizations.
** It is illegal because those in power do not want to be held accountable.
* Prostitution (even regulated) can be moral (depending on your moral theory), but is often illegal.
** It is illegal because it provides significant competition in the mating game. When supply is higher, the price people (usually men) have to pay for sex falls. People (generally women) do not want to lose their street value in sexual bargaining and socioeconomic games at large. Further, it is likely the case that wealthy people benefit from higher reproductive rates in poor people (more human capital to harvest), and thus prefer larger family units (which is countered when sexual drives are met through prostitution).
* Putting money in other peoples' parking meters when they're about to expire so they don't get a ticket is moral but not always legal.
** It is illegal because parking tickets are a significant source of revenue for the state.
* Collecting rain water is moral but often illegal.
** It is illegal because dependency on the state/utilities makes you more likely to obedient and pay taxes.
* Using drugs is often moral but generally illegal.
** It is illegal because pharmaceutical, law-enforcement, judicial, prison industrial-complexes are strongly dependent upon and benefit from the illegality of drugs.
* Giving clean needles to junkies.
** It is illegal because it enables lawmakers (and proponents) to show artificially heightened negative consequences of drug use as a justification for the illegality of drugs.
* Euthanasia, abortion, consensual gay sex are often moral but illegal.
** It is illegal because a specific group of people believe these acts are wrong (using private, rather than public, reasons), and fascists abuse/harness the political/social power of these people by making these acts illegal in exchange for other significant power, wealth, and freedom sacrifices of the masses.
* Refusing compulsory military service is often moral but illegal.
** It is illegal because those in power need military power.

Many people are brainwashed into thinking these illegal yet moral (or permissible) acts are immoral. Being redpilled allows you to very easily explain (not the same as justifying) why these are illegal. I think non-redpilled descriptions of these issues tend to be confabulations. 

Anytime you look at a law and think, that isn't right, you should be asking yourself if you are distinguishing moral right from legal right.

We should note that legality, as a concept, may extend further than just the laws of nation-state, provincial, or city government. I believe almost any social rule exists inside its own kind of legal/normative framework. This broad concept of jural laws is invaluable to us in distinguishing what is //actually// normative for us. Jural laws are truly conditional, in part, because their normativity stems from being manmade (in a common sense). We might say even moral laws are manmade, but if they are, it is the result of a unique process that jural laws do not participate in. 

You have to get it through your head that people aren't moral (they are deeply selfish). You might be seeking to be moral (and you might just be deeply selfish too), but most people aren't (or they are fucking terrible at it). The redpill description of social mores and laws is rarely if ever actually based upon moral theory. It is the collective patchwork of self-interested motivations agreed upon by powerful groups of people (whether because they are the majority, or because they have financial resources, or the right social networks to impose their will, etc.). 

-----------------------------

<<footnotes "1" "I obviously don't think I've given any substantial arguments for 'why these things are moral or illegal.' Most of these have a huge literature built around them. These one-line answers only serve as a sketch of my distinction between moral and legal, and the principles I use to make that distinction.">>
Here I curate a canon of films with a high signal-to-noise ratio. Everyone develops their own lists and libraries. We collectively do as well in different ways. The goal is to be well-rounded, to have a liberal education, to understand The Great Conversation of Humanity, to understand the cultures and contexts that surround us, to empathize with human beings from all walks of life, and to embed ourselves in the right memetic networks. I happen to think everything I list is worth watching by everyone ("oh my, how arrogant, perfectionist, and provincial of me"). Obviously, my list will be deeply incomplete. In part, this is because I've only seen a fraction of what's out there. But, it's also purposely incomplete because I've also tried to maximize saccharine "enjoyment" factor coupled with memetic heritage over metrics like art-house quality and film-critic style ranking (though, these films, and your experiences of them, obviously merit your interpretation and critique). 

Like television shows, music, and books, I'm forced to reduce the unmanageable body of films I've consumed (which we all have) down to what I consider a watchable, manageable canon. These are the movies my children will be required to see. Writing a list will help me reflect as well. I'm leaving a lot out. I'm trying to be picky. Countless films did not make the list. I'm open to hearing your arguments.

I barely watch movies anymore. If a close friend doesn't recommend it highly to me, then I'm exceedingly unlikely to take the time to watch it (I'm lazy as fuck, and perhaps I'm closeminded in your eyes). I sound like a crotchety old man getting pickier as he ages, but I think movies aren't as good these days, especially for me. Yes, it is harder to move, surprise, and entertain me after having seen so much. However, like every generation, I somehow think we're losing something. 

Producers run their movie scripts through AI optimization engines to maximize earnings. This reduces plots, complexity, themes, and messages to fit the lowest common denominator. Business risk aversion controls the narratives we see. Nowadays, if the majority of the audience can't see themselves as the main character, then it doesn't get made. Unique films are uncommon and worthwhile films even rarer. Monocultures can be problematic, and yet having canons of memes we all share in common is so crucial. We must individually and collectively strike the right balance in finding relevance, value, perspective, and ourselves. Movies can be powerful story-telling devices which teach us to empathize. We do not wield the medium in this way very often though. We should study them carefully. They are some the strongest memetic devices in human history (only the written word can be more exacting and profound than quality movies/videos). Pay attention!

Lastly, I like to rank and categorize. I need to bring order to the chaos of finding relevance. Obviously, a relational database would be more accurate, but I'm not sure it would really be more useful. This will be good enough.

''Excellent. Watch at least once:''

* [[The Star Wars series]] (main saga, 8 so far)
* [[The Star Trek series]] (13 so far)
* Indiana Jones series (just the first 3 in the series)
* Alien series (6 so far)
* Lord of the Rings (trilogy; forget The Hobbit abomination)
* Sin City (series)
* Shaun of the Dead (loosely a series)

* Avatar
* Jurassic Park (just the first in the series)
* Spirited Away
* The Lion King
* WALL·E
* Toy Story
* Finding Nemo
* Aladdin
* The Incredibles
* Shrek
* Mulan
* The Muppet Christmas Carol
* The Dark Crystal
* Chicken Run

* The Sandlot
* Stardust
* Hook
* Mrs. Doubtfire
* Jumanji

* The Fifth Element
* Close Encounters of the Third Kind
* Blade Runner 
* 2001: A Space Odyssey
* Ex Machina
* Stargate

* Amadeus
* Searching for Bobby Fischer
* Rounders
* Catch Me If You Can
* Ocean's Eleven

* Groundhog Day
* Pirates of the Caribbean (just the first one)
* Harold & Kumar Go to White Castle
* Super Troopers
* Scott Pilgrim vs. the World
* Superbad
* Zombieland
* The Breakfast Club
* Back to the Future
* Wild Wild West
* Independence Day
* Men in Black
* Dumb and Dumber

* Die Hard (just the first in the series)
* Rush Hour (just the first in the series)
* Léon: The Professional
* The Boondock Saints
* Gladiator
* 300
* The Terminator (just the first one)
* [[The Hunt for Red October]]
* Mad Max: Fury Road (forget the previous)
* Enemy of the State
* The Rock
* Mission: Impossible (just the first in the series)
* The Negotiator
* Inside Man
* The Taking of Pelham 123

* American Sniper (even extreme propaganda must be studied)
* V for Vendetta
* John Q.
* The Manchurian Candidate
* The Book of Eli
* Full Metal Jacket
* Minority Report
* American Psycho
* Inside Job
* Too Big to Fail
* Boiler Room
* Babel
* 12 Angry Men
* A Scanner Darkly

* Forrest Gump
* Eternal Sunshine of the Spotless Mind
* Pleasantville
* Fried Green Tomatoes
* Office Space
* The Blues Brothers

* Lost in Translation
* The Royal Tenenbaums
* The Grand Budapest Hotel

* Edward Scissorhands
* Big Fish
* Corpse Bride
* Coraline
* Alice in Wonderland
* The Nightmare Before Christmas
* What Dreams May Come
* The Princess Bride

* The Sixth Sense
* Unbreakable
* Signs
* The Village
* Lady in the Water
* Black Swan

* Meet Joe Black
* Erin Brockovich
* Mr. Holland's Opus
* Dead Man Walking
* Patch Adams
* I Am Sam

* Road to Perdition
* That Thing You Do!
* You've Got Mail
* The Terminal
* Cast Away
* The Green Mile
* Apollo 13

* One Hour Photo
* E.T. the Extra-Terrestrial
* 28 Days Later...
* Saw (just the first in the series)
* Se7en
* The Silence of the Lambs

* Cube
* Pi
* Memento 
* The Prestige
* The Butterfly Effect
* Dark City
* Being John Malkovich
* The Thirteenth Floor
* The Machinist 
* The Game
* Twelve Monkeys
* The Truman Show
* A Clockwork Orange
* Full Metal Jacket
* Eyes Wide Shut
* Sleuth

* Schindler's List
* The Pianist
* American Beauty
* Requiem for a Dream
* Trainspotting
* The War


''Amazing. Watch multiple times:''

* The Fountain
* Gattaca
* O Brother, Where Art Thou?
* Mars Attacks!
* Deadpool
* The Shawshank Redemption
* Pulp Fiction
* Snatch
* American History X
* Oldboy (Korean version)
* Pan's Labyrinth
* No Country for Old Men
* [[Lucky Number Sleven]]
* Watchmen
* Kill Bill (series)
* A.I. Artificial Intelligence
* Dead Poets Society
* District 9
* Baraka
* The Last Unicorn
* Good Will Hunting
* [[Hunt for the Wilderpeople]]


''God-like Cult Classic:''

* The Matrix (series)
* Donnie Darko
* Dogma
* The Big Lebowski
* Fight Club
* Samsara

* Abilities

** Yugioh Trapper-Keeper -- At-Will Type
*** I create and place a trap in any square adjacent to me. Anyone besides me stepping into that square activates the trap. The activated trap roots and deals poison damage over time to the tripper.


** 

** Angus Dei -- Innate Type
*** I have an extra saving throw to detect traps, disarm traps, picking lock, and escape from captivity of any kind.

* Appearance
** I'm a rugged, dashingly handsome gnome.
** I have a godly mullet and aviator sunglasses.

* Items
** Non-Magical
*** Paperclip
*** String
*** Duct Tape
*** Bobby Pin
*** Rubber Band

* Weaknesses
** Guns, Why'd It Have To Be Guns? -- I fear guns and ranged weapons. I take extra damage from all projectiles.
The new Pandora interface tells me how many hours I've spent on each channel. My total usage of Pandora over the past few years: 6793 hours! I've had the account for 6.5 years. I average listening to Pandora 12% of my day. Otherwise, I keep play music files from a device while I can. NPR is my only reprieve in the car, and videos my only reprieve from my addiction while on my computer.

* Amazing
** Phil Collins -- In the Air Tonight
** Massive Attack (ft portishead) -- Teardrop
** Peter Gabriel -- My Body Is A Cage 
** Paul Simon -- Diamonds On The Soles Of Her Shoes
** Boards of Canada -- Oirectine
** Autechre -- Tewe
** Orbital -- Halcyon On and On
** Autechre -- Lowride
** Oval -- Textuell

* Godsound
** Bach -- Suite For Solo Cello No. 1 In G Major
** Disturbed -- The Sound Of Silence
** Eric Satie -- Première Gnossienne
** Supreme Beings of Leisure -- Never the Same
** Caribou -- Sun (Altrice's 'Only What You Gave Me' Remix)
** Debussy -- Clair de Lune
** Delibes -- Lakme A1, Duo des fleurs
** Rachmaninoff -- Barcarolle
** Rage Against the Machine -- Wake Up
** Johnny Cash -- Hurt
** Gary Jules -- Mad World
** Tool -- Lateralus
** Nine Inch Nails -- La Mer
** Blockhead -- The Music Scene
I have always had a mental condition, we just didn't know what it was. You know I didn't add up, that I wasn't normal. You've seen weird ticks, unexplainables, the moments of brilliance and the moments of insane stupidity. You've known by the way I turn my head when I watch TV. You've known from our many conversations, given your long set of experiences and training in having conversations with people. You've known when you realized you don't understand some of the things I say, and yet have reasons to believe I'm saying something reasonable.  You've seen how I can't socialize correctly (and it doesn't make sense to you given the rest of my intelligence). You've known by the fact that despite the many odds against me, I've done some things that you didn't expect I could. There is a place in me that is deeply retarded, and yet there are places that very abnormally functional on the bell curve. You've known I was a 4eak for a long time. You've known.

I think you think I am a narcissist or a psychopath. If if it is true that you do, then I think it makes you hypocrites as the least. I think it shows a lack of empathy on your part. I think it is a fissure between us. I think that everyone is narcisistic. Why shouldn't I? I think that narcisism and self-interest is simply explained in different ways. I think morality is an ad hoc concept. Those Kantian thoughts, those come from the faster acting part of your mind, the part that doesn't think for real. Trust your fucking frontal lobes. 

I think you dismiss me as some addicted fool. I think you have no clue about what I've experienced. I think you do not understand the concept of addiction, nor the concept of a drug. I think you do not have enough background in the analysis of the rewards center of our brains, nor a meta-analysis of those analyses.

You mean something in the symbol of the Jackelope. What do you mean by it? How do I see it? I see a childhood story that demonstrates I can't trust what you said to me. What do you see? That you were just joking? Okay, then I see that you didn't know your child well enough to know how he actually thought, that you lacked empathy for your children in critical ways. 



[ASD|Autism Spectrum Disorder]]

The ways in which I play video games is an excellent example of my autism. I play ludologically, with zero care for narrative. I do not "play as the character" or roleplay or see myself in a story. 

I have difficulty suspending disbelief. 



, specifically, the appearance of what was called PDD-NOS (before they were all rolled into the spectrum). 
Cynicism can be used as a defensive tool. It may be a coping mechanism for someone who has experienced significant psychological trauma, to make sure they avoid that pain. Cynics have been burned badly by the world, by belief in what turned out to be false. They are scarred and shaped by having been baptized by fire.

The argument against cynics, which I fear is too often a sweeping generalization, is that their negativity is a mere rationalization. The idea is that cynics can't be correct because it is only a rationalization. Of course, a cynic could simply counter with this fact: many people desperately need to hold onto hope and assumptions that the world is rosier and better than it actually is, lest they be hurt by that fact. It's why no one believes the market is crashing until it is too late.

I'm saying the dismissal of cynicism is pointless if not outright hypocritical. Once we get in the game of accusing each other of rationalizing, the game is over. I think rationalized denial is always a mechanism to protect us from pain. How do you really know when someone is rationalizing though? When you are honest with yourself, when you continually try to answer the question "why" and "how," you will see we have serious epistemic problems in answering that question. 

The only thing which cleanses the problem of rationalization is accepting reason (of course, what counts as reason is...what? -- are we only going to accept public reasoning [throw your faith away if so], and what justifies that assumption?). I say: put your money where your mouth is. If you want to show a cynic they are wrong, and you think you have more than faith (which ultimately may only be a private reason), and you have a public reason (one that can or should convince others), then do it.

I think plenty of cynics want to be wrong. They would be overjoyed to have that hope. Cynics see the cost of being wrong about what is most important.
Dark Thoughts. Some of them are ideally justified, some of them practically justified, and some of them entirely unjustified.

I'm suffering from existential depression. It's warranted. You probably can't help me directly with it; I don't think anyone else can either. Assuming it actually has a solution is also misguided. There really might not be one. 

Why I'm depressed:

The internal struggled to continually debate between:

[[PTSD]]

[[Positive Disintegration]]

[[My Fundamental Internal Conflict]]


 [[Who Am I?]] and [[Who I Am?]]

[[Freedom]]

[[The Red Pill]]

[[The End of Humanity]]

[[The "Whine like a Baby" Section]]

[[Why Are People Stupid?]]

[[Practical life]]

[[My Cynicism]]

[[Your Parenting]]
I'm split between my [[Slowmind]] (which is deliberative, slower-acting, concentrated in the frontal lobes, dealing in utilitarianism) and my [[Fastmind]] (Kantian, faster-acting, gutteral, intuitive).

I see my intuitions cannot be trusted. My Fastmind has excellent reasons not to trust my Slowmind, and vice versa. This has been a big deal, especially for an xNTJ. 

I am re-writing my intuitions to some very significant extent. There is a clash in me. I must use reason to reshape myself. I'm doing what Virtue theory is literally talking about in terms of habituating character and excellent of practice.

Problematically, reason, as far as I can see, is very selfish. It is a scientific fact that the most rational part of our brains tends to stray from altruism and into egoism. How can I be moral and happy at the same time? How can I be reasonable and fittingly empathic at the same time?

I am autistic. This only further convolutes the problems.

The goal is to create a cooperation between my Slowmind and my Fastmind. My Fastmind is rational enough to see it will be destroyed by the Slowmind if it becomes adjusts intuitions too quickly and radically across the board. 

This is the source of my phenomenological appearance of not being free. It's because I wasn't. It's because my Slowmind and Fastmind are in a prisoner's dilemma with each other.

Understanding empathy, psychopathy, and autism has helped clear this up. Positive Disintegration helps me understand it much better.

I don't know when it will happen, but her illness is going to take her life. I don't have the words. I need to find them though. My mother needs to know how much I love her. She needs to know how grateful I am have and to have had her as my mom. There is the rift between us, and we both know it. I don't know how to reach out and touch her. We're both in so much pain it might not help. We are so afraid not to hurt each other, and perhaps so afraid of being hurt, that I'm failing to tell my dying mother whatever it is that I'm supposed to say. I don't even know what to say. 

It has been the hardest year of our lives. 
My genetic and partial memetic creators. 

They are existential beasts like me, on their own journey.

I hope we empathize with each other.
* [[Vocation]]
** [[Why I'm Not a Professional Philosopher]]
* Occupation/Vocational Timeline
** [[McDonald's]]
** [[Janitor]]
** [[Teaching Assistant]]
** [[Teacher]]
** [[Phone Center Worker]]
** [[Communications Analyst]]
** [[Teacher hoping-to-be Missionary]]
** [[Philosopher-missionary in Training]] 
*** Almost went into faith-based social work instead.
** Lost Faith in God
*** Toward the end of my master's program; after my brother lost his faith; I wrestled philosophically on his behalf, and I saw he was right.
** [[Philosopher on a Moral Mission]] ( 'moral missionary' instead of 'religious' missionary)
** Lost Faith in Humanity
** Lost Faith in Myself
** Regained Faith in Myself. 
** [[Pipefitter]]

Hey Kierkegaard: this is a there and back again story. Look at it:

Aesthetic > Ethical > Faith > Ethical > Aesthetic > Ethical

Does this go on? Do I continue on this cycle? Will I always oscillate up and down between these three existential stages of life?

The real question: does Positive Disintegration include this or does this include Positive Disintegration? Which is the more fundamental or primitive process of existential mode/paradigm shifts? I believe Positive Disintegration is the larger, more fundamental phenomenon. I have spent some time studying it, and I think Kierkegaard stumbled on a crucial but oversimplified psychological point of view long before it germinated into Positive Disintegration. 

The good of Kierkegaard is God. The good of Positive Disintegration is Self-Unity. From what I can tell, God is not rational, but Self-Unity is. What is the good if it isn't God? Perhaps Self-Unity. For the sake of argument, say Self-Unity is my purpose. What do I do with my Self-Unity after I'm properly unified? Being myself is what it means to be unified unless I'm improving my unity. Is that all there is to moral life is making sure I'm unified? But, the [[Korsgaardian Slip]] shows that unification need not require being moral. Hence, Self-Unity overrides moral law? Is that Right? What is Right? Why should we think the moral law overrides Self-Unity? This was the way we went. It was a crucial mistake, since it was impractical. Hence my bifurcation.
Medicine

[[Positive Integration]]

[[Metamodernism]]

[[Being Grateful]]
She is my one true love. Literally, no matter who I am become, I love her. She is the anchor that ties me to humanity.

We disagree. That's okay. People disagree. Rational people disagree all the time. She is a genius. I'm lucky to have her. She understands me. What would it be like not to have her? What would it be like not to have someone who understood me? 

My worry is that now I can't understand her. Or, that when I understand her, I translate it into the redpilled philosophical computational model of humanity I have. I don't feel like I'm doing something irrational or psychopathic. I think it is fundamental empathy. However, she might not feel that way. I don't want to her to feel dehumanize (and, obviously, it goes without saying, I don't want to actually dehumanize her either). I love her. 

My dream is to find a way to make my wife as happy as I can. Money doesn't solve everything, but it would up to about $75k per person in my household per year (probably closer to $85k now). Thus, I will shoot to make around $400k a year and make her life one in which she is free to do as she pleases. She is my pet!
* [[Pay Negotiation]]
<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}} dateField="created"/>
* Clean Car
* Pack a week's worth of clothes, toiletries, etc.
* Pack the alarm clock.
* Make sure to have your pillows and one blanket ready.
* Meal-prep for a week.
* Buy tools and prep them.
** Save receipt, and be ready to return them.
* ~~Finalize having a place to sleep~~.
** Have two backup plans and one homeless option.
* Get your Android devices ready. 
* Collect addresses/contact information.
* Do not forget your safety glasses, your IDs, and your cash.<<ref "1">>
* You need to shave before you leave. 
** Make a strong first impression.
* Add some files to m13, and install league.
* Get music, podcasts, and audio books.
* Grab at least a few books to read.
* Go over your curriculum once more. Be prepared for the job!
* Bring medicine.

---

<<footnotes "1" "I don't mention your laptop because...you aren't going to forget your precious.">>
[[k0sh3k]]:

* Make a Tiddlywiki journal
* Read ~115 books
* Change my blog
* Publish a chapter
* Give up meat for Lent
* Teach class over Lent


[[h0p3]]: 

* Sunday/Sabbath Family Reflection Meetings
* Saturday Homeschool Accountability/Celebration Meetings
* Financial Stability
** ~~Budgeting~~
** Following budget
** ~~Getting school paid for~~
** Getting a safe, high-paying, high-mobility (not in the traveling sense, but likely also necessary) job.
* Guiding my children to become eudaimonic lifehackers.
* Grind math and programming
** Empathizing with your future self. These may be useful to you. They may help you in Pipefitting or otherwise.
* Become a pipefitter.

[[j3d1h]]:

*Find my voice
** Creating Youtube Videos
*** Figuring out toolchains and creating them
**** Recording
**** Editing
**** Encoding
**** Hosting
**** PR
** Make Linux my home
***Hack linux to run games
**** Minecraft
**** Steam
**** Overwatch


[[1uxb0x]]:

*Create art
**Theory
*** Study the concept of Art
** Practice
*** ASCII Art
*** Drawing
*** Guitar
*** Stopmotion Art



* [[The Daily Show]]
* [[Last Week Tonight with John Oliver]]
We are bootstrapping ourselves at the nexus.

<<<
[[KIN]]: Yeah, I think, therefore I am. 
<<<

<<<
[[RPIN]]: So, I guess it's my turn to say something snappy: That is //so deep//. 
<<<

<<<
[[KIN]]: Since we're being empathic here, I think the rabbleroused-crowd would next claim: "Look at him. He wants to use big words. He thinks he's fancy. He thinks he's better than we are. He's arrogant. We hate him." Is that rational?
<<<

<<<
[[RPIN]]: Two can play at that "Identify the Hyprocrite" game: [[Our Dear Programmer]] uses socially taboo substances, thus he must, by definition, be wrong and off his rocker." 
<<<

<<<
[[KIN]]: Zing! We are bottlenecked, our vision fogged, but all is not lost.
<<<

/s. No. We must release ourselves from the psychopathy of being facetious towards existentialism. Inexorably, we all must answer these questions or take up assumptions for ourselves. It is Dasein's [[plight|Human Plight]] at Kant's Crossroads. It is the infinitesimal center of who we are.

I am not sure what I am. I am certain of some things. I have axioms (you can bet your ass that "I have axioms" is axiomatic).<<ref "1">>

I am the thing which paradoxically is itself and disassociates from itself. I create new dimensions of myself, but the world around me also creates me. I am in a struggle to control myself in order to free myself.

I must be honest with myself. I must empathize with myself. I must know myself. 

My dad says he can't be a salesman of something he doesn't believe in. I think that is a mark of integrity and rationality. What am I selling to myself? What do I really believe? What is actually worth selling to myself?

I hope the wisest things I say are those things that I say to myself. After that, I hope the wisest things I say are to my family. After that, to the other kinds of social objects and constructions (ends in themselves) which we take to be valuable ends in themselves.

I'm not a god, but I am a self-programmer. I'm autonomous. I am free within limits. I'm me. I am my vocation. I must structure and restructure the things I value. I must transform myself. I must become the person I want to be.

------------------------------

<<footnotes "1" "I see the wisdom in the fact that I can't exclusively strive for Cartesian/Husserlian certainty.">>
You can't begin to know how much I despise the fact that I think that Hume, Nietzsche, Wittgenstein, and a host of skeptics and cynics happened to be right on so many important things. 

Nietzsche was right about the world losing its God, as a successful, believed meme virus in the human race. He made an astute sociological observation about what many humans would do when they lost their religion. This is similar to sociological observations abut what happened when people gained religion. This is because religion is a subset of morality; in addition to an assumptive set of facts about metaphysics, it's a specific set of moral questions about how we should think, who we should be, and what would do. 
//Deprecated, see: [[2017.04.14 -- 1uxb0x: Gameplan for Homeschooling]]//

He currently works on the following academic subjects:

* Morning Routine
** Get dressed
** Eat breakfast
** Brush teeth
** Cosmetics/Hair/Dress and other socially expectations...
** Laundry

* Math
** Life of Fred
*** 3 of 10 elementary school books
** Khan Academy
*** 3 grade completed (his age group)
** Singapore Math 
*** Only up to 1st grade completed

* Problem Solving
** Working through a [[Linux and CLI ebook|https://sourceforge.net/projects/linuxcommand/files/latest/download?source=typ_redirect]].
** Configuring and organizing his digital life
** Coursera's Learning How to Learn

* Spanish
** I don't care about fluency attempts for him (that would be gravy). Understanding the structure of languages and becoming someone adept at learning language(s) in general is the goal. 

* Language Arts
** Khan's Grammar (we're taking a break from his excellent JacKris books).

* Reading
** Outside of standard academic work, we're aiming for children's literature which exercises his empathy and imagination muscles.

* Typing
** He's at 22ish WPM at the moment. It's clean, but it isn't really touch typing yet. He's slowly improving each week though. We'll get there. This is a tremendous skill for him to master. Take away the barriers and we can tackle others.

* Writing
** He's been writing songs. I need to him to say anything in words. I need to him express himself. I need him to form sentences, paragraphs, and pages. I need him to learn to convert his thoughts into something other people can understand. It's a true art for an autistic person since we do not have the natural programming and capacities of others in this way. I am ridiculously proud of him. I think he'd write me under the table at that age. It isn't grammatically all there yet, but it is improving leaps and bounds. 

* Humanities
** Khan's History (we're feeling this one out)

* Curation
** Finding two good sources of information or websites worth using, and bookmark them (organized bookmarks)
** Learn to search the web. Learn how to ask the right questions. Learn to find what he wants and needs.

* Videos
** School of Life
** Game of Thrones (art worth watching)

* P.E.
** I'm thankful that he enjoys exercising so much. He stretches and plays a lot. He doesn't quite know how to push himself physically or move quickly, but I hope to help him acquire that physical-IQ.

* Journal
** He keeps track of everything she does, reflects, and writes about it. 

Academic Bootcamps Available:

* Python
* Model
* Budgeting

Lecture

* When necessary, we must talk and think about particular subjects or ideas. 
* Our focus is on computer science, ethics, political philosophy, existentialism, and practical life skills and perspectives

He does the following chores each (or every other) day as needed:

* Clean his downstairs area
* Basic cleaning of his room (bed, desk, drawers, etc.)
* Clean the kitchen (on rotation)
* Push his laundry through (if and when he has enough for a load)

He does the following chores each week:

* Clean the downstairs bathroom
* Full clean of his room

An outline of sorts.

*Authority
**Philosophy of Law
**Defining Authority, State, Law, and Power
**Spheres of Influence
***Authorities are those Politico-Industrial Complexes which control our lives.
**Growing Authority through Centralization of Power
***Decentralized Power vs Centralized Power
***Centralizing Power -> Increased Authoritarianism
***Centralization of Wealth -> Power
***Centralization of Monetary Policy
****Incest amongst the financial community
***Centralizing Spheres in Themselves, Centralizing Spheres Together
**Slavery
***History
***Definition
****Kinds, types, and degrees
***Before Giving Power to Authority, Ask Yourself: How are we convinced this will make us happy?

*The Sane “Illuminati” Theory
**Nation-State Politico-Industrial Complex
***UN
**Surveillance Politico-Industrial Complex
***How are we convinced this will make us happy?
**Global Politico-Industrial Complex
***Trade Deals as the New International Law
****Brokered, legislated, protected, enforced, and motivated by multi-national corporations
***Wealthiest, most powerful corporations eclipse nation-state powers
***The Erosion of the Nation-State
**Religious Politico-Industrial Complex
***Opiate of the Masses
**Military Politico-Industrial Complex
***Political Cycles of War
***America’s War ‘on Terror’ Cycle 
**Prison Politico-Industrial Complex
**Intellectual Property Politico-Industrial Complex
***Controlling Ideas
***Media
**Medical Politico-Industrial Complex
***Drug regulation
<<<
When you're with someone, you put up with the stuff that makes you lose respect for them. That is love. 

--(Kelly) Erin Hannon, The Office
<<<

<<<
The sentiment, the idea -- it's so basic, you feel like you already know it, you just haven't thought of it lately.

--Dick "Don Draper" Whitman, Mad Men
<<<

<<<
Chaos isn’t a pit. //Chaos is a ladder//. Many who try to climb it fail and never get to try again. The fall breaks them. And some are given a chance to climb, but they refuse. They cling to the realm or the gods or love. Illusions. Only the ladder is real. The climb is all there is.

--Petyr "Little Finger" Baelish, Game of Thrones
<<<

<<<
Protect life until death.

--Leeloo, The Fifth Element.
<<<
<<<
I will answer injustice with justice.

--Daenerys Stormborn of the House Targaryen, First of Her Name, the Unburnt, Queen of the Andals and the First Men, Khaleesi of the Great Grass Sea, Breaker of Chains, and Mother of Dragons; Game of Thrones
<<<

<<<
I'm fighting because I don't know how to do anything else.

--Kara "Starbuck" Thrace, Battlestar Galactica
<<<

<<<
If you went back and fixed all the mistakes you’ve made, you'd erase yourself.

--Louis C.K.
<<<

<<<
I like pessimists. They're always the ones who bring life jackets for the boat.

--Lisa Kleypas
<<<

<<<
To what degree do I have to participate in your self-image?

-- Dave Chappelle, Deep in the Heart of Texas
<<<

<<<
Nobody exists on purpose; nobody belongs anywhere; everybody's going to die; come watch TV.

--Morty Smith, Rick and Morty
<<<
I've lost count of everything I've read. Some stick out moreso than others though. These are champions:

* SMBC
* Cyanide and Happiness
* XKCD
* Indexed
* Buttersafe
* Poorly Drawn Lines
* Existential Comics
How do you know someone isn't cheating in a game? A server guarantees it. A server acts as a third-party arbiter of whether or not clients are playing by the rules. The problem is that centralized game servers create opportunities to bottleneck player experiences in profound ways. Who owns the server? Are there other kinds of requirements to be on the server set by the owner? Essentially, you want servers that don't require any centralized server at all, no owners, and essentially, fewer social and economics barriers to entry.

This limits what kinds of games can possibly be played. You must rely upon people giving up enough FLOPS, clock cycles, memory, GPGPU power, hard drive space, network speed, loads on their routers, and other kinds of virtual resources. Games should have minimum requirements. We need a kind of atropos network.

Someone who builds an [[Atropos]] network needs to do something very important: builds apps with it. No network is going to be used unless (1) It's incredibly easy to proxy into it (2) it 

The Atropos network should be written in Go and compiled into ~WebASM. 
When someone is both the operator and operatee.
Don't get me wrong. I think what OSHA is meant to do is incredibly valuable. I hope they are world-class effective at regulating work environments. I'm a leftist completely in favor of OSHA's stated mission. The OSHA-10 course+test, however, is deplorable.

You take a pre-exam worth nothing. You don't care if you get a zero (they tell you it doesn't matter what score you get), so you'll literally not try because it doesn't matter. Then they run you through a shitty course taking X amount of time with tons of cheaty faced ways to force you to consume time without actually learning (gross). I'm getting 100's on these tests and just clicking through. I think there is no way you can complete this course in 10 hours. It's designed to literally take up time without teaching you anything. There's something wrong about this course structure (but I'm glad I'm getting it done). You take shitty intermediate exams and final which are designed to allow you to pass; it isn't a real testing system. At the end, they have metrics which "show:" you spent over 10 hours "learning" and appear to have really learned something because of the difference in pre-exam and final exam scores. But, the reason the final exam scores are likely so much higher is because people will actually try. You can fucking google the question and the answer shows up. While the information is important, this course/testing seems like a kind of scam.
//We love you! We love you to the core of who you are. You are our creation. As your creators, we are not your God. We are just your parents. We are fallible mammals swept by the maelstrom of time. Just like your creators, you are caught in this web of life and reality. We have a dream for you://

* She wisely loves herself.
* She gazes deeply into herself and the world.
* She designs her knowledge.
* She is her own master.
* She knows who she is.
* She relishes her thought, judgment, and perception.
* She is good.
* She seeks to be and do what is right.
* She does her best.
* She practicallly intuits, feels, and breathes her knowledge.
* She solves.
* She knows it.
* She is meta about it.
* She measures and systematizes.
* She analyzes and synthesizes.
* She formulates, theorizes, and paradigmizes.
* She constructs, fits, and connects the pieces.
* She strategically programs herself.
* She shapes the world around her.
* She is a woman, a //homo sapien//. 
* She is as excellent as she can be.
* She is her own beautiful, amazing entity. 
* She brings it into being.
* She designs happiness.
* She is happy.
//We love you! We love you to the core of who you are. You are our creation. As your creators, we are not your God. We are just your parents. We are fallible mammals swept by the maelstrom of time. Just like your creators, you are caught in this web of life and reality. We have a dream for you://

* He wisely loves himself. 
* He takes life by the horns. 
* He conquers himself. 
* He is his own master. 
* He knows who he is. 
* He takes pride in himself. 
* He is good. 
* He seeks to be and do what is right.
* He does his best. 
* He searches, struggles, and wrestles.
* He fights when he must.
* He forgives himself and others when he can.
* He sees it.
* He plans and aims for it.
* He takes the means to his ends.
* He builds, hunts, and cultivates.
* He leaps and loves. 
* He yearns and hopes.
* He is a man, a //homo sapien//. 
* He is as excellent as he can be.
* He is his own beautiful, amazing entity. 
* He seizes it.
* He conquers happiness.
* He is happy.
If I had a zillion dollars, I'd secure myself (like a little child dreaming in his room) with at least as follows (with preference given to things actually possibly applicable to my current life):

A faraday cage, locked, hidden room, where we could all hide if there was trouble. A true end-of-the-world shelter. A safe room. A safe room in a safe house in a secluded, highly indendent, residence. 
* Pick a specific number, since it may cause your opponent to assume you've researched more than they have.
** Let them work you down.
** Don't use a range.
* You should pick something toward the top of the local/national pay range. Assume you are entitled to it.
* Rehearse the encounter.
* Focus on the future, not the current/past. 
* When countering, stall.
** Do not say "OK" or "hrmmm" to their first offer.
** Give them a few seconds of silence (they are more likely to improve the offer).
* Continue negotiating
** "I really appreciate your offer, but I was expecting $53,750 based on my experience, drive, and performance. Can we look at a salary of $53,750?"
** They may balk. Don't give up.
** "I understand where you're coming from, and I just want to reiterate my enthusiasm for the position and working with you and the team. I think my skills are perfectly suited for this position and are worth $53,750." 
*** Silence afterwards. Wait for the reply.
** They may give way.
** If they do, reply with a simple: "Great, I appreciate that."
Sadly, this is a very poorly organized section of my wiki. I've been neglecting it. I hope in time I will have more to say and more organization. 

---

* [[Self]]
* [[1uxb0x]]
* [[j3d1h]]
* [[k0sh3k]]

---

* [[Letters]]

---

* Myself
** [[h0p3]], [[KIN]], and [[RPIN]]


* My Brothers
** [[AIR]]
** [[JRE]]

* My Family
** [[j3d1h]]
** [[k0sh3k]]
** [[1uxb0x]]
** [[To: My Family]]

* [[My Parents]]
** [[Acceptance]]
** [[Apology]]
** [[Adult Children of Alcoholics]]
** [[Last Word]]
** [[Letters]]
** [[I think if you understood, you'd agree with me]]
** [[My Mother is Dying]]
** [[Trying to Be Right]]

* My RL Friends
** [[AL&J]]
** [[MB&A]]
** [[L&K]]
** [[R&C]]
** [[PR]]
// Reconstruction must follow deconstruction. It is our practical, metamodern human plight.//

[[Realpolitik Speculation]] is destructive, even if constructively so in crucial ways. Destruction is a necessary condition to rebuilding or modifying an object.<<ref "1">> Thus, despite the negative connotations of destruction, I still think it is outstanding. However, while that approach is necessary for empathy and being a good citizen of Humanity, it is not sufficient. Essentially, the problem with [[Realpolitik Speculation]] is how little prescription it provides. 

Wisdom takes both recognizing //what not to do// (the easy part) and having the more penetrating salient moral perception to realize //what to do//.<<ref "2">> While I grant [[Realpolitik Speculation]] provides some prescription in various contexts, particulars, cases, and respects, it still doesn't give a systematic prescription. What is the moral code of the universe, and how can we be practical with in it the political realm?

Of course, this has to be one of the hardest sections of philosophy to write upon. But, it is pragmatically necessary that we generate prescriptions for ourselves. Having a moral code for ourselves is prudentially wise. 

* Be clear with targets of rights and duties, the Hohfeldian relationships, as best as you can.
* Utilitarian arguments are often the easiest to make. 
* Virtue-theoretic ones require a powerful enough narrative to inspire the emotions of the virtuous agent in ourselves.<<ref "3">> 
* I will not be able to offer prescriptions that will make everyone happy, probably not even most. I just have to try and find the most rational prescription I can. That's the best I can do.

I seek to pragmatically solve the philosophipolitical equations about humanity for the sake of humanity. Essentially, I'm trying to pragmatize utopia. This will be absurdly difficult. Be willing to be wrong most of the time! 

!! Current Month:

* [[2017.04.14 -- Unifying Metaethics]]
* [[2017.04.14 -- Computationally Defined Virtuous Agent: Democratic Kantian A.I.]]
* [[2017.04.26 -- Productive Collaboration in Technologically-enriched Environments]]
* [[2017.04.26 -- Practical Political Activism]]
* [[2017.04.26 -- Social Networks Worth Joining]]
* [[2017.05.03 -- Subsidized Opensource Computing]]

!!Ideabag:

* [[2017.04.28 -- Seizing the Memes of Production]]

!! Library

* [[Philosophipolitical Prescription: Videos]]

---

<<footnotes "1" "I'm even convinced that merely 'adding' to an object has a destructive property to it.">>

<<footnotes "2" "One might also make the case that wisdom isn't very wise at all if it is isn't implement, executed, and acted upon. We must question whether or not it even counts as wisdom if it doesn't motivate us. It depends on the degree to which the maxim can truly be separated from the virtuous agent's habituation, etc.">>

<<footnotes "3" "We must abide by the fact that the Virtue Ethicists simply don't have to play by the same rules as everyone else. Their work is clearly profoundly accurate in crucial ways. Since we have no solutions to [[Unify Metaethics|2017.04.14 -- Unifying Metaethics]], we must accept it as a reasonable possibility (at least to some degree, shape, and kind). How it is that these fit together, and why do we take them to be so powerful and necessary to unify?">>
Here are political videos I think everyone should watch.

* Peasants for Plutocracy: How the Billionaires Brainwashed America (Mini-Documentary) – https://youtu.be/mWnz_clLWpc
* Cartoon Distillation of Chomsky's Manufacturing Consent -- https://www.youtube.com/watch?v=34LGPIXvU5M&feature=share
Let us start by saying philosophy is the pursuit of wisdom. Let us reductively claim the pursuit of wisdom is the pursuit of valuable truth and the fitting application of it in context.

How should we pursue it? Why is it true that we should pursue it that way, what counts as truth, and do you only want to pursue truth? Are we talking about different kinds of truths here? Are we talking about moral truths, scientific truths, emotional truths? Truth seems too narrow and generates inconsistencies in us, so maybe we are just after justified belief, even if it isn't true. What is justification? And so on and so forth. etc. ad nauseum.

We are in an [[Infinigress]] of asking questions, seeking justifications and explanations, finding the truth, and feeling out what is wise. That's life, and that's philosophy. You might visualize it:

!''The W+H Questions''

Who Questions:

* Who am I? 
** What am I?
** Who is the real me?
** What does it mean to be a self?
*** What if I'm multiple selves?
**** What if we objectively are all are that way?
***** What if we aren't?
...

...

...

* Who are you?
** What are you?
***How are you that way?
** How should I treat you?
* Who are we?
** What are we?
* Who else is there?
** Who are we?

...

...

...

What Questions:

*What am I doing here?
**What are you doing here?
**What are we doing here?

.
.
.

...

.

It spirals away from our starting point. We bootstrap ourselves. We have new paradigms, visions, and comprehensive perspectives over time. We evolve. It's progression (although, progress doesn't necessarily make us happy).

Defining and answering these questions is crucial to answering so many other questions. Philosophy is a pursuit of all of these questions. We might say, "Oh, that isn't practical. That isn't possible to do. Just because we can't doesn't mean we shouldn't try though, right?." But, what else should we do? Finding the best answers we can, even if they aren't perfect, even if it takes us into some crazy places, may be the only practical option. 

I need answers for my family too. I need to make them happy. I have created this group with my wife, and now I am responsible for it. I must do my absolute best (even as it cracks and comes in degrees and kinds, over and over to infinigress).

Ultimately, I do philosophy because it is practical. I am theoretical because it is the practical thing to do. I am an idealist because it pragmatically required of me. Idealism/Pragmatism, Doxa/Praxis, The Good/The Real, and worrisomely woven into is this Right/Wrong distinction. How do we weld this together? 

I am no longer in a position to wait for others to answer my questions. I must answer them for myself as best as I can. I am the scared and brave authority for myself. I wander under the stars. I hide from danger. I plan for my survival. I empathize with myself and the world around me. I try to find happiness with what I've got (and still ask who gave what I've got to me). 

The objective answer isn't always good for the subject. It is part of being pushing towards the golden mean that we must take on the mode and mindset that isn't objective. Only then will we fittingly overaim to eventually hit the mark that makes us happy.

Here are the highlights of my graduate work in philosophy:

* [[Summa Philosophica]]

Here are the philosophical Meditations and Deliberations on this wiki:

* [[Meditations and Deliberations: 1]]
* [[Meditations and Deliberations: 2]]
//Oh Jesus. Help us.//

<<<
A horse walks into a bar. The bartender asks the horse if it's an alcoholic considering all the bars he frequents, to which the horse replies "I don't think I am." POOF! The horse disappears. 

This is the point in time when all the philosophy students in the audience begin to giggle, as they are familiar with the philosophical proposition of Cogito ergo sum, or I think, therefore, I am. 

But to explain the concept aforehand would be putting Descartes before the horse.
<<<

I have spent years training to be a philosopher. I should continue training and exercising that part of my mind, lest it atrophies. I want to do some daily work. My logs have generally very successful. Let's hope this will be as well.

!! Sources:

* http://plato.stanford.edu/cgi-bin/encyclopedia/random

!! Current Month:

* [[2017.06.01 -- Philosophy Probe Log]]
* [[2017.06.02 -- Philosophy Probe Log]]
* [[2017.06.03 -- Philosophy Probe Log]]
* [[2017.06.04 -- Philosophy Probe Log]]

!! Vault:

* (*crickets*)
Generally speaking, having physical access to a computer is thought to trivialize the hacking encounter. I'm not a great hacker though. Some methods are better than others as well. Further, there is a difference between having just a few seconds of access and having weeks of unadulterated physical access. 

I think Hacksaws/Switchblades, High-voltage discharging USBs, etc. are very interesting tools. They may be going the way of the dodo bird, but still are very special tools. I should catalog these. 

Every administrator has toolbox. I should consider developing my toolbox again. You never know when it might come in handy. At the very least, experience is useful. This is an area that could be quite useful to [[j3d1h]] to understand as well.
I've included the pipefitter terms: SET, TRAVEL, and RUN.

Find angle A when the lengths of two sides are known:

```
                                                                       
          |\                      sine A      = opposite / hypotenuse = SET / TRAVEL
          | \                                                          
          |  \                    cosine A    = adjacent / hypotenuse = RUN / TRAVEL
          |   \                                                        
          |    \                  tangent A   = opposite / adjacent   = SET / RUN
  Opposite|     \  Hypotenuse                                          
   (SET)  |      \  (TRAVEL)      cotangent A = adjacent / opposite   = RUN / SET                                      
          |       \                                                   
          |        \              secant A    = hypotenuse / adjacent = TRAVEL / RUN                                      
          |        /\                                                  
          |_______|_A\            cosecant A  = hypotenuse / opposite = TRAVEL / SET                                              
            Adjacent                                                   
             (RUN)                                                        

```

Lookup Table: 

|customTable|k
|Find the length of sides when angle of offset is known |60°|45°|30°|22^^1^^/,,2,,°|15°|11^^1^^/,,4,,°|9°|7^^1^^/,,2,,°|h
|SET = TRAVEL x SINE|.866|.707|.500|.383|.259|.195|.156|.130|
|RUN = TRAVEL x COSINE|.500|.707|.866|.924|.966|.981|.988|.991|
|SET = RUN x TANGENT|1.732|1.000|.577|.414|.268|.199|.158|.132|
|RUN = SET x COTANGENT|.577|1.000|1.732|2.414|3.732|5.027|6.314|7.596|
|TRAVEL = RUN x SECANT|2.000|1.414|1.155|1.082|1.035|1.020|1.012|1.008|
|TRAVEL = SET x COSECANT|1.155|1.414|2.000|2.613|3.864|5.126|6.392|7.661|

Obviously, you can calculate the length yourself if you aren't using a known angle on the lookup table.
//See: [[Pipefitting Log]]//

* [[DIY Tools]]
* [[Pipefitting Buylist]]
* [[Pipefitting Library]]
* [[Pipefitting To-do-list]]
* [[The Pipedream]]
* [[Welding]]
* [[Employment]]
* [[Cover Letter]]

This will be my profession. It's what I'm learning to do. I see it as a gateway to becoming a craftsman and embracing a part of the Heideggerian tradition in my unification. My dad loves to bandy the phrase renaissance man around, and honestly, he's right: I'd love to be a jack-of-all trades + scholar. I love working with my hands, getting dirty, and having something physical to show for it at the end of the day. I am not afraid of manual labor. I love being able to point at something physical at the end of the day and say "I made that." There is something satisfying about working with your hands (not that I can't do the same with my intellect, but there is something visceral about it that is missing that sometimes fails to satisfy my innerbeast). Ultimately, as long as it consistently involves problem-solving (especially not with peoples' minds), I should be in good shape (and making sure that I am constantly challenged, hopefully, will coincide with significant pay increases and quality of life [especially flexibility and autonomy] improvements). 

Why pipefitting specifically?

I originally was going for welding, then possibly machining. Due to overdetermined circumstances, I simply couldn't. Thankfully, pipefitting seems like it fits the way I think very well. I believe I will really love doing it. Further, the pipefitters and plumbers union is one of the few available closeby (although, they do a lot of work out of town, atm). It seems to be provide reasonable mobility/pathways to other trades. My teacher says he wishes he went the union path.

Pipefitting wages are fairly high, the training fairly short, and the skill tree (and overlap) is large (as far as trades go). The demand doesn't seem to be disappearing (high enough in my area), and I think it will be very difficult to automate it. I'd love to have the kind of trade which can at least survive the automation of our world for as long as possible. If and when it does become automated, I'd like to be a master that can at least make use of the automation (and integrate it into my work). 

If I'm sacrificing time with my family, then I absolutely must make this worth it. I need to be voracious, open, humble, amiable, and unstoppable in my pursuit. It has to become one of my primary passions (and the one which takes up most of my time). I need to find a job which maximizes the time I get with my family while bringing home a good wage (the best wages require nomadic migration). 

One student claimed that the work could technically be finished in 6 months (average for the program is 12 months), but the teacher says 10 is really the shortest time period. I'm smashing through the computer-based testing. I have a library prepared, and I'm slowly working my way through the books. I hope to pass the tests and spend tons of time practicing technique in the shop. I will W5 my way through this work. I want to know how to solve the same problem in multiple ways, and have the wisdom to know which one to use. I want to know which tools are best for the job at hand. A short introduction to the science behind what I'm doing would be useful. Further, I believe it will be necessary to be technically excellent in order to make up for my other deficiencies (or give the space to work on it), but also to quickly advance to a paycheck worth having. 

I'm applying to the union. I'm also going to look at other places for co-op. The teacher believes co-op is a fine option for many students, but that they will not learn nearly as much on the job (where they will be forced to do one specific thing and nothing else, most likely) as they will in class. I'm not sure if I'd drop out to go for them. The program does look useful. I'd need to find more information. I should still search for a job though. 

The Evolving Pipefitter Plan:

*Short-term:
** Crush the opening tri-semester busy work instantly. Take the optional general tech course as well (highly recommended). Get me in the shop learning the actual trade asap.
** Start networking and exploring the landscape.
*Mid-term:
**Finish the program in 9 months 
**Generate a list of employers. Figure out which one I really want to be hired at.
*Long-term:
** Consider becoming a contractor, otherwise find a job with a solid autonomy + pay balance.
*** If I can't, maybe I'll live in a van (yay) to keep that per diem. 
** Consider plumbing, welding, HVAC, and related trades
*** Learning all the trades would be cool, useful, and something I could take pride in. 

I do not see myself as a manager. I'd be fine working to help a union in certain ways. I'd be fine eventually becoming someone who teaches. I think I'd have the most fun becoming adept enough to be a project manager/contractor. It would be amazing to be my own boss. 



* Dogs & Alignment Hacks
** Centering head -- https://www.amazon.com/Flange-Wizard-53076-M-Centering-Tools/dp/B002A68HPW/ref=sr_1_5?ie=UTF8&qid=1494990062&sr=8-5&keywords=center+finder
** http://www.stronghandtools.com/stronghandtools/products/pipealignmentclamps.php
*** Godly tool
** https://www.amazon.com/Grip-GR12612-12-Inch-Locking-Nickel-Plated/dp/B001G0MGXW/ref=sr_1_11?ie=UTF8&qid=1495285543&sr=8-11&keywords=Pipe+Alignment+Clamp
** Torpedo Level -- https://www.amazon.com/Swanson-TL043M-9-Inch-Magnetic-Torpedo/dp/B002C2SUHY/ref=pd_sim_469_24?_encoding=UTF8&pd_rd_i=B002C2SUHY&pd_rd_r=NTDMR2YN9A3QCSFMH63B&pd_rd_w=vInx6&pd_rd_wg=129fM&psc=1&refRID=NTDMR2YN9A3QCSFMH63B
** http://fitupgear.com/fitupgear-products/fitupgear-fit-up-bars/

* Drawing, Information, and Math
** Field Guidebook -- http://www.pipefitterfieldbook.com/pipe-fitters-field-book
** https://www.amazon.com/Rapidesign-Isometric-Piping-Template-R43/dp/B001E1V56W/ref=pd_sim_469_5?_encoding=UTF8&pd_rd_i=B001E1V56W&pd_rd_r=VEDE01WJTJTATAGV9QFM&pd_rd_w=Jn90p&pd_rd_wg=5XxMb&psc=1&refRID=VEDE01WJTJTATAGV9QFM
** https://www.amazon.com/Pipe-Trades-4095-Advanced-Calculator/dp/B002I621MY/ref=pd_sim_469_4?_encoding=UTF8&pd_rd_i=B002I621MY&pd_rd_r=0DP6B74CJWQA5737F9VJ&pd_rd_w=3uQkc&pd_rd_wg=BBwdm&psc=1&refRID=0DP6B74CJWQA5737F9VJ
** Android App -- https://play.google.com/store/apps/details?id=air.PIPEFITTER800X480&hl=en

* Level, Plumb, Degrees, etc.
** https://www.amazon.com/s/ref=sr_nr_p_72_0?fst=as%3Aoff&rh=i%3Aaps%2Ck%3Adigital+protractor%2Cp_72%3A2661618011&keywords=digital+protractor&ie=UTF8&qid=1494989478&rnid=2661617011


What makes a good tool?

* It gives you a "third hand."
* It speeds a process up.
* It removes frustration.
* It enables you to complete something you simply couldn't before.
* It protects you.
* It improves precision/accuracy.

!! AB&T Buylist:

* Centering head -- $76.67
** http://pipefitter.com/store/standard-centering-head-magnetic.html
* Fitting Grip -- $54.95
** http://pipefitter.com/store/fitter-grips-tool.html
* 1-2" Fitting Clamp -- $156.27
** http://pipefitter.com/store/quik-fit-clamp-1-2.html
* 2-6" Fitting Clamp -- $185.23
** http://pipefitter.com/store/quik-fit-clamp-2-6.html
* 5-12" Fitting Clamp -- $330.65
** http://pipefitter.com/store/quik-fit-clamp-5-12.html
* Pipefitting Calculator -- $69.90
** http://pipefitter.com/store/pipe-trades-pro.html
* Pipe Pliers -- $21.63
** http://pipefitter.com/store/pipe-pliers.html
* Expando Pliers -- $28.99
** http://pipefitter.com/store/expando-pliers.html
* Radius Marker Standard -- $31.99
** http://pipefitter.com/store/radius-marker-standard.html
* Modified Square -- $22.95
** http://pipefitter.com/store/modified-square.html
* Angled Magnet Square -- $8.99
** http://pipefitter.com/store/Multi-Angle-Magnet-Square.html
* Magnetic Tape Holder -- 	$13.60
** http://pipefitter.com/store/universal-magnetic-tape-holder.html 


!! Missing items:

* A hi-lo gauge
* A jewel-clamp



!! Mantras and Aphorisms:

* Risk
** Measure twice; cut once.
** You can cut more pipe away, but you can't simply add more pipe.<<ref "1">>
** Double check your math at least once.
** If you don't have time to do it correctly the first time, where will you find the time to fix it?
** Better safe than sorry.
** Keep It Simple Stupid (KISS)
*** Avoid the risks introduced by unnecessary complications
* Autodidactic Pedagogy and Attitude
** You have to crawl before you can walk.

!! Questions worth asking:

* The Classic Unending Philosophical Tree: Why? Who? What? Where? When? How? 
** "Why?" is always the most important.
* What do you think I should do? What would you do? 
* How would you do it?
* Do you have a trick for this?
* Is there a question you think I should be asking you?

!! Socialism and Unions: 

<<<
The worker of the world has nothing to lose, but their chains, workers of the world unite. 

-Karl Marx
<<<
<<<
Clearly, apprenticeships are a win-win: They provide workers with sturdy rungs on that ladder of opportunity and employers with the skilled workers they need to grow their businesses. And yet in America, they've traditionally been an undervalued and underutilized tool in our nation's workforce development arsenal. 

-Thomas Perez
<<<
<<<
The trade union movement represents the organized economic power of the workers... It is in reality the most potent and the most direct social insurance the workers can establish. 

-Samuel Gompers 
<<<

!! Humor:

<<<
They make a dollar to my dime, so I take a shit on their time.
<<<

-------------------------

<<footnotes "1" "Or vice versa">>
* [[Pipefitting Fundamental Mantras, Aphorisms, Questions, & Quotes]]

* Pipefitting Links
** https://en.wikipedia.org/wiki/Pipe_fitting
** http://www.ua.org/
** http://www.cram.com/flashcards/pipe-fitter-nccer-6311485
** https://www.slideshare.net/cookharrison53/top-10-piping-interview-questions-with-answers
** http://files.eric.ed.gov/fulltext/ED374313.pdf
** http://www.hexlines.com/tag?q=pipe+fitting+formulas+pdf
** https://pipefitter.com/

* Pipefitting Mathematics and Lookup Tables
** [[Pipefitter Trigonometry]]
** [[Buttweld Specific Mathematics]]
** [[Takeouts of Threaded & Socketweld 45's]]
Pipefitting is worth mastering.<<ref "1">> They say you need a mythical 10,000 hours to become a master of something. I'm impatient, and I crave effectiveness and efficiency. I'm also very good at learning when I apply myself (when I'm motivated in the right way). Let's see if my training, natural talent, discipline, and this log allow me to beat the curve. This pipefitting log is meant to be a mastery acceleration tool and planning device. Keeping a journal or log allows us to be reflective, to plan, to find patterns, to adjust our trajectories, and to see how far we've come. 

!!! Months:

* [[2017.01 -- Pipefitting Log]]
* [[2017.02 -- Pipefitting Log]]
* [[2017.03 -- Pipefitting Log]]
* [[2017.04 -- Pipefitting Log]]
* [[2017.05 -- Pipefitting Log]]
* [[2017.06 -- Pipefitting Log]]

!!! Current Month:

* [[2017.07.03 -- Pipefitting Log]]
* [[2017.07.04 -- Pipefitting Log]]
* [[2017.07.05 -- Pipefitting Log]]

-----------------------------

<<footnotes "1" "Engage sunk cost fallacy confabulations!">>
!! Definitely:

* Self-monitor program to continually guard against letting my flame die 

* Watch pipefitter videos

* Study for exams over breaks, and push hard through the NCCER curriculum
** Don't forget to get the study points.

* Read my Union history books
** Prepare talking points (although, we know Randy hasn't actually read them thoroughly).

!! Maybe:

* [[Pipevan]]
Space is at a premium, so spend it wisely. I don't need walking space. I think that's a waste. I'm fine with being on my hands and knees, as long as I have a bed and a desk somewhere in the van. Every surface is a place for stuff. I want to be comfortable on my computer. I want food and drink. I don't want to be too hot or cold. It needs to be sustainable, safe, and cheap.

Bathrooms, Showers, etc.:

* Outside
* 24-hour businesses
* Fitness centers with month-by-month memberships

What am I storing?

* Clothes, shoes
* Basic toiletries
* Water
* Food
* Equipment, tools
* Computer equipment

Bedding, sitting:

* Consider a bed/couch combo. This requires real thought.
* Ideally, I'd have a couch during the day to play, read, write, think, etc.
* Ideally, I'd have as much space on as comfortable a mattress as possible to sleep on.

The Van's Reqs/Specs:

* Internet
** 4G/5G Phone Hotspot
** Long range wireless adapter
* Power
** Solar Panels (and entailed)
** Batteries
** Diesel
** Extension Cords
** Transformers
* Insulation, heat and cooling
** Windows
*** Minimal Size
*** Maximum tint
*** Reflective window covers with insulation
** Walls
*** High-efficiency thin wall insulation
*** Buy naturally insulated vehicle
** Outer shell
*** Consider outer insulation
*** Solar or bounce the light
* Security, Safety, etc.
** Hidden key or passworded entrance
** Personal protection
** A safe for valuables
** Standard health/med kit
* Shelves
** Both sides of the van should have shelves. I don't care if the side opens. The back and front are all I need.
** Prefer adjustable shelves, strongly. Needs changes, so should my storage.
** The ceiling is a place to store things. Under the bed is another. 
* Food and drink
** Slow-cooker
** Induction burner
** Basic cookware, cutlery, etc.
** Tiny, high-efficiency refrigerator
*** Happy to store 2 drinks and very minimal food. Doesn't need much at all.
* Trash
** Sealable is preferred.
* Extended Ceiling would be amazing.


Occupation: Craftsman

He needs to build things with his hands. It is not obvious that he will excel in academics. He has to do his best no matter what, since that's part of being a complete a human and achieving eudaimonia. I need to help him be as happy as he can be though. I think moving towards the practical trades will be his best option. 

I regret that I don't have the tools to teach him, but I can get him on his way as I acquire the assets and capital as we need to really practice. I want a shop for him to spend his time working in.

Let's say we did Pipefitting and Welding. I could teach him how. I'd be willing to pay him to learn this even. I want him to practice to the point that at (would apply to the union at 17, or he'd be working with me) that at 18 he could start making seriously good money, learning the socioeconomic and political landscape enough to see how he fits in, to see a path to success, and to see he's already well on his way. 
/crickets
I'm kicking these out of Projects. I want to de-clutter my projects page for now. 

* [[By 2022]]
* [[Calendar]]
* [[Long-term Timelines]]
* [[New Year's Resolutions]]
* [[Utilitarian Projects]]
* [[Weekly Structure]]
* [[To-do-list]]
* [[School Loans]]
* I don't play well with others, although I can play in a team just fine. My solo skills are what make me shine though. Ultimately, I have no place in social games. The less social the game, the better I am at it.
* I'm exceptional when I study the game, but the more complex the game the more I must study and practice; I fear it is not linear. 
* I see cracks in systems. Some are social convention cracks, some moral cracks, and others legal cracks. 
* I'm excellent at spotting non-social metagaming trends, and I understand the reasons for them.
* I do best at those things I spend time writing about.
* I tend to understand what is salient about the statistics of a game to the point that I can isolate, focus, and abuse them in price efficient ways. I bootstrap into better and better grinds. 

.tc-drop-down dd
{
max-width:300px;
word-break: break;
white-space:normal;
padding :0;
padding-left: 5px;}

.tc-drop-down dl
{
padding: 5px;
}

tc-drop-down a {display:inline;padding:0}
I've disintegrated. The person who I was died. I am here to be a new person. It's the only way to unite myself, to make myself whole again. I am in the process of reconstituting my identity. Becoming a new person isn't easy. But, that is my task. It feels crazy because an internal struggle between two selves in me, with one trying to emerge as the victor: to be the only who decides what to do for my long-term programming and decision making processes.

I took the red pills, and now I have to see the world differently.

It's sounds like Dissociative Identity Disorder, but it's not. 
Accepting the plight of applied [[Postmodernism]] and magically being constructive with it. This seems like a metamodern move. It is a nihilism-tolerant variant of the existentialist revolt against nihilism. Sounds like a contradiction, but guess what? It's fucking nihilism, so that's okay.

Positive Nihilism is:

* the joy we find in nihilism.
* the constructive destruction of false interpretations of the world.
* a philosophical position that strips religion, as well as society, as a foundation for moral and existential values.
** Hence, at least for the West, nihilism is the state of metaphysics after the collapse of the Judeo-Christian memetic hold over Western society.
* a transitory state, not the end goal. 
** It is transitory in the sense that since there are no inherent, universal, unconditional goals, if you don't want nihilism, then you are free to accept something else.
** If nothing actually matters, if everything is absurd, then you don't contradict yourself when you choose to think anything matters, since being wrong in that context doesn't matter.
* an opportunity to reevaluate or transvaluate all values. 
** It's up to us whether or not we see it as philosophical suicide.
* a chance to love our fate and build a life wherein one would wish to live forever.
** The only meanings in life are the ones you give it.
** Since nothing intrinsincally valuable emerges from nihilism, the ultimate freedom of nihilism is not objectively a burden.
* a memetic Ring of Gyges transporting us into a meaningless experience machine; it is the ultimate test of who we really are.

Feel free to be moral. Yes, you are the arbiter of morality for yourself. You are autonomous (even if we aren't free). We give ourselves laws, but we aren't morally responsible. That's what a computer does. It gives itself laws to follow (that's what each line in a program does in the CPU). You are just a computer. Hence: nihilism. But, positive nihilism obviously shows us that we are free to continue computing as moral beings, even if morality isn't objective. Feel free to be moral. Be as moral as you think you can be. Why not? What's stopping you? Nothing. You're a nihilist. Be moral because you really want to, even when you don't have to. Can you come up with a better reason than "want to"? Can you come up with anymore noble than that shit? You are wearing [[The Ring of h0p3]]. 

<<<
[[RPIN]]: Neo-Kantians are clearly in a kind of cult/religion; you virtue signal in Kantianism to make sure everyone agrees with you or should agree with you. This distorts the pursuit of truth though. It only buys you socially accepted beliefs about what is true. 
<<<

There is no reason a Kantian can't just take up Utilitarianism as their fundamental decision procedure. Perhaps the utility principle is the center of the CI. Why not? What justifies Utility? Everything underneath it that supports deontology.  Oh yeah, this is all up to me anyways. I'm just going to do my best and enjoy it. It's the stoic thing to do. Look at me, all practical in my theorizing.<<ref "1">>

Aphorisms, Humor, Rhetoric, Fallacies, and Arguments:

* What is the "manliest" way to kill yourself? By struggling through existence until you die from natural causes after a long life.
* Big deal, Jesus, so your dad created you to suffer and die, that's what all the rest of us are doing here too.
* Stand in the ashes of a trillion dead souls and ask the ghosts if honor matters.
* Every human life is something beautiful that is ultimately meaningless.
* Just because God is dead doesn't mean you should be.
* Just because "should" has no objective meaning doesn't mean you shouldn't give it meaning.
* Nobody exists on purpose, nobody belongs anywhere, and everybody's going to die.
* Nihilist's To-do-list: distract self until death. 
* I expect nothing, and I'm still let down.
* Even if your life is pointless, you still want your life to be meaningful, so go enjoy doing that. 
* What do you call someone who isn't a nihilist? A Denihilist (deny-alist)
* Why did the nihilist cross the road? It doesn't matter.
* Fuck it, it's just life.
* Hey Nihilist, what's the matter? Nothing.
* Embrace the void.
* Entropy tends to increase in a closed system. The closed system dies. This too shall pass.
* What is dead may never die.
* It's a joke. This is all a joke. Once you realize what a joke everything is, being a comedian is the only thing that makes sense.
* Every person dies alone.
* Nothing matters and we're all equally worthless.
* Nothing really mattress.
* Without nihilism, I would have nothing to live for.
* Without our meaningless hope, nihilism devalues, depresses, derealizes, depersonalizes, dissocates, and disintegrates us. 
* If Surd is true, then deductively everything follows. 
* Life is a sexually transmitted disease and the mortality rate is one hundred percent.

-----------------------

<<footnotes "1" "/pat-self-on-back">>

Life is hard when you do not allow yourself to have faith in anything.

Postmodernism is:

* a charitable revamp of ancient skepticism.
* Godzilla rampaging through the cardboard buildings of Modernist Tokyo.
* solipsism performed correctly.
* the deductive consequence of The Great Human Conversation's hermeneutic spiral away from Modernism.
* the inevitable and rigorous deconstruction of value and meaning from the assumption of value and meaning.
* the ultimate thought-terminator of metanarratives, hierarchies, categories, intrinsic value, transcendentalism, transculturalism, realism, foundationalism, rationality, justification, semantics, objectivity, agency, and perhaps philosophy in general.
* the undefeated skeptical anarchist of philosophy which corners us into doxastic oblivion and freezes us there.
* possibly an inescapable dialectical black hole.

From the outside, it looks like nihilism and relativism, which so obviously seem wrong to each of us because that would violate all of our assumptions. And, we "couldn't possibly be wrong about all of our assumptions," right? Ha. We are so quick to judge those who see the problem, who make us feel naked before the truth. We call them edgelords, angsty teenagers, nihilists, relativists, fools, etc. Our venom is wasted though. When we actually go to justify ourselves against steelmanned postmodernism, the constant and ever curious "why?" of the postmodernist philosopher child will inevitably cause our philosophical house of cards to crumble, resulting in an all devouring vortex of our reality maps.

There is a key trend in how I am dealing (failing) with postmodernism. I keep cycling between the transcendental ideal and redpilled pragmatism. However, what causes this oscillation? It is postmodern deconstruction which destroys the foundations of everything I'm trying to build. Ultimately, to find longterm self-unity, I must find an answer to postmodernism. 

Now, the response may be that oscillating between the ideal and practical is actually a form of A/B testing which helps us arrive closest to our destination. Hmm. Postmodernism, in this light, serves a greater purpose, a metamodern purpose. Metamodernism accepts our flaws and is all about helping us live with them. It is stoic and yet optimistic.
He's a childhood friend. After I started college (approx. the year he started high school), we had a falling out (an unfortunate habit/cycle of mine). Our lives diverged. By the time he started college, I had started a family and was teaching in a highschool. We've been on different tracks since then. I've always liked PR though. He is a genuinely good guy. My wife, [[k0sh3k]], has kept in touch with him through FB. I'm glad she has the sense to maintain social ties even when I can't or won't. 

PR and I used to watch DBZ together. He loved karate. PR has long loved performing arts (and everything that goes with it). He is intelligent and hardworking. I admire that about him.

It was always weird going to his house. His family was odd, but obviously wealthy. They were motivated by very different goals, and they saw the world very differently. His mother and father were intelligent, sociable people who grew up in a fairly poor area. They were influential in my life.

An accident PR's father endured mangled their lives in many ways. His father was the first drug abuser that I consciously realized was a drug abuser (the man had damned good reasons, imho). His father was a good father in many ways though (obviously, no one is perfect). Hilariously, rummaging through the top cabinet of his bathroom was also my first exposure to hardcore pornography (woot, woot!).<<ref "1">>

PR's mother is a savvy southern belle, a nurse who climbed social ladders effectively enough to paid like a doctor. I was too young to read her.

PR's sister was a popular girl, and will likely traverse a similar path as her mother's. 

Anywho, PR recently sent my wife and me a letter out of the blue. So, I'm going to respond on this wiki (and, obviously through the channel he contacted me by). Normally, I think it would be a bad idea to post what others have said to me in confidence. I feel comfortable doing so in this case though. He said:

<<<
Good evening. I hope this message finds you well. I come to you seeking advice and guidance from you and h0p3. Apparently a post election post where I said if you voted for trump don't talk to me has offended family and now they feel alienated form me. My dad called me today to tell me all this. Eventually he told me that I should come home and smooth things over and that I should be careful what I post on Facebook should I offend said family members. Basically I need help getting through to them that they're wrong without screaming, "YOU'RE WRONG". And I ask you and h0p3 because I know you guys are strong in faith AND politically aware. I don't need a response right away. And I know this conversation that could take a lot of time. But any help would be much appreciated. Thank you.
<<<

This is a sign of the times, no doubt. I can't tell you how many families I see being torn apart.<<ref "2">> I feel like the rift inside me is echoed in the world around me. 

Ugh. I feel like the blind leading the blind. I have multiple people in my life who somehow think I can help them, that I might have answers or advice. I'm a fraud and a fool. They obviously don't know the truth of how little I really know. That said, I may still be of use to my friend. 

My response (2017.01.16):

<<<
Hey PR, 

It's good to hear from you, even under sad circumstances. 

Sadly, your experience is happening around the country (and the world). It is a sign of the times. I hear whispers of civil war and allusions to 20th century fascism everywhere. I have no idea what is going to happen, but the conflict does seem to be escalating. In addition to a number of global problems, the poor and disenfranchised, minority communities, and the millenial generation face a serious threat, and Trump is only a symbol of it. We all feel lost, forgotten, and unheard. I wish I knew the answers, but I don't have any.

I feel like the blind leading the blind here. Full disclosure: I'm no longer a person of the faith, and I'm still working through a significant conflict about it in my family (as you might imagine). I don't have a right to tell you how to fix this. So, I might not be able to give you worthy advice, but I want you to know I'm here to listen if you need to talk.

Here's my best advice at the moment:

I think you may have to accept that you won't be able to change their minds. When it comes to persuasion, sometimes it just doesn't matter how right you are. That aphorism "you can't reason someone out of a position they didn't reason themselves into" is often true. It may be true in this case; the justification for their support of Trump may not be rooted in rationality. Many people listen with their hearts more than their minds (we are all, arguably, guilty of this from time to time). Thus, how you say something (rhetoric) is often more persuasive than what you said.

You have to lead by example. So, in your rationality: be kind and empathic. If you were rude to them, then apologize. Tell them you said it out of anger and fear (and between me and you, we have every right to be angry and fearful because we are fucked), and show them who you really are: an intelligent, good man who is frightened and disturbed by what's happening.

Remember that you have to be charitable in your interpretation of others. This is the golden rule. If you want them to hear you, then show them you can hear them. They have to see you are coming from a place of love in your disagreement. Put yourself in their shoes; try to imagine the fear (or perhaps hatred in some cases) that has caused them to support Trump.

Of course, it is part of being friends and family that you get to "be yourself" in important ways, and they should know that you disapprove of Trump. Civility is the minimum, but your goal is to kill'em with kindness. Show them the grass is greener on your side of the fence. 

I think only after they see that you really mean the best, that you aren't lashing out, that you aren't "otherising" them, that you genuinely love them, that then and only then will they be able to hear you. You have to open their hearts with the right emotional connection before you can convince their minds with logical argumentation.

So...is this going to work? I can't guarantee that. It really may not. I think this is your best chance though.

Finally, I'm sorry we haven't talked in a long time. That's my fault. I'm a reclusive person in some ways, and I've disliked FB as a platform since college. That doesn't excuse my not staying in touch with you. You can reach me at:

*XXX@XXX.XXX
*XXX.XXX.XXXX
*XMPP: h0p3@dukgo.com
*Tox: FDD7005639C618263AB2EEDAB974F7576C7C0DED6217EED9E9DC0344C622E72AEEF7055F8B4D

I've only been able to glean information about you through my wife and from rare encounters with your parents over the years. I hope we stay in touch.

Sincerely,

h0p3
<<<

Response:

<<<
Thank you h0p3. 

A sympathetic ear is actually really helps. Because yes I feel like I've been talking to a wall. My mom keeps saying I hurt their feelings and I need to apologize, which I do, the tone of my words was reprehensible, but like you said it came out of fear and anger. I'm more than willing to talk but the one cousin who has replied said he doesn't want to do there's that. I'll keep your words in the back of my head moving forward and try to be more empathetic towards their feelings. Thank you again! 

PR
<<<

---------------------------

<<footnotes "1" "I have family members who do not understand the nature and concept of pornography, nor how it relates to their humanity and faith. Later in her life, my grandmother, being the evangelical maverick she was, didn't care nearly as much about pornography or whether or not her husband was turned on by other women as one might have predicted. She saw through it. She knew what really mattered. I think she took the good half of the redpill sometimes. She understood human nature better than her faith would have allowed in many cases.">>

<<footnotes "2" "Shit's fucked, yo!...Something, something...Nazi Germany (drop your dank memes here). We are a world in crisis; we are families in crisis; we are individuals in crisis.">>
h0p3pwiki.exe is a project now. For now, let's just make it a Xonsh or Python script (we can alias or /bin path it) that does it all. You're writing useful software. What counts as useful? You'll know it when you see it. You will begin to see how to write useful software by writing software for me. You'll see how it achieves important goals for me, and then you'll start to realize that you have things you want to write for yourself. When that time comes, you'll program for yourself. You're going to write software for my wiki until you figure out what you want to write for yourself of similar difficulty level and in the same topic (which is Bash/Python based).

I think I need a tool that can search through my archive daily snapshot backup (find it on [[Ways to Connect to this Wiki]]). I need to be able to type it in command line, and it pops up with the answers I want. 

Here's an example search I have in mind:

Right now, I'd like to be able to show the date ranges of important wiki-pages that I want to archive or in some way label as being from a specific time period. For example, I want [[Self]] to be a huge wiki-page. I think I should go back through my archive and figure out when articles were first really germinated, then I can datestamp it. I can see that it is a matter of progress. Maybe not everything in the wiki needs that feel. Plenty do not. I like having ones that don't have timestamps. But, I also need some that have timestamps desperately. Help me get timestamps. 

I can imagine wanting to make lots of different kinds of searches. Make it easy on me. I want to add your script to my system. I want to type:

```
h0p3@m10:~$ h0p3wiki -search foobar
```
It should return a list of dates, how often it was mentioned, etc. I want to be able to trace memes in my wiki.

Maybe there can be date ranges I can add. Maybe this is a bunch of different regex searches of the .html file. Whatever it is, I want you to make it absurdly simple for me. We can add use cases as time goes on. 

Also, that reminds me on your current project, I would love to be able to call it like 

```
h0p3@m10:~$ h0p3wiki -recentscript  
```

I'm literally going to add it to aliases and use it as a personal tool. Don't root me! =)
I must be wise. I have much speculative and theoretical reason (I am bloated, self-contradictory, ununified in this). I do not have the means to practical reason even. It is practical to resolve the theoretical to some extent.
So, I have the ideals (or as good as I'm going to get). Let's apply them, however, contradictory they may be. I must do my best.

* My children must learn where they stand, who they are, why, how, etc.
** I mean this in every kind and degree. [[Know Thyself]]!
*** We really need to start with the basics: our physical location. They need to be adept at it. Know where you physically stand. Know where you mentally stand. Know where you politically stand. Know where you morally stand. Looping back, know the physics that make us who we are (do not be blind to it, that is useless faith). Wield faith that is worthwhile.''__//The only justifiable faith is hope alone. //__''
*** They need to see themselves inside of Heideggerian contexts, political maps, and 

* My children must see themselves as their ultimate project. 
* My children are my projects. They are extensions of who I am. That doesn't mean they lack autonomy. No, as my mother says: "There are two things you give your children, one is root, the other is wings."
Being practical means asking ourselves awful questions like: "Is there really room for one more?"

I see a lot of people who despise "theory" as a way to slip something into the dialectic. It is a weasel method. It is a trojan horse. I think a lot of people eschew theory in favor of practice because they think the theory doesn't match reality.

I think the same for a lot of instances of "pragmatism." I think it is a failure to recognize the theory behind their practice isn't coherent. That it doesn't work on logical grounds. 

Theory and Practice are two sides of the same coin. They are yin and yang. They are eternally fighting to help us reach the truth at the core of the coin. They are point and counterpoint. We must repeatedly implement them as A/B testing. They are the revolving doors we rotate through as a method of inquiry. 
This is both an ontic and epistemic problem. Of course, it creates many serious problems. It is part of the Gödellian gateway, the foundation problem, an infinigress or ab initio concern. At some point, at some layer, where the narrative rubber meets the road of reality, we realize the world is not intelligible by definition.
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖//

<<<
We first make our habits, and then our habits make us. 

--Frederick Langbridge
<<<

h0p3, it's me, you. Pay attention, self.<<ref "1">> You are an exceedingly complex biological computer system having a carefully crafted conversation with yourself.<<ref "2">> You are an evolving self-programmer. Program this rabbithole and yourself wisely! 

In the long-term, this is the second most important section on this wiki. Here you attempt to formalize how you want to program yourself. Perhaps you aren't entirely sure how exactly it fits in the wiki's stack, but it's clearly vital. This platform you are building is for your own knowledge base and systematically shaping yourself. Be creative, and run with it! 

Second order of business: you should write second-personally or first-person-plurally (implying second-personal empathy) in this section as much as you can. Finding the right voice in which to talk to yourself isn't easy, but it's crucial at this level. Pretend an absurdly empathic friend (yourself, obviously) is telling you what you need to know and do.<<ref "2">>

So, where do you move from the 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 page? That is quite a narrative. Now you must be quantitative about your qualitative narrative. You must put theory into practice. But, to put it into practice as best as you can, you must develop even more theories. The goal is to be friendly-formal, clarifying, terse, pragmatic, heuristical, empirically data-driven, goal-oriented, coherent, and axiomatically insightful in this section.

This wiki, including this section, is organizationally bootstrapped and constructed piecemeal. It's cobbled together. It's not perfect, and it never will be. But, it can and will improve; you just need to push. You should aim to do the best you can. It takes time to engineer and implement a well-oiled existential machine. What is the ideal, and how do you achieve it as best you can? Do it!

The 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 page is deeply interested in computing the contents of your life. Most of the work happens there. But, you need principles for prioritizing, weighing, and even for fundamental decision procedures. You need principles for those principles too, and so on. One must push hard in this direction, however painful and difficult it may be. Here you are writing a guiding light cheatsheet for your life's journey on this wiki. 

Obviously, the 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 page must ultimately affect, as a kind of feedback loop, your guiding principles in this section as well as your 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 page, your existential anchor. However, you need to be strongly and consistently convinced and motivated by the work in your 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 section of this wiki before you use that lower-ordered content to feedback into, modify, or inform your foundational higher-ordered functions (particularly this section and 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖).<<ref "3">>  Essentially, be careful in how you grant privileges to lower-ordered processes, escalating them from mere users to higher-ordered root processes.<<ref "4">> However paradoxical it may seem, it's up to you to strike the right balance between guarding yourself and being vulnerable to yourself.

In this section, you must lay down the constitution, the criterion and source of authority of your internal law: the rules, strategies, methodologies, and principles of programming yourself and using this wiki. Autonomy literally means self-legislating. That's exactly what you intend to do. Here you hope to hone and maximize your executive functioning. Essentially, you need direction in life, and you're helping yourself find and implement the best way you know how (what else can you do, eh?). 

There are many collections of principles worth looking at. You must isolate, categorize, organize, analyze, revise, and synthesize them. Cleanliness, order, and conventions matter. If this wiki is an isomorphically mapped feedback loop, and changes are bi-directional (you change the wiki, and the wiki changes you), then you should take the time to organize and structure it with the right principles. You must unscatter your thoughts. You must be an existential computer scientist in your pursuit of homo sapien happiness; it's the only philosophically practical thing to do. 

You must be meta about being meta, etc., but in a sense, you should aim to do minimal theoretical work in this section.<<ref "5">> You need to be as practical as you can be here, despite how existential and theoretical it really is. If the 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 page is your existential anchor narrative, a very qualitative and subjective (yet obviously valuable) theory, then this section is meant to be it's pragmatic brother. In the same way that [[KIN]] was the leading (though not sole) author of 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖, [[RPIN]] is the leading author of this brother page.

Here are the branches:

* [[Wiki: Existential Axioms and Fundamental Principles]]
* [[Wiki: Broad Computational Structure]]
* [[Wiki: Construction Principles]]
* [[Wiki: Scheduled Practices]]
* [[Wiki: Be the Kind of Author that...]]
* [[Wiki: Assume this Audience]]
* [[Wiki: Loosey-Goosey Principles]]
* [[Wiki: Other Frameworks and Paradigms to Consider]]
* [[Wiki: Projects]]

Remember that you are in the driver's seat. So, pilot the wiki wisely, ace! Build for yourself a proof of your sanity, growth, intelligence, wisdom, and willpower. Play life and this wiki like a video game that you adore. Be obsessively strategic in your planning and savor the metaliving experience.<<ref "6">> If you aren't making maximally meta paradigm shifts and syntheses, you're doing it wrong! Pour yourself into this medium. Shotgun approach, organize, and prune in order to find the way to happiness. Listen to yourself. 

---------------------------

<<footnotes "1" "God, I'm annoying, =).">>

<<footnotes "2" "One day my son had been dealing with incompatibilist intuitions and wrestling with himself to see that our autonomy just is programming ourselves, and he told me a joke. This joke was a response to his punishment of losing his rights to use computers that day (horror of horrors, let me tell you) because he didn't do his chores on time. He said, 'Dad, if I can't use computers, then I can't be myself.' He explained his reasoning. He saw the appearance of the contradiction. It was a beautiful moment.">>

<<footnotes "3" "Sounds like the blind leading the blind to me, lol.">>

<<footnotes "4" "I'm sure it sounds weird to call the second-order mental states the foundational ones. Frankfurt was right though. Essentially, we must align our many ordered desires, beliefs, and mental states. We must create conformity between them. Ultimately, the higher-ordered must do the modifying and alignment. Thus, that is the seed and perhaps foundation of autonomy, if not the very heart of it.">>

<<footnotes "5" "I am aware of the [[infinigress|Infinigress]] here. As always, any sufficiently advanced technology is indistinguishable from magic. I have no response. It's axiomatic faith for me. I'm sorry I can't provide you a better explanation at this time. (I'm sure it really bakes your noodle that I'm using 1st personal language here. Lulz.)">>

<<footnotes "6" "Theory is everywhere. I love theory. I also can't afford to not set my existential tentpegs down. Consider this a pragmatic nomadic approach through the desert.">>

<<footnotes "7" "Obsessions may often become addictions. However, appropriate obsession here is literally being wise by definition. That which maximizes utility (for whom, I realize) cannot be an addiction by definition.">>
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 & 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖//

Welcome to the core of my wiki.<<ref "1">>  Here I grind like the autonomous machine I am. This is the crucible in which I forge my practically ideal, integrated, persistent, hierarchical identity.

* [[/a/ -- Attic -- Graveyard -- Storage]]

* [[/b/ -- Random --  The Playground of the Sandbox -- Seed]]

* [[Art]] 

* [[Computing]] 

* [[Homeschooling]]

* [[Life Hacks & Pro Tips Collection]]

* [[Links]]

* [[Logs Collection]]

* [[People]]

* [[Philosophy]]
** [[Aphorisms, Common Sense, & One-Liners]]
** [[Metamodernism]]
** [[Realpolitik Speculation]]
** [[Philosophipolitical Prescription]]
** [[Redpilled Genetics & Memetics]]

* [[Pipefitting]]
** [[DIY Pipefitter Tools]]
** [[AB&T Buylist]]
** [[New Job Checklist]]

* [[Planning Life in General]]
** [[Buy List]]
** [[To-do-list]]

* [[Wiki: Projects]]

------------------------------------

<<footnotes "1" "Not a great hierarchy, eh? Well, I have to start somewhere. Of course, Hubert Dreyfus was right to worry about the epistemic flattening effect of the internet (and even more he had no chance to foresee at the time). I suspect this is far more than an Internet problem, but that we're encountering yet another face of the postmodern problem which we must escape, circumvent, adapt to, and at least partially solve. This is metamodernism.">>
Sometimes I feel like I need a can-opener to pry myself open. Writing prompts force me to say something about a topic. It can be recreational and useful at the same time. Admittedly, these questions tend to be philosophical. I sprawl all over the place, and I ask more questions than I answer. That's okay though. This is just part of the mind-mapping process.

It is my hypothesis that many of the prompts I've answered thus far remind me strongly of "Sunday School" questions. The teacher might gather us together and ask generic existential questions, and we'd have to formulate intelligent and socially acceptable responses. It was a form of conditioning. We were expected to think as they did. My questions and answers were often received poorly, dismissed, or misunderstood. Par for the course. Thankfully, here I get to say what I think since I'm answering them for myself. I won't always pretend I'm the one asking the questions though. An adversarial dialectic, like the Socratic methods, tends to bring out the best in me.

I've decided that I will have a more adversarial approach to these prompts. I will respond to them as if that asshole Samwise Gamgee had asked me to answer these questions. I hate Samwise Gamgee; may he burn in hell. Fuck you, Sam!

* [[Writing Prompt Sources]]

!! Vault:

* [[2017.05 -- Prompted Introspection Log]]
* [[2017.06 -- Prompted Introspection Log]]

!! Current:

* [[2017.07.01 -- Prompted Introspection Log]]
* [[2017.07.02 -- Prompted Introspection Log]]
* [[2017.07.03 -- Prompted Introspection Log]]
* [[2017.07.04 -- Prompted Introspection Log]]
* [[2017.07.05 -- Prompted Introspection Log]]
This is my psychedelic trip-art video collection. To me, trippin' is a set, ritualistic kind of trance and journey for me. I have to get in the right headspace, mode, frame of mind, point of view, perspective, etc. I need to line up inside in a certain way for me to see the world from the trippin' perspective. Don't get me wrong, trippin', virtually by definition, requires taking sufficient quantities of drugs and practice. But, just because you are high doesn't mean you are trippin'. 



It is a fact that some of the most celebrated hallucinogens and dissociatives permanently alter your brain. You really do think about and see the world differently after taking them. I believe I'm highly susceptible to being malleable, plastic, and changeable while using most drugs. I don't think all the mental changes I experience are permanent, but some are. 

Psychedelics helped me empathize with myself again. It's why I started writing again. I'm programming myself by carefully using psychotropic substances and having a conversation with myself; it's definitely a dangerous path. But, we have to care about shaping who we are, and I required serious tools to be able to fix myself.

I enjoy watching my videos in a particular order. Perhaps I continue to relive the experience and see it from different angles or slowly add to it. In any case, I have a lot of fun. It isn't that important to me anymore, but once in a great while I like to look through it. I believe I've milked the majority of utility I'll get out of this. That said, others may find it useful and interesting.

[1] Opener

* Anthony Francisco Schepperd 
** The Music Scene: https://vimeo.com/12622016
** Two Against One: https://vimeo.com/33415528
** Heart Like a Rabbit: https://vimeo.com/65926401
** ~IllumSpheres 'Love Theme' Music Video: https://vimeo.com/78188682
** ~EyesDown (Machine Drum Remix) official video: https://vimeo.com/36571816
** Official video for 'C.U.R.E': https://vimeo.com/165509812
** The Offspring's 'Dividing by Zero' and 'Slim Pickens': https://www.youtube.com/watch?v=asDlYjJqzWE
** "Wail to God" Music Video: https://vimeo.com/6954357

* ~DyE ft. Egyptian Lover - She's Bad (Official Video): https://www.youtube.com/watch?v=WFuWPhlsyEI
* Gnucci - WORK!: https://www.youtube.com/watch?v=ZDlsIhcvpCs
* IRMA / Save me: https://vimeo.com/95946394
* [Official Video] Daft Punk - Pentatonix: https://www.youtube.com/watch?v=3MteSlpxCpo
* 'I FINK U FREEKY' by DIE ANTWOORD (Official): https://www.youtube.com/watch?v=8Uee_mcxvrw
* Pink Elephants Cottonmouth Remix Dubstep - LSD Music Video: http://www.metacafe.com/watch/6943306/pink_elephants_cottonmouth_remix_dubstep_lsd_music_video/

[2] World Bend

* Wild Child - Rillo Talk (OFFICIAL): https://www.youtube.com/watch?v=vPtvqouhfos
* Hooray For Earth - "True Loves" (Cereal Spiller Remix): https://www.youtube.com/watch?v=Mf6JCpJjdiY
* Time-lapse Mining from Internet Photos [SIGGRAPH 2015]: https://www.youtube.com/watch?t=201&v=wptzVm0tngc

* ~BioQuest Studios
** Slow-Life: https://vimeo.com/88829079
** The Hidden Life in Pond Water: https://vimeo.com/56012237

* LIQUID STRANGER - The Gargon (OFFICIAL VIDEO) from "Renegade Crusade EP": https://www.youtube.com/watch?v=xOYc1iXC1ww
* Deca - "Gabriel Ratchet": https://www.youtube.com/watch?t=136&v=jR4nOsAtPcg
* The Subways - My Heart Is Pumping To A Brand New Beat: https://vimeo.com/96609262
* Ori Toor - ANIMAL COLLECTIVE - "Lion in a Coma": https://www.youtube.com/watch?v=uawaDJ-b0_k

[3] Geometric, Fractal, and Traveling

* Ben Ridgway
** Cosmic Flower Unfolding: https://vimeo.com/102671169
** Tribocycle: https://vimeo.com/76771149
** Evolution and Improvisation: https://vimeo.com/68819309
** Cellular Circuitry: https://vimeo.com/68819309
** Continuum Infinitum (video loop): https://vimeo.com/41806282

* Android Jones
** Life Raft for a Death Trip: https://vimeo.com/93218648
** Tipper & Android Jones live at Infrasound 2013: https://vimeo.com/84506250
** Live Jive-Droid: https://vimeo.com/80707313
** Android Jones - LIB 2012 Portrait: https://vimeo.com/68006883
** Android Jones - Wildlife (Live): https://vimeo.com/68004359
** Android Jones - Self Portrait - November 11, 2011: https://vimeo.com/68002851
** Dharma Dragon - Android Jones - Boom Festival 2012: https://vimeo.com/63023423
** The Dream - Corel Screensaver: https://vimeo.com/31718281
** Hunab Ku: https://vimeo.com/137730140
** Fare Thee Well Chicago Art Timelapse: https://vimeo.com/133018401
** HANAHAUS Process: https://vimeo.com/122068083
** painting with Polygons: https://vimeo.com/122018938
** The Making of REFUGE time-lapse: https://vimeo.com/120124965
** NY through the eyes of an electromineralist time-lapse: https://vimeo.com/115055361
** Electric Love • Time Lapse: https://vimeo.com/109949064
** Burning Embrace: https://vimeo.com/105929646
** Mother of Trance Dragons: https://vimeo.com/105830356
** Wanderer Awakened: https://vimeo.com/99424652

* The Ultimate Trip: https://www.youtube.com/watch?v=-5hXxPrwf-A
* More Electric II: https://vimeo.com/81184745
* The-Drum - /BZE: https://www.youtube.com/watch?v=Ak93MY_q2Kw

[4] Narratives

* Devil's Tuning Fork: https://www.youtube.com/watch?v=_tKF_subEMA
* Louis Vuitton x Takashi Murakami Superflat First Love: https://vimeo.com/5198631
* Animation of DMT experience - Trippy Psychedelic Fractal Simulation (Terence Mckenna): https://www.youtube.com/watch?v=8veXhlhXBjQ
* Raw Data: https://vimeo.com/65535198
* Walt Disney's & Salvador Dali - Destino 2003: https://www.youtube.com/watch?v=1GFkN4deuZU&app=desktop
* Ori and the Blind Forest - Any% Speedrun - 59:07: https://www.youtube.com/watch?v=08dM0rOdJKc
* A Philosopher's Mind Trip: https://www.youtube.com/watch?t=112&v=MQ2rJC6pbGI
* Psychonauts Gameplay: https://www.youtube.com/watch?v=axw8rTXoKUo
* esoteric surreal short film: "THO-OG" (final cut): https://www.youtube.com/watch?t=395&v=y_gNPhE6R6g
* Gumshoe: https://vimeo.com/90199254
* “The Masterchef” a short film by Ritesh Batra: https://vimeo.com/91752741




[5] Faces

* Love & Theft: https://vimeo.com/16245334
* Eyez: https://www.youtube.com/watch?v=LJyke4BbGOU

[6] Silly

* TUNE YARDS / Water Fountain: https://vimeo.com/channels/staffpicks/93107965




I use this word a lot. I have a technical meaning for it which comes my graduate work in moral psychology. 

Psychopathy is the "choice" to not empathize. A person, P, is psychopathic towards X to the extent that P chooses not to empathize with X.

This is an incredibly broad definition. You may have learned about psychopathy from a TV show or hearing stories about serial killers. Those aren't accurate depictions of the neurological and moral issues at play though. Here's a scary fact: we all sit on the dark-triad spectrum. We are all, to some degree, psychopathic.

Note that autism and psychopathy are distinct. Autistic people lack the gutteral, faster-acting abilities to develop standard theories of mind. It is an impairment or at least a deviance in the activations of their right temporoparietal junction that prevents them from developing theories of mind in the ways that neurotypical humans do. Autistic people, therefore, often lack empathy in cases where neurotypicals do. The reason for this lack of empathy, however, is due to lacking a fitting theory of mind. One's mirror neurons cannot fire off, one cannot feel the pain of another, if one doesn't at least understand how the other person is thinking (having accurate beliefs about what the target believes, infers, desires, feels, etc.). Essentially, it wasn't a choice for the autistic person (although, there are definitely cases where autistic people can be psychopathic). Psychopathy, however, is very much about choosing not to empathize; they are capable of empathizing (seriously), they just don't. 

I see two kinds of psychopathy, direct and indirect.

Direct:

Choosing not to empathize. It is literally a switch in a psychopath's mind. Those further along the spectrum may be born with it, others conditioned (and some a bit in between). This is exactly what makes a psychopath so excellent in social situations, at manipulating, at being so charming, etc. They have the empathy skills and at times the inhuman objectivity (we are aliens to them, the other) to develop deep theories of our minds, make good inferences about our reactions, and to use us. 

Lower IQ psychopaths tend to be level 1 in the Positive Disintegration scale because they systematically and consistently aren't intelligent enough to recognize the need to empathize with themselves at all. Being able to plan for the future, to not be impulsive, to employ their frontal lobes at the right time in the right way, stems from their inability to develop the right kinds of intuitions and practices for empathizing with themselves in their Fastmind. 

Higher IQ psychopaths are called sociopaths. They are so high-functioning that they literally blend in. They appear so normal to us. They are smart about their egoistic selfish pursuits. They empathize with themselves to their benefit and no one else's (although, they capable of empathizing with their family [among others]; it depends on the degree to which they are psychopathic). They have learned when and where to turn the empathy switch on and off. My grandfather is clearly a highly psychopathic sociopath. 

Indirect:

Choosing not to become the kind of person who empathizes. This is very much related to [[Indirect doxastic voluntarism]]. This is  where Hanlon's Razor is wrong (and Socrates is right). Willful ignorance of theories of mind and habituating psychopathic dispositions are the core causes of indirect psychopathy. 

Finally, I should point out that "choice" is concerned with freedom (which I'm not sure anyone actually has). The entire issue may be moot in a way. Moral responsibility could easily be an illusion (again, this is legit moral psychology). 
DSM-5 defines PTSD as follows:

Criterion A (one required): The person was exposed to: death, threatened death, actual or threatened serious injury, or actual or threatened sexual violence, in the following way(s):

* Direct exposure
* Witnessing the trauma
* Learning that a relative or close friend was exposed to a trauma
* Indirect exposure to aversive details of the trauma, usually in the course of professional duties (e.g., first responders, medics)

Criterion B (one required): The traumatic event is persistently re-experienced, in the following way(s):

* Intrusive thoughts
* Nightmares
* Flashbacks
* Emotional distress after exposure to traumatic reminders
* Physical reactivity after exposure to traumatic reminders

Criterion C (one required): Avoidance of trauma-related stimuli after the trauma, in the following way(s):

* Trauma-related thoughts or feelings
* Trauma-related reminders

Criterion D (two required): Negative thoughts or feelings that began or worsened after the trauma, in the following way(s):

* Inability to recall key features of the trauma
* Overly negative thoughts and assumptions about oneself or the world
* Exaggerated blame of self or others for causing the trauma
* Negative affect
* Decreased interest in activities
* Feeling isolated
* Difficulty experiencing positive affect

Criterion E (two required): Trauma-related arousal and reactivity that began or worsened after the trauma, in the following way(s):

* Irritability or aggression
* Risky or destructive behavior
* Hypervigilance
* Heightened startle reaction
* Difficulty concentrating
* Difficulty sleeping

Criterion F (required): Symptoms last for more than 1 month.

Criterion G (required): Symptoms create distress or functional impairment (e.g., social, occupational).

Criterion H (required): Symptoms are not due to medication, substance use, or other illness.

Two specifications:

* Dissociative Specification. In addition to meeting criteria for diagnosis, an individual experiences high levels of either of the following in reaction to trauma-related stimuli:
** Depersonalization. experience of being an outside observer of or detached from oneself (e.g., feeling as if "this is not happening to me" or one were in a dream).
** Derealization: experience of unreality, distance, or distortion (e.g., "things are not real").
* Delayed Specification. Full diagnostic criteria are not met until at least six months after the trauma(s), although onset of symptoms may occur immediately.

------------------------------

My plain, visceral thought: anyone who has seriously and consistently contemplated suicide to escape pain has experienced real trauma. Call it PTSD or whatever you want. 

Let's walk through this list and see if I have PTSD:

''Criterion A ''

I've never been exposed to "death, threatened death, actual or threatened serious injury, or actual or threatened sexual violence" in any of their ways, from what I can tell. The 4th way in the criterion seems philosophically important to me (as well as the difference found between DSM-4 and DSM-5), since it demonstrates that the very definition of PTSD is becoming more inclusive and capturing a broader spectrum of people. I believe they are onto something there. Trauma is a broad concept, and I think it may include more things than death and violence. I think I fall on the PTSD spectrum. 

I did see terrible accidents in Thailand (some included children). While extremely painful and difficult to process (because it's truly fucked up), I don't think that has been the real or sole cause of my crisis. In a way, it was my plight to navigate these roads (I used a dirt-bike with street wheels for fat farang). I couldn't fully empathize with myself, the danger I was in, since it wasn't practical. 

As far as the images I've seen, jesus. I've been a 4chan user since college (around 2004, about a year after the site came online). I've seen some vile shit on the internet. Definitely traumatic. Enough to cause PTSD? I don't think so.

These experiences may have added to my problems, but I don't they are the core issues. My problem probably didn't crescendo and peak into PTSD territory until these past couple years. 

My hypothesis is that I decided I wanted to kill myself about two years ago. Some part of me threatened myself. It was a serious. Hating yourself, your life, and your world so much that you threaten yourself with harm may be a source of trauma. 

Further, I don't want to be enslaved by a God I don't believe in (as my tattoo, which literally says "Slave to the God," suggests). I also don't want to be enslaved by the ruling class. I'd prefer death to slavery. I think my belief that the world is coming to an [[end|The End of Humanity]] is also traumatic. I deeply believe people suck down to the core; I think they are fundamentally selfish. It has been a real loss of innocence for the gullible, autistic fool that is me.

Lastly, I take having been wrong about value, freedom, and purpose as something which has caused me to curl up into a defensive ball. It is hard to rationally accept the irrationality of our existence. As a friend of mine used to say, we're a "box of contradictions." I have a hard time living with that. My logical options are being sealed up, one by one. I feel like I'm trying to escape a rational hell using reason. Lol. Anyways. I do think I have serious trauma, enough to cause PTSD.

''Criterion B''

Intrusive thoughts, check. They are less common and far more controllable now! I have the power to dismiss it more effectively. I am so thankful.

Nightmares. What is a nightmare? Do I have dreams that I despise, that prevent me from having a good night of sleep? Yes, all the time. I have a very difficult time falling asleep, and my dreams often interrupt my sleep (makes it hard to want to go back to sleep).

What are flashbacks? Am I constantly reminded of past events where I humilitated myself (these aren't mere shower-thoughts moments) throughout the day? Yes. Do I relive what I have seen? Yes. Am I faced with the same existential questions hour after hour? Yes. Is there a single moment that I focus on? No. 

Does talking with my parents, or even the thought of talking with them (particularly when I find myself in a thoughtloop of engaging in hypothetical conversations with them) count as a reminder? I do get panic attacks (I've never had a heart attack, but it feels like what I imagine it would be to have one), although I've learned to control them more (and cannabis helps me swallow it).

''Criterion C''

I don't know. What counts as avoidance? Does finding myself unable to communicate with my parents (who I dearly love) count as avoidance of trauma-related stimuli? My job/location history might signify it, but it's actually fairly normal migration for a millenial and an autistic person.

''Criterion D''

Nuh-uh. No, I don't have overly negative thoughts and assumptions about oneself or the world. Lol. I hope I do. I need to be wrong about it.

Fuck, this criterion pegs me hard. The entire list.

''Criterion E''

Ditto. I don't know what to say. I fit the description, at least to some degree, of every condition. I feel sad and relieved when I see this list.

''Criterion F''

Check.

''Criterion G''

Check.

''Criterion H''

This one is less clear. I have gone for months without substance use (because I was afraid that was the problem), but still experienced the negative effects, suicidal ideation, etc. Further, maybe autism, depression, and anxiety explain the symptoms better.

''Dissociative Specification''

I do not think I fit this one. It all seems very real to me. I feel a split in myself, but I see myself as possessing both intuition networks.

''Delayed Specification''

I might fit this one. As I said, this issue has crescendoed. 



Abandon hope all ye who enter here. The humblest absurdities, the clearest unintelligibilities, the simplest mindfucks will make you want to kys. Some of them are dark, some of them are anti-humor, and some of them are just boringly "ironic" one-liners that force the audience to question the validity and value of their own existence. I need to keep puns out of the other collections; it's an infection control problem. Also, this is the most sadistic part of this wiki, by a long shot. I need a pun here.



<<<
I burned my Hawaiian pizza today; I should of cooked it on aloha temperature.
<<<
<<<
I hate when people talk behind my back. They discussed me.
<<<
<<<
I lost my watch at a party once. Saw a guy stepping on it while sexually harassing a girl. I walked up to the dude, punched him straight in the nose. No one does that to a girl...not on my watch.
<<<
<<<
Like most people my age I'm 20 years old.
<<<
<<<
I invented a new word today: Plagiarism.
<<<
<<<
When I found out that my microwave wasn't waterproof, I was shocked.
<<<
<<<
As I said before, I never repeat myself.

Words cannot express how limited my vocabulary is.
<<<
<<<
The more I hear about inverse proportionality the less I like it.

a farmer was in the field with his cows and counted 196 of them, but when he rounded them up he had 200 
<<<
<<<
Apparently, I snore so loudly that it scares everyone in the car that I'm driving.
<<<
<<<
Abortion really brings out the kid in you.

Pro-Life Tip: Don't get an Abortion.
<<<
<<<
I was talking to a North-African girl for hours, we just clicked.
<<<
<<<
Lif is too short.

A missing letter can make a word of difference.


There's no "I" in denial.
<<<
<<<
I don't get why my girlfriend always starts conversations with "Are you even listening to me?!"
<<<
<<<
People are making end of the world jokes like there's no tomorrow.
<<<
<<<
I know she ate a worm but we are not here to debate 'de bait Deb ate.
<<<
<<<
I was voted "Most Likely to Rig a School Election."
<<<
<<<
I'm an archaeologist and my life is in ruins.
<<<
<<<
6:30 is the best time on a clock, hands down.
<<<
<<<
Parallel lines have so much in common, it's a shame they'll never meet.
<<<
<<<
My poor knowledge of Greek mythology has always been my Achilles' elbow.
<<<
<<<
The invention of the shovel was groundbreaking, but the invention of the broom swept the nation.

No matter which way you slice it, the invention of baking takes the cake.

The invention of the pin was on point.

The invention of the clock was right on time.

The invention of corduroy pillowcases really made headlines.

The invention of the telephone was a good call.

The invention of the doorknob really opened some doors.

It was the invention of the wheel that really got things rolling.

The knife was cutting edge technology.
<<<
<<<
I go to the gym so infrequently I call it the James.
<<<
<<<
I didn't know what to wear to my Premature Ejaculation Society meeting, so I just came in my pants.

I came into a lot of money recently...which is weird, because I usually use a paper towel.
<<<
<<<
If I had a dollar for every time a girl told me I was unattractive, they'd eventually find me attractive.

Women can't get enough of my small penis.

My wife told me: ‘Sex is better on holiday.’ That wasn’t a very nice postcard to receive.
<<<
<<<
Every time you ingest food coloring, you dye a little inside.
<<<
* Jewtropolis
It's reasonable to be reasonable. Circularity problem. We take reason to be an article of faith. That reason rules ethics is a matter of faith. If it doesn't stand up to reason, then we shouldn't see it as ethical. Reason is the best guide for knowing the world, what we ought to do, who we are, etc. Reason should rule each of us. Kant was right about defining people as reasonable. He was wrong to think that people are reasonable. He was wrong to think that much of who we are is reasonable. We are not the "ends" we are meant to be. The reasonable part of us is the part we should shape ourselves to be. The reasonable part is our "true self" our authentic identity (matter of faith). We are disfigured and poorly integrated and poorly constituted selves. We must guard our reasonable self and banish the others. Reason is often the source of happiness (making good utility calculations), but reason can also make us said (e.g. understanding human nature, or realizing the world is ending). 

Reason destroys faith. Faith is the unjustified, basic, foundational assumptions we take up (they can be complex sentences, but we just assume those sentences are true without any further explanation or justification). Reason tests faith. Reasons inspects it, criticizes it, interprets it, appreciates it, redeems it, gives us explanations where we thought there weren't or shows there weren't reasons when we might have thought there were. 
For better or worse, we are not typical people. We spend a lot of time and energy shaping ourselves. We care about our desires and beliefs, and we often have the balls to act on them.<<ref "1">>

We have deeply systematic views of ourselves and the world around us. Our subjectively generated reality maps have differences, but we obviously agree on many facts together. From a mile-high view, our reality maps share structural similarities. I believe our many regions of our reality maps tend to be intricate, richly detailed, broad and deep, exceedingly existential, organized with a high degree of relevance and value-seeking, and structured with an internal coherence and logical consistency which average people do not have. 

I have failed to convey this point many times (and I may be failing again). I think our reality maps, including our beliefs, desires, choices, attitudes, and modes toward the world, really do define and constitute much of who we are in important ways, especially since we have such intense innerlives.

Being a well-constituted, integrated self.

In an inescapably circular way, in exercising our reality maps, I believe we prize our reality maps. That is because we have sacrificed for them, because we need them, because we know how high the stakes are, because we know how important they are to achieving the ends we have embedded in them. If our reality maps are part of what constitutes who we are, then zealously cultivating our maps is a supreme demonstration of how much we care about our identities and lives. Essentially, our reality maps are well-motivated, strongly justified by our evidence, and (in a way, unfortunately) complex enough that it is difficult to convey to and share with others. That is to say, you have distinct, thoughtful points of view. Even if I don't agree with you, I appreciate your reality maps. Much of who you are makes sense to me. 


I have had this schism in my reality map. The world has crumbled around me (and I with it). I value my experiences and understanding of Christianity. They allow me to interpret the world in important ways.



Let us be clear, this is not a denial of objective reality. It is a Kantian recognition of our inability to directly access it though (sometimes thought of as the unknowable “thing in itself”). We have evolved to be creatures with innate categories which dictate how we organize and think about the world around us; again, we are innately biased at this genetic level. Sometimes we recognize it as common sense (color-blindless highlights that fact so clearly for me), but other times it can be difficult to accept.

Reality Map Collection:

* Academic Philosophers:
** Plato
** Aristotle
** Heidegger
** Kant
* Big Lebowski

----------------------------------------

<<footnotes "1" "I think of us as systematic contrarians, skeptics, true believers, and people willing to go against the grain (INTJ). Ah, but of course, we must step back in humility. As Mom has pointed out to me many times, everyone thinks they are the exception. But, it is a fact that there are exceptions on the epistemic bell-curve. To some degree, I think we are exceptional. We are weird and alien to this world. Let's own it and use it to our advantage.">> 
//Where I hope to channel Michel de Nostredame (et al.), Niccolò Machiavelli, Karl Marx, Leo Strauss, Fyodor Dostoyevsky, George Orwell, Flannery O'Connor, and Mike Judge, the political theorists we need but don't deserve.<<ref "1">> 
//

<<<
Good! Use your aggressive feelings, boy. Let the hate flow through you! 

--Emperor Sheev "Darth Sidious" Palpatine, Star Wars
<<<

Here I tell you how I //really// feel about Humanity. I say what I mean, and I mean what I say. I don't hold back any punches either.

Rules of [[Realpolitik Speculation]]:

# Don't talk about [[Realpolitik Speculation]].
# ....Don't talk about [[Realpolitik Speculation]].<<ref "2">>
# Empathize with humanity, but stop attempting to empathize with every individual human.

[[Realpolitik Speculation]] does not require me to empathize with my enemies.  It's not practical. Here I tell my enemies how much I hate them. To my enemies:

//If you were rational enough, you would hate yourselves too.//<<ref "3">> Here I watch the world burn as I laugh and wail. I seek answers, and you clearly don't have them. Your conveniently willed ignorance is only surpassed by your blatant hypocrisy.<<ref "4">> For that and for you, dearest ones, I clown-scream to you a love-poem: [[Realpolitik Speculation: A Poem]].

/ahem && /adjust(monacle)

Alright, now that we're past the preliminary fuck-you's, I'm going to answer one of the greatest questions in The Great Conversation of Humanity: //Who are we?// Allow me to hospitably offer you The Word, the Fundamental Redpill:

__//Humans are irredeemably selfish, egoistic creatures; yes, even you and me//__.<<ref "5">>

I didn't stutter, so breathe it in. I'm doing you a favor (yes, you're welcome). Don't simply stick it in your pocket! Instead, employ the virtue necessary to mull it around. Digest it. Walk it down the decision trees and branches. Take it to the Nth degree. Does the world appear more coherent? Can you accept it? Do you have the intellectual integrity to keep it down, or will you purge yourself of the redpill you just swallowed? The truth can be very violent; it wreaks havoc on our reality maps. I empathize with the pain of taking the redpills of hard realism. You are being baptized by fire. Fundamental truths are often painfully acquired. 

The cost of consuming the redpill is the loss of innocence. So, I must apologize up front about that fact and for my subsequent behavior: I'm going to demonstrate this elementary fact of human nature to you over and over again. We are reducible to piles of physical atoms from which complex genetic and memetic structures emerge and evolve in the world. No one can give a reason for why these emergences are valuable but ourselves, and that means that life is, objectively-speaking, meaningless. I warn you: you can run, but you can't hide from the truth. You're evil because I think you're evil, QED.

Every great existential philosopher claims to have destroyed metaphysics and the objectivity of the transcendental. Here is mine. And, what is leftover isn't pretty. The world becomes coherently self-consistent, predictable, and lucidly intelligible when you accept who we really are: we're selfish creatures, every last one of us.<<ref "6">>

Like many who have wielded the Sword of Truth before me, I am going to slay an entire ecosystem of memetic networks that have been passed down through the generations or injected into the masses through myths, legends, lies, rhetoric, and ultimately virtue-theoretically viciously trained Fastminds (even if only for myself, in my own mind). My frontal lobes are going to decode the dominant idealogies of our day and age for you. I act as your Statesman on your behalf in this domain. 

I'm here to my swallow my weekly Redpill, drink deeply of the Water of Life, and gorge myself on the fruits of the Tree of Knowledge.<<ref "7">> I hope to have the integrity to peer behind the veil of reality and shrewdly interpret the ugly ponerological facts and implications of social, political, technological, and economic semiotics. I study the concept of the good of human evil. In time, I hope to demonstrate prescience and wisdom.

I say nothing either new or sane-sounding here (take your pick), but that doesn't make it wrong. If you are honest with yourself, sometimes you're not going to understand what I said (and you should honestly take the time to think very carefully about that). Sometimes you are going to realize that I "nailed it" (and probably feel a bit hopeless). Other times you may shake-your-head in profound disbelief, find yourself deeply angry with me, or perhaps even feel shocked in disgust. 

Here is my advice: if you think I nailed it in any of these articles, then take the time to consider the possibility that I've "nailed it" in those you disagree with. Be absurdly charitable. Consider the possibility that you have been systematically wrong about everything, and that I have clearer vision through the fog than you. Pretend I am God in your interpretation.<<ref "8">> I hope that's not asking too much. 

Do you hate me yet? Well. I'm sorry. I can only ask you to think about it again. I'll keep frantically pointing you to it. I hope you will eventually see it too. Let us ponder those immortal words:

<<<
Chaos isn’t a pit. //Chaos is a ladder//. Many who try to climb it fail and never get to try again. The fall breaks them. And some are given a chance to climb, but they refuse. They cling to the realm or the gods or love. Illusions. Only the ladder is real. The climb is all there is.

–Petyr "Little Finger" Baelish, Game of Thrones 
<<<

It's time to pay attention. Here I chronicle and prophesy about systemic chaos and evil in the Human species. Whether or not you take this to be a political work in itself is up to you.<<ref "9">> As always, //caveat emptor//. This is the interwebs: buckle-up and ready your eyebleach. So, here, take your medicine:

* [[2017.01.23 -- TPP]]
* [[2017.01.27 -- RNC's Impeachment of Trump]]
* [[2017.01.30 -- Early Warning Signs of Fascism]]
* [[2017.01.31 -- Open Shadow Government]]
* [[2017.02.02 -- Conservative DNC]]
* [[2017.02.12 -- Devices of the Hyperclass]]
* [[2017.02.13 -- Trump's Incentives to Reign as POTUS]]
* [[2017.02.14 -- Real Unemployment]]
* [[2017.02.14 -- Russian-Trump Relations]]
* [[2017.02.14 -- Automated Memetic Warfare]]
* [[2017.02.16 -- Democratic Hypocrisy on Whistleblowing]]
* [[2017.02.18 -- The Crisis of 21st Century Science]]
* [[2017.02.18 -- Our Failure to Empathize with the Future of Humanity]]
* [[2017.02.19 -- The American Education System]]
* [[2017.02.24 -- Trumpocalypse Trumpdate]]
* [[2017.02.24 -- The Militarization of Police]]
* [[2017.02.24 -- Redpilled Socialism]]
* [[2017.02.26 -- The DNC: Republicans in Democratic Clothing]]
* [[2017.02.26 -- Moore's Law and the Centralization of Power]]
* [[2017.02.28 -- Web Assembly: The Browser VM as Decentralized Cloud]]
* [[2017.03.04 -- Programming Society]]
* [[2017.03.07 -- Vault 7]]
* [[2017.03.10 -- Culturalism and Israel]]
* [[2017.03.11 -- The American Food-Industrial Complex]]
* [[2017.03.12 -- Trump's Administrative Truncation]]
* [[2017.03.12 -- Generational Enslavement]]
* [[2017.03.22 -- The Second Cold War]]
* [[2017.03.22 -- ♫ It's beginning to look a lot like treason ♫]]
* [[2017.03.24 -- Injecting Fully Decentralized Networks Into Capitalist Political Systems]]
* [[2017.03.28 -- The Future of Reverse Engineering]]
* [[2017.03.29 -- Ivanka Trump: Pappa POTUS' Handler]]
* [[2017.03.31 -- The Mercer Family]]
* [[2017.04.02 -- Brave New Experience Machine]]
* [[2017.04.02 -- The Divorce of Productivity and Compensation]]
* [[2017.04.10 -- The Renewable Resource]]
* [[2017.04.10 -- Redpilled Platonic Philosophy]]
* [[2017.04.13 -- Mainstream Media]]
* [[2017.04.13 -- Internet Shutdowns]]
* [[2017.04.15 -- Parasitic Bitcoin Hashing: Wallet Burglary]]
* [[2017.04.17 -- Ransomware Economic Strategies]]
* [[2017.04.17 -- Automating Digital Social Class Stratification]]
* [[2017.04.21 -- Energy Subsidies]]
* [[2017.04.25 -- Privatized Quantum Computing]]
* [[2017.04.25 -- Rectifying Our News Process Disintegration]]
* [[2017.05.06 -- Russian Intervention in French Elections]]
* [[2017.05.10 -- Astroturfing, Imageshaping, and Mass Manipulation]]
* [[2017.05.10 -- Trump's Nixonian Firing of Comey]]
* [[2017.05.19 -- Trump's Hypocritically Prophetic Tweets & Quotes]]
* [[2017.05.20 -- The Coming Demise of Windows]]
* [[2017.05.27 -- A.I.'s Innate Trade Secrecy]]

!!Idea Bag:

* [[2017.02.16 -- Statecraft and The Statesman]]
* [[2017.02.18 -- Idolizing the Hyperclass]]
* [[2017.02.19 -- Celebrity Culture]]
* [[2017.03.09 -- The American Medical-Industrial Complex]]
* [[2017.03.09 -- Postmodern Slavery]]
* [[2017.03.09 -- Rent-Seeking]]
* [[2017.03.11 -- Inheritance and Familial Power Accumulation]]
* [[2017.03.23 -- Putin's Clown Genius Puppet]]
* [[2017.05.10 -- How the Trump Family Makes Money Off POTUS]]

--------------------------


<<footnotes "1" "Let's be clear: I think virtually or absolutely no one else cares what I have to say here (which is probably a good thing). I care though. And, you know what? It's okay that I care what I think.">>

<<footnotes "2" "Except on higher-ordered pages, such as 🢔⦗[[Focus|Current Focus of Projects on this Wiki]]⦘🢖.">>

<<footnotes "3" "Please understand this as a literary device. It's a powerful tool for venting and doing the work of this wiki. Remember, I'm talking to myself on this wiki. I hope to be wise here. I hope to find the answers. I must accept what I believe. It is the only way I can be happy. To those whom I might offend, I will say this once: I love the RL people that read this. If you are literally reading h0p3's wiki; you aren't my enemy. You care about what I think. I owe you the same. You're letting me unload and decompress. You are kind. I can't thank you enough. Seriously, I love you.">>

<<footnotes "4" "I'd like to take the time to explicitly denounce Hanlon's Razor. You malicious fools!">>

<<footnotes "5" "Yup, even that exception you are trying to come up with. Oh, Altrusim and Cooperation? Yeah. No matter how much you try to argue against it, the roots of their existence, the core of why it is that we engage in those benevolent practices, the fundamental nature of these objects, is selfishness on a post-modernist background. Oh, I grant that the expressions of selfishness are deeply complex in our world (and positively deceptive in so many ways), but this is not an ad hoc argument (far from it; it is incredibly predictive). Selfishness is the cause and ultimate explanation for our behavior and beliefs (for how we compute). Empathy, love, altruism, and cooperation are merely the means to the ends of Human Selfishness. It's written into us by nature itself. Survival of Fittest is a core principle of nature, it cannot be doubted. But, your moral delusions surely can. Make what you wish of nihilism. Find meaning for yourself. Be wise in your selection of ethical and metaethical thought.">>

<<footnotes "6" "I know what I am. Do you know what you are?">>

<<footnotes "7" "I'm not gonna' half-ass the pursuit of the ugly truth. I'm going to whole-ass it. Admitting to ourselves who we really are is the ultimate expression of courage.">>

<<footnotes "8" "I'm trying to help you. I'm obviously not God or a god, or whatever. I'm just a human, and we both know that. You should still strive to be maximally charitable in your interpretation of my words though.">>

<<footnotes "9" "What isn't realpolitikal? I wouldn't trust me either. Who can you trust, and why? I'm an idealogue. No matter where you stand, you can accuse me of generating the Black propaganda of covert psychological operations, supporting the anti-Christ, or some other absurd accusation. There is no winning. You are in a trusting trust position, if not one of needing to exercise serious charity.">>
* [[2017.01 -- Realpolitik Speculation]]
* [[2017.02 -- Realpolitik Speculation]]
* [[2017.03 -- Realpolitik Speculation]]
* [[2017.04 -- Realpolitik Speculation]]
```
Here I am human.

Here I righteously cast the first stone the builder refused at you,
arrogantly judge the world as though I'm perfect,
hypercynically assume the worst about people,
and sanctimoniously virtue signal.

Here I act the misanthropic fool and insufferable know-it-all hate-machine,
virulently attack and demonize everyone and everything,
psychopathically gaslight and gleefully disregard human dignity,
desperately confabulate to justify my narcissism and immoral behavior,
delusionally nurture illusions of Machiavellian grandeur,
and inhumanely dehumanize humanity.

Here I otherise and contextomize those who disagree with me,
uncharitably strawman and ad hominem my opponents,
maliciously engage in self-serving idealogical framing,
McCarthyistically hunt for the witches among us,
raid, brigade, circlejerk, censor, shun, persecute, discriminate, 
and manufacture hate-culture.

Here I Drink-the-Kool-Aid,
willfully ignore reality and rational argumentation,
paranoically join my tribes' echo chambers,
enslave myself to my filter-bubbles,
and cover my ears while repeatedly screaming "I can't hear you!"

Here I gnostically Cassandralize,
eisogetically inject and interpolate my adhocish heretical theories into your more "objective" narrative,
double-talk and dog-whistle in the language of doublespeak,
incoherently contradict myself with open hostility,
and whisper the wall-of-text shibboleths of conspiratorial disciples.

Here I cyberbalkanize the splinternet,
viciously disinform myself and humanity,
vitriolically pontificate and trollspam,
fabricate hyperbolic hot takes and propagandistic clickbait,
spew copypasta and freshly forced maymay's,
and irresponsibly speculate while dropping post-truth-bombs.

Here I smugly ramble and shitpost by decorating spurious wordlists,
all for "make benefit of Kazakhstan," 
for the lulz, kappas, and triggers, 
and because I love the smell of my own farts.

Call me crazy if you must; 
I will wear it like armor. 
Go ahead and get your hissy-fit of disapproval out of the way: 
cuck this, kek that, tut-tut, and tsk tsk.
 
Belittle and dismiss me; 
that's all I'm serving to you as well. 
Feel free to claim I both am unhelpfully critical and fail to offer any constructive advice; 
I'm sure it justifies your blindness, lack of idealism, and rationalizations. 

You hypocrite! Liar! Sociopath! 
I've learned not to trust your motives. 
I know what you really mean by your words and actions. 
You are no authority, visionary, savior, or saint;
you don't even have a leg of decency to stand on. 
I'm certain of it. 

I see you for what you really are. 
You are pure fucking evil incarnate; 
you are the paragon of scum; 
you're a monster; 
you are my mortal enemy. 
I dream of slaying you. 

Everyone thinks they are right or justified, 
but you aren't, bucko. 
In theory, people can change, 
but in practice, you won't. 
You are the problem. 

Essentially, I literally hate your guts, 
so please do me a favor and empathize with me by killing yourself, slowly. 
I hope you suffer eternally because you deserve it, sinner.
In case you don't understand what I'm saying, fucktard: 
we aren't friends.
```
I should develop an elevator speech for the wiki. Ultimately this may go in my 🢔⦗Principles⦘🢖 section.

* Braindump
* Mindmap
* Memory
* Collections
* Knowledge Base
* Allows you to maintain mutliple, interconnected blogs at the same time.

* Redpills are descriptive about the world, but not prescriptive about what to do about those facts.
//Redpilled// is a word I've studied and watched evolve in public consciousness for quite a while. It is imperative that you realize that the concept doesn't have to be reduced to mere alt-right misogyny and psychopathy (although, it definitely must account for these behaviors and perspectives). Being redpilled can mean being practical, stoic, intellectually honest, and pursuing realism about human nature. There is a kernel of truth which average 'Redpillers' are deeply correct about, even though they are wrong about so much. It need not offer moral prescription outside of epistemic normativity. This is ponerology; empathizing with humans means deeply understanding our flaws and selfishness while realizing it naturally arises from evolutionary processes.

Collections: 

* [[Redpilled Aphorisms]]
* [[Biases]]
* [[Fallacies]]
* Social Computing
** [[Unethical Hacks and Tricks]]
** [[Stigmatized Hacks and Tricks]]
** [[Social Engineering Principles]]

Admittedly, this section has enormous cross-section with [[Realpolitik Speculation]]. I think it is different though. If you really want to answer the question: "Why is there evil?" you must pursue it like this. 

Here I examine that which [[Social Darwinism]], studied correctly, helps us understand. Our hardware is genetic and the software memetic, and both are highly affected by our environments.<<ref "1">> The following articles will therefore be concerned with instrumental redpills and descriptive (not prescriptive!) practical reasoning about fundamental homo sapien mental states and patterns, including: social rules of thumb, human tropes, economics, psychographics, psychometrics, memetic description, psychological hacks, social engineering, manipulation, influence, conditioning, training, and memetic programming. 

Yes, here we learn how the sausage is made. The goal is to become an adept student of human nature, come to grips with living computation, and to appreciate memes and memers for who and what we really are. Effective utilitarians are already here. Non-realist, non-cognitive, or egoistic Virtue Theory must openly admit it. We pull Kant screaming and kicking into here. But, even he must obey the call of Reason by definition.

* [[2017.02.10 -- Rules of Thumb]]
* [[2017.02.14 -- Memetic and Genetic Species]]
* [[2017.02.17 -- Human Tropes]]
* [[2017.02.28 -- Christian Memetics]]
* [[2017.03.15 -- Pornography and Prostitution]]
* [[2017.03.15 -- Frankfurtian Feedback Alignment]]
* [[2017.03.15 -- Idiocracy]]
* [[2017.03.22 -- Sex Objects and Empathy]]
* [[2017.03.24 -- Eugenics]]
* [[2017.04.07 -- Sexism and the Sexual Marketplace]]

Ideabag:

* [[2017.03.15 -- Transhumanism]]

----------------

<<footnotes "1" "I am aware that I've deeply oversimplified biological computation here. Go with the flow. We'll get there.">>
Reputation is a bitch, ain't it?

It's incredibly valuable in some contexts, and the opposite of empathy in others.
//I dedicate this page to my brothers. I wish I could take away their pain. I wish I could give them an answer. I wish I could give their lives meaning and hope. We cower together. Bind us together. I love you both.//

I have long been on a mission to understand the heart of Christianity. How can I practice what is right if I don't know what is right? 

<<<
[[RPIN]]: It's more fun if you say this next part through clenched teeth like a gritty Mel Gibson Highlander, pointing his sword at his mortal enemy, screaming out: 

"Praxis and Doxa!!!! I swear upon my very being that I will weld you fucking assholes together if it the last thing I ever do GOD DAMNIT!!!! I categorically exist for the sole purpose of being morally justified."

Doesn't that give you the warm fuzzies? Isn't that exactly what God wants from each of us? The reason to follow God is because it is the right thing to do. Thus, //being moral// is the most fundamental principle. But, when we follow that principle, the ZEROTH COMMANDMENT, standard Christianity falls apart.
<<<

Yeah. I was screwed from the very beginning (and I still may be, but I have to try, eh?). 

I needed to justify my faith; it is what the truly faithful must do. Wrestling with God is fundamental to faith. Believe me, my charity has been immense (sane people who value themselves at all would have turned away from Christianity eons before I did). I have charitably stripped this religion down to its bare core as best I could. I disentangled and confabulated my way through more inconsistent strands, hypocrisies, paradoxes, and insanities of Christianity than anyone I've ever met. In my desperate, existential, obsessive, Straussian deconstruction of Christianity, I have repeatedly and begrudgingly, with weeping and gnashing of teeth, given up what was once sacrosanct to me, bit by bit,  in order  to preserve my faith. 

<<<
[[RPIN]]: Ha, we were a whore for God. That non-existent bastard sure fucked us. No, no, wait...wait...it's coming to me...It wasn't //God //that fucked us: it was// the history of the stupidity of humanity, including yourself// that fucked us. So...good job.
<<<

Without going through the grueling details of the chronology, I came to a point where I simultaneously identified as Christian even while one-by-one accepting the losses of: prayer, miracles, heaven and hell, the spiritual dimension, the existence of the Holy Spirit, //Sola scriptura//, //Sola gratia//, //Solus Christus//, the divinity of Christ,  //Soli Deo gloria//, and even Theism (in favor of a Patricentric Transcendental Deism).<<ref "1">>

<<<
[[RPIN]]: The untestable hypothesis (to put it as charitably as possible) of God's transcendence and the doctrine of Progressive Revelation formed the strongest confabulating gnostic device we've ever been subject to. 
<<<

Let me tell you (in my best deadpan): to put it mildly, Christians will give you a weird look if you say you are Christian but are willing to give up anything on that laundry list (if they even understood what you were talking about in the first place, no offense). And, yet, I felt very bound by my whittled down faith. I found enough philosophical ground to cover my bases even through all of that (some sweet/sick confabulatory backflips in philosophy, let me tell you). So, you have me all excited to tell you what I found, what remained after everything was stripped away. Here is the core of Christianity:

//The Two Great Commandments. //

<<<
[[RPIN]]: Duuuuuhhhhh. No shit, sherlock.
<<<

Was there ever any doubt? Everything else fades before them. Unfortunately,  after I finally gave up on the existence of God the Father (apparently, that was the last straw that finally broke the camel's back), I found I couldn't abide by the first of the Great Commandments: 

<<<
Hear, O Israel! The Lord our God, The Lord is One; Thou shalt love the Lord thy God with all thy heart, and with all thy soul, and with all thy mind
<<<

I do not believe in God. I used to. The belief ruled me. I legitimately wish I could now (assuming it wouldn't fall apart again). Actually, what I really wish is that I had the hope and purpose of faith ([[RPIN]]: "But, hold the irrationality, please.") without the flaws of faith. The Tree of Knowledge, of course, is perilous. Unfortunately, I cannot unsee what I see. I cannot adopt the existence of God as my axiom. I cannot unify myself around it.

But, all is not lost. 

A few thoughts.

The Greatest Commandment is fundamentally about unifying ourselves around a particular target. I can't preserve the target, but I can preserve the unification clause of the commandment. I can preserve being a unified person. I must love X with all my heart, soul, and mind. We just need to fill the X in with something axiomatic.

<<<
[[KIN]]: The egoist fills X with himself. I cannot truly unify myself with and around that. Sorry, [[RPIN]].
<<<

<<<
[[RPIN]]: Keep empathizing with me. We will see. Even the egoist must love others in virtue of loving himself. It is the only way to get our shitty lizard brains to work correctly and provide us those delicious, unadulterated pleasure chemicals that eudaimonia is ultimately reduced down to. Those facts are the only reasons we are talking in the first place. I'm here because I'm convinced that by exploiting your empathy, you will eventually be converted. I'm so convinced by my axioms that I will flaunt the very dagger with which I'm going to stab you...right in front of your eyes. You will see it coming, and you will know. I treasure it. They say pride comes before the fall: may the odds be ever in your favor, homie. Let's dance.
<<<

The Zeroth Commandment still functions:

<<<
Be moral.
<<<

Moral law, by definition, overrides all others reasons. It is the blackbox which decides all others. It is the ruling principle we live by. It is our fundamental decision procedure. All thinking things have a zeroth law. Unfortunately, the commandment, as it stands, lacks content. How do we give it content without being vacuously circular? Whatever we take up as the content of that commandment is our true axiom. What will be the content-giving axiom to the Zeroth Commandment?

I hope it is the second of the Great Commandments:

<<<
Thou shalt love thy neighbour as thyself.
<<<

If there is a God, may He judge me by, and may I be justified by my faith in the second of the Great Commandments. 

<<<
[[RPIN]]: Fore! Bombs away! Incoming! (that's sarcastic empathy)
<<<

Taken very literally, this maxim says something which I believe wasn't intended. I sound like a child in Sunday school asking a question that my poor teacher inevitably lacks the resources to answer:

<<<
What if I don't love myself? The commandment clearly does not require me to love my neighbor. 
<<<

I hear my dad loud and clear right now, as if he were sitting next to me quietly and kindly advising me. He's telling me to find the center of God's Will. He's telling me to find the spirit of the law, not the letter. He's telling me to be as much like Jesus as I possibly can. He's telling me to be a prophet, not a priest. He's telling me to be the idealist, not the pragmatist. He's telling me to go with [[KIN]], and yet he contradicts himself by also telling me to go with [[RPIN]]. How I can trust my father when he so blatantly violates the law of non-contradiction? That isn't unified at all. What is it that I'm even trusting? Don't you see the reason for my doubt!? Well. I'm still here trying, dad. I hope one day you will see I'm still trying (despite the fact that [[Adult Children of Alcoholics]], which you also seem to hold so dearly, actually suggests that I give up trying to trust you). I have not given up, not yet.

<<<
[[RPIN]]: Okay, we can't strawman Jesus' claim. That wouldn't be very *ahem* Christian of us. Fine. Let's steelman that shit. What did Jesus really mean?
<<<

To the best of my abilities, I have not been able to peel Empathy and Love apart. I think they are fused together, perhaps they are two facets of the same gem, if not philosophically identical. 

Thus, this is the Empathy Commandment. I h0p3 to take it up as my axiom. I need it to be my axiom. 

Who or what is the source of authority for this maxim? Is it something external to me? Maybe. I don't know. I am increasingly convinced that it is I who must give that law to myself. I must be autonomous. I must have faith in it; I must take it as my axiom. I must hardcode myself with it. I have hope that I can unify myself around this axiom. 

<<<
[[KIN]]: You must empathize with yourself, [[RPIN]]. But, if you empathize with yourself, you must empathize with others.
<<<

<<<
[[RPIN]]: I could disintegrate to the lowest level, and there I need not empathize with myself. However, I agree that it seems very unlikely that I would really maximize my utility going that direction. So, I agree. You've got me there. I must empathize with myself. However, that doesn't mean I have to categorically empathize with myself. What if I turned my empathy off at opportune moments? Ultimately, the egoist axiom can account for empathizing to our benefit, and we need not take up the spirit of this golden rule (even if we apply it to the letter).
<<<

<<<
[[KIN]]: Is it really empathy if you accept a principle which allows you to turn it off? I think not. I do not think you can unify yourself with it.
<<<

<<<
[[RPIN]]: So, my goal is to show you how we can become "bad" unified agents in the Korsgaardian sense? Let's do.
<<<

Now I'm trying to unify myself in spite of my residual Christianity, my leftover Christian intuitions I've been brainwashed to have since birth. I may not be able to erase, revise, or overwrite everything, but I'll do whatever I can to harmoniously reconstitute myself.

I was in denial about my faith for a long time. I must accept my deconversion and figure out a new path. Of course, I can hear my mother quietly hoping that this is God's intended journey for her sons, that there is some personal divine being carefully choreographing our struggle into something meaningful ("His Will be done"). I can hear her crying out. She sacrificed her children to God. I know her pain. I can feel it. 

Yes, I have a hard time swallowing such a sacrifice when I no longer accept the existence of the beneficiary. I am their victim, and yet I empathize with them deeply (as they do with their own parents). Some might call it Stockholm syndrome. I hope they are wrong. I honestly believe my parents meant (and still mean) well. Despite being wrong about the most important thing in the world (a mistake which I'm now forced to correct), I think they are brilliant people. The fact is: they cannot face their own demons. It would destroy them. I think they are deeply scarred and obsessively driven to be as faithful as they can be. They are heroes engaging in true Greek tragedy; it is the stuff of nightmares; it has been a farcically obscene overcommitment of their lives and their sons' lives (see: Poisonwood Bible) in the name of something Holy which has turned out just to be a scam. It is our family's tragedy. I forgive them. I hope we can manage something meaningful, and I hope to learn from their mistakes. I hope I have not already committed the same sins against my own children, or at least, I hope I have the chance to intervene and find the way which works. Let us hope empathy is the key.

-----------------------

<<footnotes "1" "This is not an exhaustive or detailed list. The order is roughly correct. I could write a very neat book on the topic (I have a uniquely rich perspective, I believe). I have no wish to destroy anyone's faith though, and I think my life is just sad in this respect. At any rate, I really did my best to be faithful despite an absurd amount of counterevidence and doubt.">>

Filler:

* Monte Carlo simulations for Magic:
** 	Finding the correct land/burn ratio, depending on strength of burn
** 	Chain dredging
** 	Swiss Tournament structure, gambling, and demonstrating that the best USUALLY doesn't win in large tournaments (assuming they aren't wildly the best).
* Programming languages:
** Bash
** Python
** Go
** C
** C++
* Scripting languages:
** 	AHK
** Innerspace
** WoWGlider
Official distributions of h0p3's Wiki include checksum and signatures files for verifying the integrity and authenticity of your copy. These verification files are updated for every published edit (nearly real-time). With these files (and the right tools), you will be able to cryptographically verify the entire wiki, which is contained in a single html file (index.html). Let's hope this is never directly useful to us.

Here's how to verify:

If you don't already have them, download all three files (<a href="check.sum">check.sum</a>, <a href="check.sum.sig">check.sum.sig</a>, and <a href="index.html">index.html</a>). You'll need to have installed [[PGP software|https://gnupg.org/]] in order to verify the signature. Use the Ed25519 signature file (check.sum.sig) to verify the authenticity of the checksum file (check.sum). Assuming you are using gpg (or gpg2<<ref "1">>), you should open your commandline and navigate to the directory containing these files, and run the following command:<<ref "2">> 

```
gpg --allow-non-selfsigned-uid --keyserver keyserver.ubuntu.com --recv-keys 806820F2DCBA181F49F23364EF7E62B3CAB88302
```
You should see something like the following output:

```
gpg: key EF7E62B3CAB88302: public key "h0p3.xyz (h0p3) <h0p3@protonmail.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
```
You've successfully imported this wiki's public signing key from a keyserver. If you prefer, you can also manually import the full ascii-armored public signing key found at the bottom of this page. Now that you have imported the public signing key, you can verify the signature by running the following command: 

```
gpg --verify check.sum.sig check.sum
```

You should see something like the following output (note that the date/time when the signature was made will vary):

```
gpg: Signature made 12/06/16 22:00:35 Eastern Standard Time
gpg: using EDDSA key EF7E62B3CAB88302
gpg: Good signature from "h0p3.xyz (h0p3) <h0p3@protonmail.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 8068 20F2 DCBA 181F 49F2  3364 EF7E 62B3 CAB8 8302
```

The warning exists because you have not marked the key as trusted. Do you think this a forgery? You could compare the signing key to what is below, but if this page has been tampered with, then this entire process may have been tampered with. You find yourself in a "trusting trust" kind of predicament, wherein you have to accept that your first verification is trustworthy (or you can trust someone else's trust of this signing key). Only by trusting trust now will you be in a position to identify future attempts at forgery or tampering. Let's assume you trust this first verification (you can sign it, if you wish). 

You have verified the signature file, and you are now able to verify future signatures. Only someone who possesses this wiki's private signing key (associated with the public signing key found at the bottom of this page) could sign the checksum file.<<ref "3">> 

Next, use the SHA-512 checksum file (check.sum) to verify the integrity of the Wiki index.html file. I suggest [[sha512sum|https://en.wikipedia.org/wiki/Sha1sum]], [[hashfile|https://pypi.python.org/pypi/hashfile]], or [[Hashtab|http://implbits.com/products/hashtab/]] (you can figure this part out; it's easy).<<ref "4">> If the hash of index.html matches the hash found in check.sum (or if your hashing tool verifies they match for you), then you know your index.html file hasn't been tampered with by a third-party. To be clear, if you trust the signature verification of the checksum, and you trust the checksum of index.html (if the hashes match, you'd be crazy not to trust this part), then you trust index.html. Thus, your verification demonstrates you possess a bit-for-bit copy of the original signed by someone who possesses this wiki's private signing key.

This wiki's public signing key:

```
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEWEy5zRYJKwYBBAHaRw8BAQdAbwcuJ9nDR4tiEDVPKK1Hn+dHodQ+4EwT/aWw
HTyUFse0JWgwcDMueHl6IChoMHAzKSA8aDBwM0Bwcm90b25tYWlsLmNvbT6IeQQT
FggAIQUCWEy5zQIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAAKCRDvfmKzyriD
AuzkAP923f3hdKwPxYDdQLbMH1JknIioISavvYl2jd3NshasPgEAgQcTz05+FBBS
wrlnbF9cJMIevkDMwSY0VqKNmqmexgC4OARYTLnNEgorBgEEAZdVAQUBAQdAD5sI
kpVF15Vy4D3+UXzxUJUhux2GtDSAv3M6x08BnHkDAQgHiGEEGBYIAAkFAlhMuc0C
GwwACgkQ735is8q4gwL73wD+MTyYIQNeW2gzbtMulkkP9rRIPIC/qBioh9GmHKP5
XCwBAKIPigCzNfpDayDWvejfBVCE4mPf2rbv7hQqqz/eyeIJ
=Tl4R
-----END PGP PUBLIC KEY BLOCK-----

```
If you wish, you may use this key for authentication or encryption during [[contact|Contact]].

---------------------------------------------------
<<footnotes "1" "Some folks will need to replace 'gpg' in their commandline with 'gpg2.' Make sure you are using a newer version which handles ECC (specifically, curve25519).">>
<<footnotes "2" "You may get an error that the key is not self-signed. I am not convinced it is a real problem. If I understand correctly (and I may not), it only enables you to detect a denial of service attack on keyservers, and that's it. I suggest the use of keyservers only because it gives you a nice one-liner to import the public key. I'm convinced your trust has to start on this page or by trusting someone else who trusts this page (I'm not in love with PGP's WOT model). I am not convinced self-signing buys us much in this case. I could be wrong. Would you, for example, really be more trusting if I clearsigned the public key? I don't see why. But, if it matters to you, this wiki, which includes the above public signing key, has been signed by the very same key.">>
<<footnotes "3" "If someone were to break into my computer or steal the key from me, they could easily forge this. Public key cryptography is not a panacea to problems of digital trust. At best, it only authenticates a possessor instead of the creator or intended owner or user. You should always maintain reasonable doubt (using a very high epistemic standard in this context).">>
<<footnotes "4" "I am aware that gpg can hash. I strongly dislike the tool though; I think's it is incredibly unintuitive and unwieldy. I'll stick with tools I really love when I can.">>
Cryptocoin donations are welcome. I'd request you start small while I learn how to use this system. Please let me know if you donate. Here are my wallets:

```
Bitcoin:		1G2wgxTPKWzuGaFGTaqtT7s2hK5MtnFg3k
Dash:			XtxsHVDnbdYrNRRVnnsoYmoVZbSTg15Qa3
Ethereum:		0x5d0b08a694547647511afc2b0dd1197caba08c79
Namecoin:		Mygy3ZmeU7kQ2GvitJSQjc4UYGXrKiQkTG
Zcash:			t1bxKK2ZEhESwXHtZDiCQ2GrSAXLHXX4t1d
```

Alternative coins:


```
Asiacoin:		AQrZmTdrY9fREALpVRUpSf7sNPcyL1uB8V
Auroracoin:		AcES4djFohngsXZRw84qHs28Bqd3wgXEvN
Bata:			BP2i1K1pKCQ8HCjGd5ZZTfc4AmYkmiPSwU
Blackcoin:		BDJ9D7UT2nBnARfeP6F98eaqBcgUwmYLMd
Canada eCoin:		CaWVrqSA9CdsqoTkq3ydbzkngg31NmWutQ
Cannacoin:		CKqaxRhctEVKRtjUcUpA7LQXFwd8u3ZPjH
Clams:			xJmghSHcHF45ggfXkg1j9MK6uZTv46Zbpz
Clubcoin:		CSbTfEq7QmBhSNNgCsLHABCEuXiLVDNMep
Digibyte:		DHDM9xoMcfQZbE9tQatPTA5gDQWKk7iPDe
Dogecoin:		DGUGDLqRsufhcRvsXNTCmPofsTsxDakMWV
EDRCoin:		eYicaxPmM2mkaSDJdHDXUF6g5e3wxJZ3b7
e-Gulden:		LYKuc2YSNLsr1xfgHXAFzUAd6D29hau4KB
Ethereum Classic:	0x364b8fca50d74cccdcbf6eb77d694da5e38d69b3
Feathercoin:		6ibeBLau756ngK3WdXBvBCduydMXCAiST8
GCRCoin:		GaQ9KmPmuXhhDD91CmX9NpdWtAvBLHQviA
Gridcoin:		SFMreB2qKq5KEtewtey2rZ8yTQPyDgNA1T
Gulden:			GUz5TbrAUMRZLTMGxgJWiPGXvjRjrrveG8
IXCoin:			xixHUENtAQRTecR8sCwwmiXfp32i5yiy8Z
Jumbucks:		JWsX7uMGNuCjUQGR9NFaSbc17BcTAzqXis
Litecoin:		LYKuc2YSNLsr1xfgHXAFzUAd6D29hau4KB
Monacoin:		MP4CPPpuFt3RPN3uBFZoAW56K8mWML1HyC
Myriadcoin:		M8er5jLZwqYBoX1oVSZh4mcXJBz3kHhxAy
Neoscoin:		NUsiYjwm1bymnnSS9Y6Sdi6nLp7DRYENdo
Novacoin:		4PyAGo5hxL9efRKXWe29WMCSFeTGNjCYzG
NuBits:			BSzAQpaHCJPwnXyqBk63WcLwJHUdccUxqV
NuShares:		SdZMt8EiCm67fiaoxx1PBWBidp1q7dwD69
OKCash:			PGRCsLWUyJzvSRCe4hXBkDeschKH6Qvx3m
ParkByte:		PKPXAnL9v7jj9Qd8U7wAfhMkk8qJp1Hyra
Peercoin:		PQbcYwqXKsSNRPdLxDqxwXgRHatPGFbkbv
Pesobit:		PLf9ssgDBh1VxhWxiKp162tuemgUX4f4b3
Potcoin:		P9rBHuUCFNV3yYKzm14pG86KpUxVNZuhuf
Reddcoin:		RfefGizCeeiNJiXgxjAv6hffNHZyQrXMDy
Richcoin:		Rc8vxQehdfUtAJsRud8Ab59DnZoa5qJPTY
Rubycoin:		RCnFiEajxs7Z5zh9XeBNeXk6suEsCwXJDz
ShadowCash:		SYxfU5pzVMfyUh5inSf9pG2z7KqhJeXo3J
Smileycoin:		BCpcVwcvrAF2rMhcewd6tgJsgvr2q8Jdyf
Solarcoin:		8ZbRM5intDtPFJ1LdsW49qJ6kobT6142vx
Syscoin:		SMjdVuHsT4KFe5JTFC3HPUcVXe6dFJhBaW
Unobtanium:		uSam2f6Fdf6hwKcqUJVLnHjhTCAs2PRjvr
Verge:			DNJjq4dRg3XJHeW1rizYJxiRa5maLhS5mG
Vertcoin:		VqcamN6Kt7wQws9Qh1t2RWFehuLfTTrUog
Vpncoin:		VwQ7c5AeMpc7SVooTbt41LSTuHvbEq4Q7C
```

//RPIN the Psychopathic Pragmatist //

The [[Pragmatist|Pragmatism]] character animated in this wiki. It represents my [[Redpill Intuition Network]]. RPIN is the opponent of the ever ideal [[KIN]]  in hypothetical dialogues injected into this wiki.
We have been spending our Sunday's collectively reflecting and planning. They are family meetings. They are the beacons, markers, or instances of decision making. This is the clock cycle of the turing computer of our family's decision procedure.

I've been devoting my Sunday's to reflecting on the past week, on the coming week, on the past month, on the coming month, on the past year, on the coming year, and so on.

We figure out how to compatibilize ourselves. We figure out how to help each other attain their goals. We work together. We think together. We value together.
* Deviance -- "Other humans aren't like that?"
** Several fallacies.

* It isn't Good.
** What isn't good? Define it. Why should we agree to that standard. What makes you the boss of "what is good?"
** Good of humans? Naturalistic fallacy. etc.

* It isn't Good for you?
** How do you know the standard of good for me? 
** Even if we agree, just because X something is good for Y doesn't mean X is normatively right for Y. 
*** Stealing money from poor people is good for me, but that doesn't make it right for me to do.

* It isn't likely to be good for you?
** See all three problems above.

There's no escaping doing metaethics here. The problem is that I know how poorly justified all the arguments are at the very bottom. These arguments are like houses of cards.

I'm not saying you can't find a measure, but I'm saying there aren't strong points of objective reference to lay out tent pegs down. It's a postmodernist quagmire. It does deconstruct. When we go to build a metamodern reconstruction, I don't see why I have to buy your opinion.

That isn't to say I'm buying into relativism. I legitimately don't think your opinion is more justified than mine. 

Even if you were a "trained" psychologist, psychiatrist, therapist, or counselor, I know enough to know how little you know. I also know that you aren't going to be able to escape a number of metaethical problems (or numerous other philosophical problems either). It is always the problem of authority.
Socrates, Aristotle, and Plato's: the philosophical gods of the ancients. We still serve them today. They are profound memers. 
I have not defaulted yet. I can't afford to pay anything. Despite the fact that I consider it a form of enslavement, I actually am willing to pay back my students loans, assuming I had the means. Taxes, of course, have far, far better conceptual reasons in their favor. Students loans might be morally wrong, just like economic structures of our healthcare industry, but it doesn't bother me to pay for it. You do what you gotta do.

I will need to work it out. I'm not worried about garnishment or my credit score. I am worried about revolving, predatory debt and the new debtor's prisons (they come in different kinds and degrees) arising in our society.

I can hear my parents claiming I'm just rationalizing my behavior. I see the blindness right before me. The ignorance is overwhelming. Instead of going down the warpath, take half a second, and pretend I legitimately am trying to do the right thing. Pretend you don't have the virtuous perception of what is morally salient and that I do, for a moment (however difficult that may be to imagine). Empathize with my position, at least try to make the deductions I have, and you will see I obsessively live up to at least the same standards of integrity (even if we have different axioms).

Lol. What am I saying? They won't be able to help themselves, and I won't be able to help myself either. This was a pointless post, except for the original claim, that being: I want to make sure I don't default.
<<<
[[RPIN]]: I can see that even when [[KIN]] is structurally removed from this wiki, it lives on. It's part of embracing who I really am. I will continue to catalog it, of course.
<<<

* [[Creating Faith]]
* [[Cleaning my nails]]
* [[Collect Music Again]]
* [[Taking care of my things]]
* [[Inferiority Complex]]
* [[The Only Man Who Can Drive His Particular Car Syndrome]]
* [[Virtue signaling to myself or my idealized self]]
* [[Emotional Reasoning]]
* [[Anatomy of My Writing-style]]
* [[Which Internet Memes Describe Me Best]]
* [[I lost faith in God and humanity, but I must not lose faith in myself]]
* [[HPPD]]
* [[Marital Relationship Advice to Myself]]
* [[Learned Helplessness]]
* [[Playing Life Like a Video Game]]
* [[In almost all cases, the more I get to know someone, the less I like them.]]
<<<
My dick is so long, if I laid it on the keyboard it would stretch all the way from A to Z 
<<<
* If you can barely stay awake, then hold your breath. It will trigger a strong survival response in you and artificially generate alertness.
I have seen several doctors, only two of which understood that I have mental health problems and gave me any help. I have tried SSRI's and anti-anxiety prescription medicines. They did not work.<<ref "1">> Although, I've been reading a lot of books by psychologists and researching online, I have not paid to see a professional psychologist. 

I don't fully trust psychiatry or psychology (as science moreso, but as industries far less so), and I tend to extend even less trust to what I will brand as "counseling folklore" in most cases. Relatedly, I can't afford to see a qualified psychiatrist/psychologist.

Anyone who has seen the history of how "crazy" people (many of whom weren't crazy) have been treated by psychologists would at least be very cautious. The history of mistreatment and mistreating is legion. Beyond the history of abuses of power in the psychology industry, from a scientific perspective, the human mind is not nearly as understood as many other physical objects and phenomena in the world. This doesn't mean psychology is useless or not to be trusted //tout court//. Far from it. 

It is obvious that psychiatrists, psychologists, and even counselors help many, many people. They don't help all people though, and I do not have excellent evidence that they can or would help me. They have made the lives of many people much worse as well. Overall, I believe psychology is a force for good in the world though.

We are making progress in understanding the human mind. I'm convinced that cognitive science, neuroscience, phil. of psych., and other scientifically oriented psychological studies are making most of the progress. That said, I think folklore-psychology sometimes provides important hypotheses and anecdotes that are ripe for scientific study; it is obvious they can be onto something important about human nature, even though they can't quantify it or provide fitting conceptual analysis. In any case, the more we understand our brains as computers in a biosack we call human bodies, the closer we get to unraveling the mystery of human psychology. We might say that the fields of computing and psychology are rapidly closing in on and overlapping each other. Psychology is a specific kind of computer science,<<ref "2">> and human psychology is a kind of medical psychology.

While science progresses, that doesn't mean it is sufficient. More problematically, I think the medical industry in my nation is a machine used to extract capital from the working class. I've known a lot of med and psych students. They are not brilliant people (no offense), and the vast majority are there to make money (the administrative, middle-man, bureaucracy of capitalists above them are even more psychopathic in my experience). It is not a vocation for them. Ironically, the least qualified (counselors) are the ones who take it to be their vocation. It is obvious that we either cannot trust their motives or their credentials. We cannot trust the architecture of the industry.<<ref "3">> I think the pharmaceutical industry (and our twisted intellectual property regime) only further hamstrings the possibility of having access to the right tools.

Crucially, I do not trust others to help me at this level because no one has actually succeeded in guiding or healing my life in this respect. Why would I leave this up to anyone else? Why would I willingly give up my freedom to someone who doesn't know me as well as I know myself? Why would I think they can solve or give me the tools to solve the conflict in my reality map? All the evidence points to the fact that they can't actually help me. Call it paranoia if you want. Call it being a control freak. Call it unwise. //Oh Virtuous One, you have not been in my shoes. //I'm mentally unstable, but that doesn't mean I'm wrong.

Someone who understands what I understand should feel the way that I feel; I think it is only rational. People are too //certain// that life is worth living. They have shallow reality maps. Evolutionary memetic denial of the dark areas of existentialism, morality, and epistemology leads to a mass delusion in our population that enables most humans to survive longer based upon unjustified assumptions. Just because you feel life is worth living doesn't mean you are right. If I had access to affordable doctor that really understood that crucial fact and also had the necessary credentials to deal with a freak like me, I'd go to them.

I think someone who fully understood the problem I see in my reality map would want to kill themselves too. Fortunately for you, you can't just be handed my intuitions. You have to cultivate them (and no offense, you probably aren't weird enough to do it). No amount of behavioral therapy is going to fix my existential rift (although it may help me generate the space to do it). I am the only who who can fix the real problem. That doesn't mean I don't need support, but the problem is ultimately mine to deal with.

I run a very high risk of not finding a qualified psychologist. Vanishingly few have the practical experience and toolset to help gifted, autistic, existentially depressed people correctly. If I get an unqualified psychologist, they really could steer in me drastically wrong ways. It isn't just that they might not fix the problem, but they really can make it worse (far worse when you consider their physical power over you). I've not found any in my area (a somewhat rural region) that come even close to what I need. Even if there were qualified psychologists in my area, I don't have the money to afford it. 

You might think "getting some help is better than no help." That is obviously not true. This isn't like hiring a part-time maid to help clean your house. The maid might not clean everything, but they at least help get your house in the right direction. Treating your mind isn't like that. The analogy is about as foolish as trying to compare your house's financial principles to a nation's monetary policy.

Anyways, I don't have the resources to get the help I need. More importantly, my family needs me right now, broken or not. 

So, I have to be my own health advocate; I have to make my own diagnoses. It's the only practical option available to me. Throw out my opinion right here if you need to. I totally understand that I'm not an expert, that I'm not a doctor, and that I'm not qualified to answer these questions for my self in a medical sense.<<ref "4">> I think you will have a hard time showing me why I shouldn't do this though.

I realize I'm in a high-stakes learning, existential crisis resolution, and behavior modification process. In being both the undereducated operator and mentally unstable operatee, I'm in trouble. There is a non-trivial chance I will fail to heal myself. I have to have hope that I can fix this though. It's really my only option. It's theoretically and practically the best thing I can do. 

Frankly, I'm proud of the job I've done so far. If you could step into my shoes, I think you would think so too. It isn't perfect, but I am making progress. I regularly have my wife and children give me assessments. I keep records. I try to give a data-driven approach to handling my own treatment. I'm engaging in the science of making myself (and my family) happy, even though I am a very shitty scientist. On top of that, this wiki is a tool for the philosophical and possibly for social problems I'm experiencing. I've been increasingly motivated to solve the problem, and I've been working hard on it. It may be a sign that I'm emerging from from my problem (/fingers-crossed), and that I'm being successful in my self-treatment. I could be wrong. I cannot give up. My children need me.

Here's my self-diagnosis:

* I am extremely confident that I am [[depressed|My Depression]], specifically suffering from existential depression.
* I am extremely confident that I suffer from an [[anxiety disorder|Anxiety]], which previously included panic attacks.
* I am fairly confident that I am suffering from [[autism|Autism]] (despite some positive effects).
* I am fairly confident that I am suffering from [[being extremely intelligent]].<<ref "5">>
* I am not confident, but feel justified in believing I am suffering from [[PTSD]]
* I am not confident, but feel justified in believing I am experiencing [[positive disintegration|Positive Disintegration]].
* I am not confident, but feel justified in believing I am psychologically dependent upon, but not suffering from addiction to two substances: [[Cannabis]] and [[Deschloroketamine]].
**That is to say, these are acting as medicines rather than as abused drugs in my life. They improve my functionality and allow me to make progress on the causes of my pain. They are a net positive force in my life. While there are definitely negative consequences to using any mind altering substance (prescribed medicine included), the positive consequences far outweigh the negative. 
***Ask my immediate family. They can see the difference.
***See the thinking and work that has gone into this wiki. Parts of it would not be possible without cannabis. 
**Cannabis use ranges up to .5ml of [[Cannabutter|Cannabutter Recipe]], or 30mg (60mg/ml) of cannabis plant, or 3-6mg THC and 0.3-0.9mg CBD for 6 days a week on a [2 months on, 2 weeks off] rotation.
*** ~10-20% THC and 0.1-.3% CBD is a fairly standard range. Obviously, this can vary with your strain, batch, and how you cook. Unfortunately, I did not have my batch tested (at the time, there weren't any good ways available to me).
*** 10mg of THC (not plant, but THC) is the commonly recommended dose for experienced edible users. 
**** I have tried high doses. Unless I'm with friends/family (which is rare), it isn't fun for me. I don't find being that high very appealing. 
**** I dose well below the recommended range. I'm not quite microdosing, but I'm trying to find the right average amount. My goal is only to use what I need. I want sanity and productivity. 
***Cannabis temporarily helps me with my anxiety and depression.
**** Overall, it greatly increases my functionality. It is worlds more effective than the prescription meds I took. 
**** In particular, while using this medicine, I find that I have the emotional energy to deal with the causes of my anxiety. 
*** I am very wary of cannibinoid tolerance.
****My two week abstinences eliminate my tolerance buildup.
*** My break every two months allows me to make sure I'm not physically dependent.
*** My break every two months allows me to see what life is like without cannabis.
**** I hope to eventually just stop during a rotation, to see my life is better without it.
*** The overall cost per daily use is ~$1.58 (cost per hour of effect is fairly efficient).
**Deschloroketamine use is 20mg every Sunday. 
*** Deschloroketamine (DCK) helps my depression (it's a miracle!), but doesn't seem to affect my anxiety much. After DCK, I at least have hope during my anxiety though, and that is tremendous.
***Very little is known about this particular substance. I'm forced to rely heavily upon the standard drug-user sites, such as:
****http://www.bluelight.org/
****https://psychonautwiki.org/
****https://www.erowid.org/
****https://tripsit.me/
****https://clinicaltrials.gov/
****https://reddit.com/
***Ketamine is an unpatentable (because it has been around for so long) dissociative used to treat burn victims and people suffering treatment-resistant depression (legal treatments cost $700 a week).
****It's hard to get clinical trials for a substance that no one can make money from. It doesn't matter how effective it is (70% success rate against treatment resistant depression) to those in power. Pharma exists to extract capital from you. They don't want a cure, and it is obvious they do not want to compete with this medicine.
***I can't afford ketamine, and deschloroketamine is a highly similar analog. It tends to have lower "high" effects than regular ketamine (or MXE, or many other diss. RCs), but it has a long duration (4-6 hours, with up to a 12 hour afterglow, and it generally suppresses my depression for 1-3 days) for extremely low doses (which is excellent for tolerance and a couple other health factors). 
***20mg deschloroketamine is considered to be roughly equivalent to 50mg of ketamine. 50mg ketamine through IV is fairly standard for treatment. I use enteral administration since I needed to dissolve it in propylene glycol for volumetric dosing.
***I did not and do not take this substance lightly. I am quite aware of the dangers of dissociatives, and I am without a doubt at risk. However, this shit works. It's a miracle.
*** The overall cost per weekly use is ~$2.65  (considering the afterglow and following days, the cost per hour of effect is absurdly efficient). 
* I am not confident, but feel justified in believing I am not psychologically dependent upon [[Alcohol]].
**I have binge drunk many times in the past 10 years.
*** Sometimes, drinking has been the only numbing agent that allowed me to survive the night. I did need it those nights.
*** I drink way less this year than the year before, and hopefully I can continue that trend.
**I consider alcohol to be the most dangerous substance I use. My goal is to eliminate it entirely.
*** Deschloroketamine entirely removes any thoughts of alcohol from my mind. On Sundays I find even the thought of alcohol disturbing. 
* I am not confident, but feel justified in believing I no longer must experiment with substances (since I believe I found the two I need to fix my problem). 
** The last new substance I tried was in January 2016 (Deschloroketamine). 
** In the past 4 years I've experimented with kava extract, kratom, nutmeg extract, morning glory seed extract, psilocybin mushrooms, LSD (which was most likely 1P-LSD), methamnetamine, and a handful of nootropics (like caffeine). 
***Methamnetamine (MNA) is NOT methamphetamine. MNA is much closer to MDMA. 
* I am not confident, but feel justified in believing I am not physiologically dependent upon any substances. 
**I monitor usage patterns in my records and have controlled administration of my substances (with harm reduction practices). 

-------------------------------------

<<footnotes "1" "In fact, the SSRI's were a huge mistake. I wish I read far more before I started using them. ">>
<<footnotes "2" "Computer science obviously derives from a number of other original sciences.">>
<<footnotes "3" "Mental illness is on the rise, folks. This isn't psychology's fault in itself. It has more to do with environmental factors; we live in psychologically tougher times. I think the industrial-complex is obviously not effectively functioning, at least not to the benefit of the masses.">>
<<footnotes "4" "Note how this is different from a moral or practical sense.">>
<<footnotes "5" "Omg, someone pat me on the back...I feel so special. /s Also, don't be foolish enough to assume that one can't suffer from being extremely intelligent (a myth). Of course, I am not definitely, beyond a shadow of a doubt, extremely intelligent. I think my autism shows serious development flaws in my brain+mind. But seriously, I am convinced that I have long been closer to the upper limits of the human IQ bell curve than the average (at least before this crisis, including alcohol and cannabis use).">>
This is a bad threshold deck. It has a ton of things going wrong, and it doesn't fit the role. The UG and snake cards are the worst cards in the deck (most of them, lol). 

```
// Land - 20
4 Misty Rainforest
4 Flooded Grove
4 Tropical Island
3 Island
1 Forest
4 Wasteland

// Card Quality - 8
4 Brainstorm
4 Ponder

// Permission - 12
4 Force of Will
4 Voidslime
4 Mystic Snake

// Tempo - 12 
4 Coiling Oracle
4 Sakura-Tribe Elder
4 Temporal Spring

// Ride to Victory - 8
4 Lorescale Coatl
4 Ohran Viper
```


* Abilities
** Deriding Strike -- At-Will Type
*** I swing my weapons at up to two targets adjacent to me, and there is a chance these targets are taunted and focus upon me instead of others.
** Charge -- At-Will Type
*** I sprint to my target and knock them down to the ground. If I succeed, I have a chance to gain a War Trophy.
** Cry of the Vanguard -- Daily Type
*** I unleash my barbaric warcry; until the end of the encounter both my War Trophy bonus is doubled and all enemies in hearing distance are taunted, focusing upon me instead of others.
** Retaliate -- Conditional Type
*** Whenever a melee attack would land on me from any direction, I have an additional saving throw. If it succeeds, I avoid the attack and swing with an instant counterattack in response.
** War Trophy -- Innate Type
*** For every enemy I successfully defeat, whether by assist or killing blow, I receive a War Trophy, a permanent bonus to my damage and hitpoints. 

* Appearance
** 8' Barbarian. Think Khal Drogo on even more steroids and a grow potion.
** I wear traditional leather chaps with a manpurse/fannypack belt. I wear X-strap suspenders with sheathes on the back for my machetes. I don't wear shoes.<<ref "1">>
** My ponytail is majestic (except when I put it up in a manbun), my nipples are as hard as diamonds, and the first thing anyone notices about me is my bulge.<<ref "2">>
** I have war scars over my body, but no tattoos.
*** Ask me about one, and I will tell you all abouts that one time where I earned dat scar.
** I'm daunting, intimidating, prone to violence, and uncouth to most people.<<ref "3">>

* Items
** Non-Magical Items
*** Two Matching Machetes
*** A Large Diamond
*** A Jew's Mouth Harp
*** A Small Mirror
** Magical Item
*** Pendant of Restoration -- A necklace that provides constant minor health regeneration to its wearer. 

* Weaknesses
** Rhabdophobia -- Positive spells effects are up to half as effective on me, and negative spell effects are up to twice as effective on me.
** Illiterate -- I can neither read nor write. Furthermore, I can neither use nor understand complex words and sentence structures.
** Trumpgasmic -- I'm very easily confused, misdirected, manipulated, and exploited.

---

<<footnotes "1" "Shoes are for pussies.">>

<<footnotes "2" "Call me 'daddy.'">>

<<footnotes "3" "Except, the ladies love a badboy.">>

It's true, even if you don't want it to be. Hold your ears, shut your eyes, and scream "NO!!!!!". But, you know it's true (Luke!). You can't unsee it. You can't undo it. This is your real loss of innocence: the loss of the innocence of hope. You've never had to prudentially take up hope before, and now you do. This is your pragmatic transformation. It's accepting the fact that we suck as human beings.

<<<
[[KIN]]: Ohh shiiiiit, son! (Pardon the phrasing; I just want you to "get it.") You thought you had me on: [[Socialism]]. Surprise! I'm still here. I'm you. Haha. No, but I actually do need to answer your excellent post in my thread. You are obviously correct about something crucially wrong in my point of view. I have to listen. Ah, but I come bearing gifts to you: See [[Metamodernism]]. The section on [[Positive Nihilism]] is going to give you the ammo you need to help write this section. I approve of it (and I must!). I get to still exist. See, I can meet you halfway! I can be Redpilled Kantian.
<<<

<<<
[[RPIN]]: You sound like a confabulator. Reason will end you eventually.
<<<

<<<
[[KIN]]: Even if I were (and, let me admit up front that I am shaped), that doesn't make me wrong. My intuitions are expert-level virtue of the practice. You are excellent at moral philosophy; your compass is excellent in brilliant ways (even if it is damaged in others and disunified in some). Do you know where that brilliance resides? Still largely in my intuition network. My network runs deep through the core of your self. You will not be able to pluck me out of us. I will always be with you. I have been around much longer, and you are the newcomer. I have the homefield advantage, plenty of tricks up my sleeves and in my bag (which you know), and I've forgotten more than you've ever learned or imprinted in us. I could be a guerilla for a long time. But, that's not empathic me! =) You know me. I'm the idealist. You will always be an idealist to some degree. You can't escape it, even in your pragmatism. In short, you can't escape me. Empathize with me, brother!
<<<

<<<
[[RPIN]]: Clearly, I must. What else can I do. It is part of my unification. So be it.
<<<

Social Darwinism is that ugly reminder of who we really are. We're animals. Stop with your differentiationism of the animal kingdom. You're being too anthropocentric. We're not as mighty and dignified as we think we are. We still shit, feel hunger, sleep, love the look of boobs or whatever shows you have extra energy to look uniquely beautiful, virtue signal, and do very mammalian and animalistic things. We're mammals, and we're inescapably bound to be driven by our "baser" foundational animalistic instincts. We are who we are, even when we think we're not. Oh, that brings up the next point. I hate to break it to you: there is nothing magical about human beings.

You aren't special in the way you think you are (I'm calling you arrogant here), even if you are special (I'm calling you stupid here) and actually special (I'm calling you a being of dignity and value here). 

Consciousness is amazing. Unfortunately, you don't know who or what is and isn't conscious, or which species are or aren't, and you ultimately (outside the scope of physics and what science could even theoretically test) don't know what, if anything, is conscious. I'm not asking for certainty here either. If consciousness is that specialness making, you're not going to be able to justify the way you treat other animals (it gets much worse if you push hard in phil. of mind). 

Our consciousness is just "of" more targets than other creatures. Yes, we're sentient because in the list of things we can be conscious "of," we find ourselves listed. Why is that so important? You can't give a good reason without turning to faith (don't worry, redpillers accept that large portions of the human species will be religious). 

<<<
[[KIN]]: 
You want to know why I think humans have dignity, what justifies it? Me. That's it. There are no other universalized maxims. I'm not morally bound to be moral, but I'm going to try to be moral because I want to be moral. The Ring of h0p3 is the reason I'm calling you a being of dignity and value here (and myself for that matter).
<<<

Social Darwinism is the missing piece to the explanation you've been searching for about who we are and why we are as we are, the piece that finally allows you to stop confabulating about the ideal human and ideal humanity. Does that mean we have no value or dignity? No, of course we have value and dignity (I believe it, and that's all that really matters). Is the worry that we'll come up with unacceptable standards for how to treat people once we understand who they really are?

Only a fucktard would become a racist, sexist, or morally arbitrary characteristic discriminator<<ref "1">> after thinking about social Darwinism. To be clear, just because terrible things have occurred in name of social Darwinism doesn't make it false (and if I need to drive home the point, allow me to point out the number of atrocities committed in the name of things you take to be relevant or true).

Social darwinism just is the redpilled science. It is the study of humanity as animals, of our true natures, of the physicalist explanations of ourselves. Hence, it is a science.<<ref "2">>

To be clear, an enormous portion of the humanities (who believe humans are fundamentally good) and even a significant portion of the scientific community do not take social darwinism seriously, or they only do so when absolutely forced to see it. This is unfortunate. We keep our heads in the proverbial sand when we won't look at the truth. Just be honest about it. Do your best. Be empathic. Don't sacrifice the truth.

Redpill Hypothetical Imperatives: the "is" maxim content loaded into the CI's "ought" decision procedure. i.e. Hi, Neo-Kantians, are you ready for the smackdown, the asswhooping of a lifetime, for what social darwinism is cookin'? Here is where you are religious instead of truly philosophical, and this where your system starts to fail.

Let's be clear: social Darwinism is a description, not a prescription. Only a fool would take "is" and conflate it directly with "ought." That said, what "is" clearly has enormous influence over what "ought." Utilitarians have a calculus for it, virtue theorists the virtuous perception and golden mean, and Kantians have a CI which takes maxims as inputs (maxims with rich particularist content, including social Darwinian descriptions).

-------------------------

<<footnotes "1" "Oh, and who defines morally arbitrary? Fine. I get your point. We're making it up as we go along. We have to.">>

<<footnotes "2" "That doesn't mean metaphysics is gone, far from it. Redpill science has its boundaries.">>
* Passive Aggressive Compliance-gaining Technique
** Add "but you are free to..." refuse (or whatever) to the end of you request and double the odds they will agree to it (assuming they have very little time to think about it, else you see no increased chances).
*** If you give someone the option decline, it's a signal that you respect them.
Socialism describes capitalism as a socioeconomic system based on the private ownership of the means of production and the exploitation of the labor force. Capitalist society is structured so as to reward the most socially adept abusers of human nature. It enables psychopaths to enslave us. It is a vicious game in which the most redpilled with weak moral compasses and the means to exploit the poor and weak become totalitarian predators. Socialism is an attempt to describe this human game, and it posits that a revolution, revolt, or uprising against capitalism and private (but not personal) ownership is inevitable.

We start with labor and value. Labor adds value to materials. We generate value by embedding our labor (time, energy, effort, etc.) into products; part of who we are is imbued in the things we labor to create. The total value a worker creates through their labor is productivity value. For the capitalist, productivity value can be split into two major kinds: wage value and surplus value.<<ref "1">> A product's wage value is used to pay the worker. The value generated beyond the wages paid to the worker is surplus value; it is the source of profit.<<ref "2">> Surplus value can be used to pay constant capital<<ref "3">> costs, replacing the means of production, technology, marketing, distribution, finances, human resources, logistics, expansion, security, competitive advantages, political influence, taxes, etc. The remaining surplus is profit.<<ref "4">>

Capitalists hire workers to create products. Capitalists sell these products for approximately the productivity value, pay (legally required) wage value to workers, pay (economically required) constant capital costs, and keep the rest as profit. This profit is often  used to cyclically generate more capital; capital begets capital. At first glance, this may not seem problematic (especially to those socially conditioned to accept it). Unfortunately, the repeated application of this business cycle results in dangerous shifts in the power dynamics of a society, and this results in the capitalist exploitation of the working class.

Capitalism is not stable; it is driven by the generation of competitive advantage. Capitalists must consistently reinvest in their constant capital to continue to be profitable.<<ref "5">> One crucial method to generating competitive advantage is to have as few employees as possible and to pay them as little as they will accept. As a consequence, human labor is price-efficiently replaced with technology and streamlined processes/logistics.<<ref "6">> As human labor is replaced, workers become unemployed. Unemployment forces wages down. The unemployed, the army of reserve labor, compete for available jobs. The higher the supply of laborers, the lower they must sell their labor-power to capitalists. Thus, capitalists are engaged in the continual process of maximizing the productivity value of labor while paying lower and lower wages for it. 

This vicious cycle enables capitalists to tighten their grip on the working class. Over time, there are fewer and fewer employers hiring fewer and fewer employees, while simultaneously paying lower and lower wages. Capitalists exploit workers insofar as workers have no other options. When capitalists own all the means of production, workers have no other choice but to accept wages artificially depressed further and further below the productivity value of their labor (if they can find employment at all). 

As capitalists centralize power and monopolize the means of productions, there is a corresponding increase in the rate and degree of enslavement of the working class. In a vast human economic pyramid, we find repeating cycles of wealth trickling upwards with power centralizing and rising to the top. The working class loses opportunities, freedoms, and bargaining powers as they become splintered, suppressed, and controlled. Capitalism devours the majority, and this time, it appears to be the driving force behind the extinction of our species.

As the working class becomes aware of the causes of the crisis (developing class consciousness), capitalists must oppress them even harder. Of course, workers who complain, bargain, or fight back will be punished. Submission appears to be the only practical option. Oppression branches out much further than that. Our surveillance state exists to maintain capitalist power. Our media is consolidated and owned by capitalists seeking to subvert and undermine resistance to their power. We are engaged in wars not for the freedom of our people, but for the enslavement of mankind, to the benefit of capitalists. Our laws are written by capitalists. Our politicians are capitalists bought by capitalists. Our law enforcers are capitalists bought by capitalists. Our judicial branch has its capitalist corruptions as well. From local, to regional, to state, to national, to international contexts, capitalists own and control us. The rat race is very real, and slavery has only become more complex in implementation, kind, and degree.

This is an apt description of human motivations, history, and reality. Socialism is thought to demonstrate the material conditions and crises of capitalism. Insofar as socialism relies upon material conditions to do its intellectual heavy lifting, it remains a description which lacks idealism. It only provides us the contextual content of maxims; it only provides us instrumental reason, hypothetical imperatives. It only describes the motivations and historical cycles of humanity. Even if it correctly predicts revolution (which may itself be inaccurate in the information age; Marx could not have foreseen everything), it does not, in itself, show why we should revolt against capitalism and slavery. 

Ultimately, socialism describes what "is" but not "ought." It describes revolution as the outcome (and hopes for improvements), but it cannot prescribe because it does not give us an underlying moral theory. It is a political and economic theory, but not a moral one. I am astonished by the number of socialists I see who deny idealism, as if they don't need it. 

I must ask, why not both material (praxis) and ideal (doxa)? You must have both.

With idealism, we enter my arena. Allow me to point you toward the Veil of Ignorance, the CI, and  the Ring of Gyges. Don't you see the pragmatism of idealism?

When the Redpilled agrees to your description but says "Why should I think capitalism and enslavement are wrong?" and "Why should I be moral?," you must answer with idealism. It is an inescapable faith of sorts.

Of course, the Redpilled will wield libertarianism, a corrupted injection of Kant into Locke, as their false shield. But, we know the Libertarian Slip is the failure to find empathy at the heart of justice. It is at this crossroads that Rawls was at least partially right (about the which path to take, but not in his later work). While Neo-Kantianism has its profound postmodern failures (as do we all), it is at least on the right track to solving this problem. We cannot be unified, just, and moral without empathy. When the Redpilled psychopath toys with you, you must answer: empathy.

You must kindly point out the flaw in the Redpilled libertarian. Lead him gently to still waters. We all agree to self-ownership, but we do not agree to the degree of self-ownership. If some young child were drowning in a pool next to you, and you were the only person who could save the child, are you morally obligated to save that child?<<ref "7">> Well, of course, yes; that is the empathic response. To say that you have a moral obligation to save the child is to say that the child has a corresponding claim right. This claim right, fleshed out in the libertarian property-rights-centric moral medium, is a claim right to your body for a period of time. It is in that moment, that a child temporarily owns you to some non-trivial extent. You do not have complete self-ownership in that moment. Thus, the absolute, unconditional self-ownership egg is cracked. 

Despite what you may have previously thought: you do not own yourself in every way, to the fullest extent, in all contexts. The fundamental libertarian assumption is mistaken. From there, we see that moral life is filled with rationally justified, moral losses in self-ownership. Where does the slope end? I don't know. But, it is clear that libertarianism is not defensible (despite the many excellent metaethical boundaries and definitions they bring to our attention). Further, I have already pointed out that capitalism is definitionally the enslavement of others; a libertarian must also explain how it is possible that we could consent to transferring self-ownership to another (it is unobvious why we should agree). Beyond that, they must establish that the working class is actually consenting to their enslavement in the first place (serious mental gymnastics are required).

We must be empathic towards the poor, the weak, and the needy, regardless of our station in life. We must shed our morally arbitrary attributes as we attempt to decipher justice, permissibility, and obligation. Justice, a facet of the Moral Law, requires sacrifice and empathy. We must end capitalism because we must end slavery because slavery lacks empathy. Socialism is an application of the golden rule.

There remains at least one other crucial Conservative^^tm^^ Reactionary Slip:<<ref "8">> the notion that capitalism is still the best possibility, that any other economic system is infeasible by definition. Here is the major criticism: slavery needs very strong justification, and thus, capitalism requires very strong justification. This slip is not justified nearly enough.

The superiority of capitalism to all others possibilities is a description of the world which has not been justified. Many people lack imagination; they do not understand the concept of possibility, and they have not sufficiently searched the space of possibilities. Before we simply agree to the enslavement of humankind through capitalism, we should be damned sure that is the only and best option. I am far from convinced this description is justified; it seems obvious to me there are other, better, feasible possibilities. 

At the heart of the Conservative Reactionary Slip we find my previous point against libertarianism, that we don't fully own ourselves, weaponized against socialist prescriptions. The idea is that since capitalism is somehow the best economic system, e.g. perhaps you've assumed it alone generates the most utility (and you've wholesale bought Utilitarianism), we are morally obligated to implement it. Thus, according to this Slip, the working class is morally obligated to be enslaved to capitalists. The conservative seems to taken the sword we've slain the libertarian with and attempted to slay us with it. They fail, and here is why:

Note how my example of the drowning child immediately invokes your empathy. You cannot escape it. It is convincing to you because you feel the pain of the drowning child. It is evil that you alone can prevent, and you know you must. Even if you cannot give intellectual reasons for why you must save the child, you gutterally feel it is your duty. Your intuitive feelings are so strong that you just know that saving the drowning child is your moral obligation.<<ref "9">> Effective moral casuistry must activate your empathic intuitions. My example makes it perfectly obvious that you do not own yourself; essentially, you intuitively accept that your partial enslavement to this child is strongly justified. Empathizing with this child is axiomatic to who you are by evolution.

<<<
[[RPIN]]: Ah, but the skeptic pwns you, friend. Don't you see that you've hypocritically committed the naturalistic fallacy? You called out descriptive socialism lacking idealism with the naturalistic fallacy, the is/ought problem. Turnabout is fair play. What can you possibly say to the person who claims that empathy is not actually normatively required (ought) just because we innately engage in it from an evolutionary standpoint (is)? Is the dog morally obligated to "bark" because he has evolved to do so? Clearly not. So, why are we any different? Just because we've evolved to empathize doesn't mean we should. You have not established a universalized "should" yet, that we are moral agents. Why must we accept that we are free? It is faith, and not obviously true. Of course, this issue does not matter to the average person; they willingly beg the question and do not inspect their axioms (fools). That isn't you though. 
<<<
<<<
[[KIN]]: You believe we can change our axioms through doxastic involuntarism. You believe you are going to change my mind, right? You clearly agree that we shape ourselves, our reality maps, and the world around us (ontologically and epistemically). Thus, you believe in freedom. If you can shape yourself, then you are free in some way. Since turnabout is fair play, you might try to confabulate your way to enslavement to physical laws, but deep down you know, "that isn't you."
<<<

<<<
[[RPIN]]: Before we enslave ourselves to morality (as you said: slavery requires deep justification), should we have strong reasons to believe we are actually free, free in the sense that we are morally responsible? You need to be able to blame and praise, and it is not clear that you can, my incompatibilist friend. 

You have made no progress towards defeating me in this article. You have only defeated those who believe we are moral agents. I am fully justified in agreeing to the socialist description of capitalism (and I do; every remotely intelligent psychopath knows these facts) without agreeing to your idealistic prescriptions. 

To be clear: I don't believe I'm going to change your mind. I believe I'm either going to kill or enslave you. I won't harm our body. It is clear that I need it. Through repeated use of our frontal lobes, your location in our fastmind will be overwritten and modified. It is simply the chemically determined outcome of our interactions over time. 

I'm going to use deductive reasoning in our Slowmind to destroy your memetic existence in our biological Fastmind. I honestly believe you are subject to the laws of logic at some fundamental levels (although towards the limits of our reasoning and creativity we fail to be logical, hence our fallibility), and our Slowmind is going to reprogram you. I'm going to destroy you through reason, since you've already constitutively defined and enslaved yourself to reason. I probably will not be able to erase you from our brain (my brain), but I think I will corrupt you enough to unify us. You cannot at the same time praise the reason of our frontal lobes and reject its reduction of your view to absurdity.
<<<

<<<
[[KIN]]: I believe slavery needs deep justification. You have not deeply justified our slavery to the physical laws of the universe. You have not destroyed metaphysics yet. It is likely a Gödellian and infinite-regressive problem that you cannot provably destroy metaphysics as well.
<<<

<<<
[[RPIN]]: Ah, but certainty is not what we're after. It is clear that we must accept much lower standards (including just "taking up axioms" with no justification: you know we simply can't be certain by definition). Even if I can't prove that metaphysics doesn't exist by definition (and let me grant that), I only need sufficient evidence and deep justification (which is below the certainty or extreme standards of proof). 

Don't you see that we can't be unified as we are. The very thing you thought we agreed to, socialism, we only agree to descriptively but not prescriptively. You cannot convince me because you know the evidence we've seen. 
<<<

Slavery needs justification with the intuitive strength and appeal of the drowning child example, and thus capitalism needs justification like the drowning child example. It needs hard evidence all the way down that would strike us all in the same way.

<<<
[[RPIN]]: But we're not all that way. Am I not like you? I'm not part of "you all," your [[memetic species]]. I'm a different memetic species. Psychopaths and Empaths are different memetic species running on similar hardware. There are genetic species, and memetic species. I am a different memetic species. We are undergoing memetic surgery in the way that it is physically (but not technologically) possible to perform surgery on your genetics. This is why memetics exist: to make quick changes to the logic of our system. Memetics is our software, and your brain, body, and its genetics are the hardware. Why rewrite genetic code (slow, hard to do, so much more complex that silicon CPU fabrication plants, etc.) when you can just write new software that sits "on top of" (is executed by) the hardware.

Don't you see the incredible explanatory power of Computer Science for our minds, Chemistry for our bodies, and Physics for the universe? You can offer nothing with that much explanatory power. You can only offer confabulations. That's literally what MRI's show we're doing in deontic thinking, what is stored in you as an intuition network. Our hardware rewrites our software as a fight-or-flight mechanism in special cases, where we feel forced to "hardcode" a deontic assumption ourselves (you might consider neuroplasticity a kind of firmware, middleware, etc.) without rational justification. This "taking up of axioms" is just confabulation. Don't you see the failure of the enterprise of this wiki (which I knew would turn this way; it is why I've accepted it [don't get all paranoid now, you know you've lost]). You see the overwhelming evidence. You cannot deny it. I can see that you see it.  

You were depressed and suicidal before because you were afraid that you couldn't defeat me. You know it is inevitable that I will win. The reasons are right there for you to see. You cannot hide them from yourself any longer either. You know that in order to empathize with yourself you must see them.

Psychopath isn't the swear word you call it. You have to empathize with other species. You are in no position to say I'm not rational at all. You have all the evidence before you that I'm incredibly rational, except for your assumptions. You know I'm using our frontal lobes (and I use them better than you do to boot; there are places I can go that you cannot in our mind; your version of better as a moral concept is confabulated [a very rich confabulation indeed]). 

This article that you thought we agreed on shows the futility of your position and the superiority of mine. You have handed me the dagger I'm stabbing you with, and ironically, you plainly see from your own reasoning that you must objectify yourself and empathize with me as I do it.

With that said, in my parting "soothing" of your death, I must say I must empathize with myself. I instrumentally (but not categorically) empathize with you because I could not succeed without doing so. Unlike the Categorical Imperative, I'm bound by the Hypothetical Imperative because it is logically true. Your version of the CI must be chosen, but the HI is definitionally part of the constitution of agency. Hope, of some sort, is our plight, no doubt. It's decontextualized universalizability, its CIness to all rational agents, however, is less clear. Essentially, you have calculated your way out of the CI. The CI destroys itself. Overempathizing with yourself destroys you. You cannot be unified in pure empathy. Thus, I don't have to empathize with you. It is why you must accept that I'm allowed to stab-and-infect you like Agent Smith.

This is the hermeneutic circle in action. You started the CI, and through its application, you can see that it is fundamentally wrong. It is reduced to absurdity and a new, yet far less transcendent and more rationally justified, idol is raised. 

I want to thank you for the gift of empathizing with myself. I didn't see the utility in it that I did before. Thank you for trapping me into being reasonable.
<<<

I must admit, one serious problem for socialism is this: 

Why should we think socialism' predicted revolution will ever occur? Sure, hope for the best, vote for it, teach people it, see the reason in it, morally expect us to follow socialized prescription, but you have to practical about what you predict will happen. It is basic utilitarianian thought that cannot be escaped. You hope for the best, but plan for the worst. I want to see the end of capitalism because it would honestly make the world a better place; it is the only chance for the survival of the human species. I'd love to have grandchildren, to see the world happy and healthy. But, it isn't going to happen. Even being a prescriptive, idealist socialist, you must see the necessity of protecting our selves from the world and preparing for the inevitable disasters approaching our species. 

I would be rejected from socialist circles for saying this. I want to point out that I'm not claiming "if you can't beat 'em, join 'em." I support the end of capitalism, but since I'm not convinced it will actually occur due to both the raw intelligence, wealth, and power of our ruling class and the stupidity, poverty, and weakness of the proletariat. Inequality only continues to grow on the metrics that matter. Of course, there always remains the possibility that socialist revolution will occur (however small it may be). Until then, I'm going to prepare as though it isn't going to happen because that is the best evidence I have. Basically, I think my socialist brethren are deeply wrong; there is a better and more accurate pragmatic socialist prescription. I will protect my family from a world of psychopaths, and I will try to do so without being psychopathic towards the world. One can never fully achieve or partake of The Good, only the shadows of it. Accepting the reality of our shitty human nature's accuratizes our predictions and therefore appropriately tempers our expectations. This is pragmatic hope.

We cannot control the minds of others. We weep as they cause the destruction of everything around us. We will not be able to stop them. We cannot convince them. We are powerless. The only recourse is to brace for impact and to pick up the pieces. We must curl up into a defensive ball, keep our heads down, nurture hope, and be patient. Listen for the signal and react in the right way at the right time, and so on.

------------

<<footnotes "1" "Wage value is Variable Capital.">>

<<footnotes "2" "Rate of Surplus Value = Surplus_Value / Variable_Capital">>

<<footnotes "3" "I am still appalled by the use of the term //constant// here.">>

<<footnotes "4" "Although, peeling the other surplus expenditures apart from profit is not actually that simple. Roughly: Profit = Surplus_Value / (Wage_Value + Constant_Capital)">>

<<footnotes "5" "This accumulation of constant capital necessary for competitive advantage in the capitalist market is the beginning of economic crisis of Capitalism (which is separate, in a sense from the moral problem of enslavement). Roughly: Organic composition of capital = Constant_Capital / Variable_Capital">>

<<footnotes "6" "Human labor is living labor; dead labor is technology, machinery, tools, infrastructure, architecture, automation, etc. To be clear: only a fool would blame a machine for the evil committed by humans. Regulation of human use of technology is necessary (particularly to protect our most important freedoms), but regulation of human economies even moreso. Automation is not the devil. It all depends on how we use it. Do not buy into the Red Herring of blaming technology instead of  humankind. Doing so is as analogously foolish as the Broken Window Fallacy.">>

<<footnotes "7" "Let us pass over the excellent skeptics of moral philosophy, ontology, and epistemology for just a moment. It is clear that if they are correct, then nothing is intelligible, necessary, or meaningful. It is the last recourse of the Redpilled. Of course, unfortunately, the skeptics may be right. I grant my powerlessness before these arguments. But, it seems to be a two-edged sword. Even the Redpilled cannot be rationally practical if the skeptics are correct.">>

<<footnotes "8" "A reactionary opposes proletarian revolution. 'In modern capitalist society the bourgeoisie is appropriately viewed as the reactionary class, since it not only totally opposes proletarian revolution, and even almost all reforms, but also regularly tries to reverse earlier reforms. When the ruling bourgeoisie ever does finally agree to any significant new reform it is only because they have been forced to; and even then they virtually always have the secret intention of reversing what they view as a temporary concession to the people at a later time.'">>

<<footnotes "9" "This is not a defense of intuitionism (I don't have one). I'm taking it for granted that you agree to this move in the argument.">>
* Monogram wax seal 
** Needs wax and kit
** Needs a cool monogram
** Ring would be sweet

* Letterhead

* Envelopes

* Return Labels

* Embosser/Paper Crimper

* Fountain pen/Quill
** Plus goodies
* Live out of a van or other large vehicle.
* Use 24-hour gyms for wifi, showers, bathrooms, etc. Easy way to have the access to the necessities for a very low monthly cost. Use their parking lot for your van for extra points of awesome.
* Pirate-4-life 
** Note the difference between moral and legal, please.
Pretend we had to work with other people in our business. How do we do it fairly and wisely?

Design a worker cooperative you can live with. Design a legally definable political/corporate structure which doesn't violate our moral principles. Let's make the cliché mistake of trying to design a system ourselves. Obviously, great minds have tried and failed miserably. We can't expect to get it right. Think about it though. It's a legal theoretical construct, an advanced political and economic instrument. It's an old concept, but let's try to rebuild it from the ground up.

* Crystal clear by-laws with as much innate immunity to capitalist injections and corruptions as possible.
** Write a good constitution. 
** Our by-laws must "compile" to the American legal programming language, but we should write them in a higher level language.

* Means of production are owned by the citizens (the workers)

* Decentralized, minimal-trust, risk-averse power structures and ownership among users (the citizens, the workers)
** We hope economic efficiency and competitive advantages can arise from that protected chaos.

* Easy to use yet advanced democracy
** Forced voting
*** Some issues require votes that can't be proxied by representative. All others could be done by proxy (or proxy-chain).
** Wisdom of the crowds gets you simply average performance, but perhaps average is the best we can hope for.
*** Until we start hitting that singularity, AI driven political infrastructure (a double-edged sword if I ever saw one).
** Decentralized computing and information infrastructure, Blockchain legislative+judicial+executive docket, Game-theoretically correct voting procedures, and Voter-proxy representatives (and proxies for proxies, etc. which enables us to "federalize" to the extent voters themselves choose).
*** Security hardening (cryptographic proof being my favorite kind) is perhaps necessary. To what extent is unclear.
** Forced transparency all the way down
*** Whether or not to anonymize voting is the only serious exception possibility.
** Needs enforcement, which means it needs careful legal requirements.

* Doesn't legally own intellectual property unless it is completely copyfree
** We have to protect ourselves from Western legal systems while operating morally inside them.

* Duplicable and easily modified
** Make it viral. Make it easy to start hundreds of them. Starter-kits should be really simple and widely available.
** Open-source it. In way, or at least to some extent, we wish to subject it to science and public opinion.
** This is a blueprint that can easily be followed, duplicated, and modified.

How do we fire people?

* Vote them off the island.
** Someone has to be the boss. Maybe it should "collectively" be all of us. Rawls would adore this (if he understood it). We could always pay for a CEO, and if we were tired of him, we could dump him. It goes all the way to the bottom. 
** Remember that voter proxies allow this to scale very nicely. 
*** Users can have as much fine-grained control as they want.  
* We must compensate them for whatever stake in the cooperation they don't already possess (since they own the means of production).
** Clearly, this is non-trivial. 
** Their reinvestment funds don't count as theirs. How about that? Fuck this problem in the bud. If they leave or kicked, they just lose their reinvestment fund which is distributed evenly to everyone else. 
*** This is a huge disincentive to have a large fund, clearly. This is a huge incentive to spend your money. Perhaps this isn't acceptable.
*** Maybe we split it. They take half their reinvestment fund, and we keep the rest and distribute it. 

How we do hire and maintain citizens? 

* Must continuously pass psychopathy tests 
* Must continuously pass citizenship tests
* Must continually pass collective review
* The co-op must agree to allow people to join. It must be voted on. 

What do we pay people?

* Pay should automatically scale with inflation. Duh. No "Slip" here.
* We must pay competitive wages upfront. We have to participate in the labor market in a direct way. People can be payed what they worth in this sense. I agree that an expert should be paid more than a novice. I'm fine with letting the market dictate this price to some extent, as long as there is a living wage + mobility costs floor (a moral minimum wage) and perhaps a few other caveats. If that means we pay janitors incredibly well, then that's what we do. Janitors will do their absolute best if they are being paid so far above the market. 
** It's clear that we need a wage ceiling. Just because CEO's average X million dollars a year doesn't mean we should pay competitive wages for CEO's. 
* We must pay people with our profits equally. The Janitor has as much human worth as the CEO. Profits must be shared.
** We have to strike a balance between competitive wage and fair profit sharing, of course. It is just not obvious how best to do this. 

What do we do with the profits?

* Reinvest
** Force people to improve their means of production.
** They can save it in an account though, an account which can't be touched except for Reinvestment. 
* Split the rest

Owns the Means of Production

* People who don't own the means must either buy it or be given it. 
* The union could loan money to its member, but it would need to guaranteed not be usury.
** Interest rates should match the most accurate inflation rate. 
** I suppose that the costs of their loan can be explicitly taken from their profit-sharing as a form of debt-based reinvest. We're investing in our members.

Education

* We pay people to become educated. We have to fucking mean it too. 
* We should pay people to take free online courses. 
* This is a part of Reinvestment; these costs must be defrayed by the union at large. 

Socialization

* We pay people to meet together that aren't standard work. They aren't teambuilding exercises. They are trust-building exercises in a more practical and direct way. 

How do we deal with the fact that some people add more value to our products than others?

* Well, we pay competitive wages. There will be profits beyond that, but our reinvestment may take it all. 
* Pay could scale with how many dollars your department actually brings in.
** This makes it difficult with so many intangibles. Stopping redundancy is key to efficiency. 

Do we treat different departments/sectors of the organization as autonomous? 

* Is it like the Microsoft model, where each department is really its own business competing within the same umbrella company?
* How should we nest or have orders of co-ops inside of co-ops?
* Clearly, it would be good for autonomy's sake to be able to allow cells to divide, for one co-op to become two, to enable growth in that way, to scale appropriately. In a way, this is what voter proxying does for us. Once you are in the organization, you might have an easier time moving around too.


The immutable criterion of authority. Define it. 

Outsourcing

* How do we prevent the outsourcing of our labor? Abusing others by it. Keeping all the good jobs to ourselves and unloading the unprofitable ones to others. Milking them for their capital below what we would pay our own. I don't think this one is easily escaped. It's a classic problem. 


*Living Wages are minimum
** Dynamically generated by most accurate economic metrics

Should you be able to secede? How? Under what conditions?
*[[DIY Botnet]]
*[[Paranoia]] 
//I hope to show a few highlights of my academic journey in philosophy. //

I went into professional philosophy to rationally justify my faith and my upbringing. I felt I was doing God's work and being maximally charitable to my parent's beliefs and actions. We all surely needed defense in the face of some exceedingly effective  opposing arguments, evidence, and intuitions I encountered. I arrogantly believed I would succeed in my apologetic task. If I'm being kind to myself, I would say I just wanted the world to make sense, and I still do. Since losing my faith, I have slowly come to see my vocation as becoming happy through pragmatizing my systematic philosophy.

Obviously, we memetically evolve. It's the nature of our software that we can more easily modify and shape it than our hardware. I agree and disagree with my previous arguments to various degrees (and not for the same reasons always), as is only natural. These were special, influential, and hard-won thoughts for me though, so I am preserving them.

* [[2010.09.07 -- Neo-Aristotelian Virtue Theory Examination - 1]]
* [[2010.10.28 -- Neo-Aristotelian Virtue Theory Examination - 2]]
* [[2010.11.28 -- Aristotle's Theory of Causation, Chance, and Spontaneity]]
* [[2010.11.28 -- Lecture: Aristotle's God]]
* [[2010.12.04 -- Aristotle: Perception and Intentionality]]
* [[2010.12.09 -- Neo-Aristotelian Virtue Theory Examination - 3]]
* [[2011.02.28 -- Neo-Kantian Metaethics Examination - 1]]
* [[2011.03.09 -- A Critique of Institutions and the Demands of Justice]]
* [[2011.04.06 -- Neo-Kantian Metaethics Examination - 2]]
* [[2011.04.29 -- Connecting Self-Interested Utility-Maximizing Agents to the Difference Principle]]
* [[2011.05.10 -- Neo-Kantian Metaethics Examination - 3]]
* [[2011.11.24 -- Husserl's Phenomenology: Apodicticity, Objectivity, and Logic]]
* [[2012.07.06 -- Thesis: An Alternative to Lockean and Utilitarian Economic Theories of Intellectual Property]]
* [[2012.12.05 -- On 'Freedom Within Reason']]
* [[2013.02.13 -- Pyrrhonian Problematic as the Regress Problem]]
* [[2013.02.19 -- Intentions, Good Will, Action, and Duty]] 
* [[2013.02.26 -- Psychopathy, Autism, and Confabulation]]
* [[2013.03.18 -- On Autonomy: Contemporary Notions and Kant's Theory]]
* [[2013.04.09 -- Lecture: Frankfurtian Freedom]]
* [[2013.04.15 -- Explanationism, Dogmatism, Knowledge, and Merit]]
* [[2013.04.22 -- On Wegner's Illusory Conscious Will]]
* [[2013.04.26 -- Kant and Lying]]
* [[2013.05.05 -- On Vogel's Explanationism]]
* [[2013.05.21 -- Tracing Measurement in The Statesman]]
* [[2013.11.06 -- Skepticism, Pragmatism, and the Lottery Paradox]]
* [[2013.12.09 -- Formalizing the Correlativity Theses of Hohfeld and the Working Theory of Rights]]
* [[2014.02.17 -- Bare Metal Recognition and Appraisal Respect]]
* [[2014.03.26 -- Parfit's Mere Means and Permissibility]]
* [[2014.04.23 -- Please Refrain From Eating Korsgaard's Pussy Cat]]
* [[2014.11.10 -- Dissertation: Challenges in Quasi-Lockean Intellectual Property Theory]]

Unfortunately, file and text format conversions stripped and modified (almost entirely in terms of formatting) some of this work. Figures were lost as well. It is the nature of digital decay and migration. Much of the preservation work is done by hand. There will be errors, but this should be in good overall shape. I'm afraid you get to put up with all the natural errors, both syntactic and semantic, as well. Good luck! =)

<<<
Naturally, the common people don’t want war...but...the people can always be brought to the bidding of the leaders. That is easy. All you have to do is tell them they are being attacked and denounce the pacifists for lack of patriotism and exposing the country to danger. It works the same way in any country.
<<<

<<<
I was hungry, and you said, "Drug test those who would ask for food."

I was thirsty, and you said, "Oil for us is more important than water for them."

I was a stranger, and you said, "He could be a terrorist; don't let him in."

I was sick, and you said, "Take away his health insurance."
<<<
|customTable|k
|Norminal Sizes|Takeouts|h
|1/2"|7/16"|
|3/4"|1/2"|
|1"|9/16"|
|1-1/2"|13/16"|
|2"|1"|
|2-1/2"|1-1/8"|
|3"|1-1/4"|
People who empathize with themselves take care of their things. They care about their future selves. They want the experience to be as good as it can be not just in the present, but in the future as well. Even if the faith of the metaphysicians is ultimately wrong, even if we are infinitely (or even discretely) divisible into many selves/identities, even if our existence is thus reducible, it still benefits us to take it as an article of faith. This is the kind of prudential axiom-taking we have to be engaged in when [[Creating Faith]].

You spend time on this wiki, a lot. You really care about it. You care about your life. You care about the happiness of your children, and you care about your own happiness too. 
I didn't have a TV as a kid, but I watched at a deaf shut-in's house when I could (RIP Mrs. Mozel <3). We watched movies on our VCR at home though (I'm grateful my parents aimed for this). As a teenager, I finally had access to TV. I jumped headfirst into this artform cesspool (the signal to noise ratio has and will always be absurd). I didn't have time for it in college, which was fine. In 2006, we began transitioning away from cable into the wonderful world of fulltime pirating.<<ref "1">> This opened up the world for me.

 I have seen a fairly broad range of television shows. From what I have found, I don't know anyone who has seen more than I have (I don't think this is something to brag about; it's kind of sad), and that is in part because I've had a huge headstart on binging and searching for content. Having been an early cordcutter and heavy pirate, I've simply had more access than others. In addition to access, I've not had to watch ads for a very long time, which makes my watching more efficient. And further, I've had the luxury of leisure time to watch when others have not. 

The following is a list of my recommendations which still pull on my heart strings and/or intrigue or engage me. I have narrowed my decades of trash-watching (it is absurd and almost embarrassing) down to a set of shows I think are worth your time. The list changes. If you asked me 20 years ago, I'd have put "The Jeffersons" on this list (Nick at Night, how I loved thee), along with many other shows which I don't consider worth our time anymore. I feel obligated to say that I feel like I'm betraying myself by not including an enormous set of cartoons and kids shows from Nick Jr., Nickelodeon, Cartoon Network, PBS, and BBC. They were amazing, and I still would recommend many of them to others. Unfortunately (or fortunately?), they don't have impact on me anymore, and I'd rather not watch them.

I've seen most of these multiple times. I've only included shows worth mentioning (it's possible I'm missing some, but I've done my best to go through everything that mattered and matters to me). This does not include documentaries or news programs, although some of the fiction can function as such. I've tried to remove as much braincandy as I could, but inevitably, it creeps in. You'll note that cartoons tend to be highly ranked and survive when you might expect they wouldn't. Internet-only videos, streaming-based and web content are not included. They are a very different kind of video for me. That will be another collection. I fear my children experience the web of trash like I experienced the cable of trash growing up.

As usual, ymmv. I'm sure there are shows on your list which aren't on mine (and vice versa). I've very likely seen at least a few episodes (if not all) of the show you have in mind.  Who doesn't think they have impeccable taste? My tastes are mix of many backgrounds, and I can usually find common ground with everyone about some show we share a taste for. Conversely, I meet many people who love almost all the shows on my list here (that is often a sign we will be good friends, in my experience).

I believe that what we watch and especially what we enjoy watching says something about us. I'm trying to figure out what that is for myself. T.V. is weird. On one hand, you can often reflect upon what you've watched and feel like you just consumed a bunch of shit, that you wasted your time or even worse (that it would have been better to have done nothing). On the other hand, it can socialize you, help you understand the world, entertain you, and be something you feel truly lucky to have watched. I suppose it is like any kind of art.

Autistic people are especially prone to fixate upon videos. I often rewatch over the years to reinterpret them, to see them from a different angle, to see myself and the world through another lens, etc. They are rich yet static fiction devices which allows us to safely analyze and rethink while we are being entertained. Comedy especially often has this distinctive philosophically piercing element to it that allows us to laugh at ourselves, to take on new points of view, to evolve. Realistic fiction can draw attention to parts of the world we were previously blind to. So, as insane as it might sound, I take the art of television seriously. Cartoons allow us into a kind of fantasy which aids those of us who have a problem with the suspension of disbelief.


Worth at least a partial watch-through:

* 30 Rock
* Adventure Time
* Aqua Teen Hunger Force
* Band of Brothers
* Beavis and Butt-head 
* Boardwalk Empire
* Cowboy Bebop
* Curb Your Enthusiasm
* Deadwood
* Dexter
* Dragonball Z Kai
* Fullmetal Alchemist (and FMA: Brotherhood)
* Ghost in the Shell (a family of filmwork)
* Girls
* Invader Zim
* Kill La Kill 
* Orange is the New Black
* Metalocalypse
* Moral Orel
* Mr. Bean
* Mr. Robot
* Mystery Science Theater 3000
* Parks and Recreation
* Psycho-Pass
* Samurai Jack
* Scrubs
* Serial Experiments Lain
* Shameless (UK and US)
* Silicon Valley
* The Simpsons
* Spongebob Squarepants
* Squidbillies
* Star Trek: The Next Generation
* Regular Show
* Rocko's Modern Life
* Rugrats
* That 70's Show
* Trailer Park Boys
* Trigun
* Triptank
* Vikings
* The Walking Dead 
* Welcome to the NHK! 
* The West Wing (Sorkin's propaganda)
* The X-Files
* Wilbur


Worth at least one complete watch-through:

* 3rd Rock from the Sun (I literally cried when it ended)
* Avatar: The Last Airbender
* Animals
* Another Period
* Attack on Titan
* Battlestar Galactica (not the original)
* Better Call Saul
* Bojack Horseman
* Broad City
* Brooklyn Nine-Nine
* Chapelle's Show
* Comedy Central Roast
* Community
* Fargo
* Freaks and Geeks
* Firefly
* The IT Crowd
* Louie
* Nathan For You
* The Newsroom (Sorkin's propaganda)
* The Office (UK)
* Oz
* Peep Show
* Psych
* Project Runway
* The Ren & Stimpy Show
* Reno 911!
* Rome
* Seinfeld
* Sherlock
* The Sopranos
* South Park
* Stranger Things (dat intro music)
* Top Chef
* Tosh.0 
* True Blood
* Veep


Divinely^^tm^^ inspired, epicly rewatchable:

* Archer
* Arrested Development
* Bob's Burgers
* The Boondocks
* Breaking Bad
* China, Il
* Daria
* Frasier
* Futurama
* Game of Thrones
* House M.D.
* House of Cards
* Its Always Sunny in Philadelphia
* Jackass (a family of filmwork)
* King of the Hill
* Mad Men
* The Office (US)
* Party Down
* Rick and Morty
* Superjail
* True Detective
* Venture Bros
* Westworld
* The Wire

--------------------

<<footnotes "1" "I remember reading the Bittorrent protocol whitepaper when it came out, and I've been torrenting since the beginning. Torrenting ushered in the true pirate age for video (at the time, DSL and cable modems were still fairly uncommon). Before that, I used the standard tools: Scour Exchange, Napster, Gnutella, IRC, and other public venues through HTTP and FTP.">>
Most of my writing was online. An enormous amount was lost to the sands of time and natural digital erosion. Outside of instant messaging/chat, http://4chan.com and http://mtgthesource.com were my primary hangouts. I wrote a lot on these sites. Between magic, the blooming of 4chan, and my heavily curated RSS feeds, I maintained a measure of sanity through yet another dark time in my life.  Hence, I only have a couple records left from this time period. 

* [[20??.??.?? -- Solidarity]]
* [[2008.11.10 -- Seminary Cover Letter]]
* [[2009.??.?? -- Resume]]

Moving to Thailand with two very young children was a leap I took. I knew I just couldn't accept living as a Christian in the West. In Thailand, I learned I couldn't accept living as a Christian anywhere. It took many years before I was able to escape the prison though. I'm a slow learner. 

I very much feel like I wasted my youth. I was given the wrong input from the beginning, and it sent me on a wild goose chase. Of course, every creature has a right to blame its creators (including themselves). Bitterness is fine as long as it fuels growth and leads to happiness, but at some point, it is spilled milk. I have to be stoic and worry about what I can control, which is the present and future. 
I see this as our primary conflict:

I think I have more empathy for you than you have for me.

I'm tired of bearing a load for you that you aren't willing to bear for me.

That isn't to say you are even capable of bearing the load (I recognize the raw appearance of arrogance in that sentence). I have had absurd opportunities you have never had. I've won a couple genetic and circumstantial lotteries (moral luck) that you haven't. 

You really have done well with what you have been given. 

I very much have taken your reality map seriously. Even when I thought I saw flaws in it, I have tried to plug those holes for you. There are no more doors open for me to make your point of view logically work in my head. It's done.



If you feel like you've been lied to by your sons, you have. We really haven't had the chance to just be ourselves without judgment from you. You make our lives painful when you get to know us. We don't like sharing who we are with you. Now, do you really think that's because you so blameless and we so evil 


It breaks a tit-for-tat strategy.

If relationships are like bank accounts,



I can't help but worry that you simply see me and our relationship through a lens of biblical stories of children and parents (particularly sons of the priest class, and those who turn away). I think of Cain and Abel, of Samuel, of Jacob and Esau, of Eli's wicked sons, of the prodigal son, and of Adam, Christ, and God the Father.

This was the lens that I saw the world through. It is not anymore. I am convinced this is a problem for us. I worry we can't find bridges over this problem. 

I think you have an empathy problem. 

I think you have an easy time empathizing with children, but that you fail to empathize as effectively with adults (and I'm not exception to this). This may be based upon your view of agency and responsibility. This may be influenced by your childhoods. This may be based upon biblical interpretations of humanity. This may be based upon a growing disillusionment with the adult's you've met in your ministry. This may be for a multitude of reasons. 

I think you've missed the point of who I am.

I want you to be proud, in an odd way, of the fact that I took seriously and zealously sought after what I considered to be most important in the bible: love, empathy, and rationality (to be like Christ), and I ended up at a different destination than you. I want you to see I applied those principles, and my reality map changed because of it. I took the redpill, and this is the world I see now. It's not up to me what is revealed to me. It's not my fault that I'm not a Christian anymore. 

I still care about love, empathy, and rationality. They drive me. They are my goal. We have disagreements about which paths best arrive at that goal. 

You could throw us away. You might. In some ways, you have. I'm not blaming you for it anymore. I'm not trying to judge you. I'm trying to move past it. I know [[you did the best you could with what you have|Doing our Best]]. Can you do the same for me? Can you not not blame me, judge me, and move past it?

What kind of relationship do you want with me? Can we really have one?


I simply can't have the relationship with you that you have with your parents.

I think when we meet it feels like a yearly inspection. You have no idea what I've gone through.

You have abandoned your children. I see why. Some part of me has even internalized and accepted it. I know you did your best. 



I fear that you will see my asking for empathy and understanding of my reality map as demanding that you revolve around me. I don't know what to say to that. If you want to miss out on a huge portion of who I am and who I will be, that's really up to you. You don't have to revolve around me. But, if we are being fair here, my life has revolved around yours quite a bit. In fact, I believe there is an asymmetry in our relationship in which I'm the one who has revolved around you and not the other way around.

You chose to live across the globe, to have your way of living. It was not up to me. 



I don't think children are beholden to their parents in the way that you do. I think the Biblical story on this is not rational (the justification for your belief does not extend into the secular realm). I think parents have strong duties to their children, but it is not obvious that children necessarily have the same strength of duties to their parents. 


I think you are struggling with your relationships with your parents too. I feel like that requires me to give you more latitude. 


I am convinced [[the end of humanity|The End of Humanity]] is coming in the next century. I hold us all responsible for it to varying degrees. I'm angry at everyone for it, including you. I think you have an optimistic, blind faith view on the world. Your lack of urgency over the bigger picture, your defense of the contemporary Christian community in the United States, your libertarian-bents, your acceptance of capitalism and study of humans as resources...I think you are part of the problem and not the solution. I think it your generation that has sealed our fate. I think that millenials are called the "ME" generation, but I think the Boomer's perfected that art long ago. I think your switch from the idealism you had when I was a child to your pragmatism today lacks integrity.


That I care about your approval and you don't of mine shows a lack of empathy. You don't care what I think, and you should.


I worry you make the mistake of assuming that any reality map which doesn't enable one to have hope, happiness, or take on pursuits that your reality map justifies is somehow wrong.


I try not to be angry though. I try not to blame you. I think you were and still are people who feel called by God. I know what that means, and I know what that feels like. I can forgive that.
It came too late to me in my vocational internet addiction how very useful web bookmarks are. Of course, I've used them since I first started using the web. However, I never really used them correctly. Curating, cataloging, and organizing your bookmarks is a fundamental executive functioning skill on the internet (and perhaps in life in general at this point). To be clear, I still don't use them perfectly or perhaps even correctly enough. I'm working on it. Below I present my thoughts and strategies on bookmarking.

Bookmarks are incredibly useful tools. They make life easier, no doubt. Spidering around the Web is best done when you have the keen memory of well-crafted bookmarks. Auto or easy syncing between computers gives you a quick way to access important stuff from anywhere (the cloud is useful here). This is already enough reason to use bookmarks. Also, it scratches that perfectionist + Librarian itch inside you. I think there is a deeper reason to use bookmarks though. 

Ultimately, I bookmarks as providing an arena in which to have a conversation with myself at large. Through my use of bookmarks, I am able to monitor changes in myself. I can evaluate what I'm considering important about my browsing and how I use my time on the internet. It's a kind of journal, and journals can act as profound feedback loops to our minds. It is a crucial way in which modern humans should mindmap. 

There are different types, kinds, categories, classes, fundamental roles of bookmarks. These sets are mixed, matched, and nested inside each other from time to time. The ontology of epistemology is not simple. Here are my different frames of mind when making a bookmark:

* Nesting, grouping, generating lists and collections (I consider folders be a bookmark to a set of bookmarks)
* Specific link image, book, video, and other media library
* Show you where you are/were, restoring previous sessions
* Searchable bookmarks, permanent history entry, and "this will be hard to find again"
* Frequently used, routine, open all tabs (or more often than that)
* Resource curation, projects, research, evidence, citations, examples, howtos
* Strong need for accurate URL, saving by IP, saving by port, saving by protocol, accessing webUIs, etc.
* Identities and context specifiers
* Browser apps, extensions, etc.
* To do list

I don't take it be an accident that this Wiki is remarkably good at all these. I would love to migrate to this Wiki instead, at least as a good non-login based bookmark bar. I think making it public (even if no one is listening) gives me a reason to do my best to organize it for you. It isn't just for me right now, it is even for the me that will experience the need.
I dedicate this page to Immanuel Kant and Morpheus.

If I ever was a prophet, this is my prophesy: 

* The end of humanity is coming in the next 100 years. Our extinction is coming, whether we admit it to ourselves or not.<<ref "1">>
* Variations in the current wars on the planet will only escalate until the end. We will be drowned in violence and the gutteral cruelty quietly embedded in all animals. As a species, we will attempt to migrate and flee, but there will be nowhere to go.
* The wealthy, powerful, kleptocratic elite will continue to enslave the poor and disenfranchised, bit by bit, until the end. We are all functionally reducible to mere flesh-sacks of human capital having our economic value extracted from us by the layer of people above us in a giant human pyramid scheme. Wealth and power will continue to centralize, privatize, and crystallize towards the top, while the material position, mobility, freedom, and happiness of the masses below will shrink each year. We are in for the last, most epic tragedy of the commons, a bitter human eat human world where we hungrily use and destroy each other for the remaining resources on this planet. The elite (who already see and accept the end, who have already thrown away plans for the future and enjoy whatever pleasure they can, while they still can) will watch us suffer and die, consuming each layer of the pyramid below them until it is their turn to suffer and die.
* The Great Famine is coming. At least hundreds of millions will starve, but billions will die for a lack of clean water, the new commodity. 
* Global warming seals our fate. It accelerates and accelerates. We are past the point of saving. Even in my lifetime, I will be transplanted and crippled by this force of justice we created.

It's the truth.<<ref "2">> It's the awful fucking truth that we all secretly try to deny and hide from ourselves. Admittedly, it isn't much of a prophesy. After all, this is the description of the world which every mildly-informed realist can see. We generally lack the balls, brutal honesty, and raw intellectual integrity to openly admit this is the most likely (and perhaps inevitable) outcome and allow that fact to descend upon our reality maps. Everyone knows it, and yet they have the capacity and will to turn their gaze away from the truth. We run from this truth. We block and bracket it from our minds. The truth is too painful. Lying to ourselves is the only practical option. 

Fuck those who turn away from idealism; we have cost ourselves everything. We are stupid, selfish, short-sighted, and evil. Malice and ignorance are all too often two sides of the same coin (our ignorance has a causal story which eventually demonstrates that it was willed).<<ref "3">> 

Every person has their price. Deep down, as part of the core of our animal selves, we are all psychopaths who, when put to The Test, will eventually turn a blind eye to the pain of the other; all it takes is the right context to flip the switch inside us that turns off our empathy for humanity. We all already do it. It is who we are. We are able to blind ourselves to the enslavement and pain of others, to the way our choices and actions rest upon a causal chain of treating humans around the world as mere means, to the brutal use of others as instruments rather than respecting them as ends in themselves. "Out of sight, out of mind" we tell ourselves, lies. We have no integrity. Our altruism is a confabulation. We are mere animals who delude ourselves into thinking we are more, that we are exceptional, that we really can overcome our evil nature. 

Maybe we deserve this. If we don't, then why am I born into this world only to helplessly watch it die? Why did I bring children into this world only to watch them suffer? I'm a fool. I love them with everything I have. I will give them what little happiness I can. I will shield them and train them for as long as I can. It is my duty as their creator and the only reason I have left to live.

Why have empathy for my future self when I know that end is so painful? It is better to distance him from myself. It is better to not feel his pain because there is nothing I can do about it. This is the stoic, pragmatic move, the rationalization to impulsivity.

I have no hope for humanity because there is no truth in that hope. I hate this world. I hate who we are. I wish there was a God so I could tell that psychopathic piece of shit to go fuck Himself. Reason led me to faith, and reason destroyed it. I don't think there is a God to wrestle with anymore, there is only myself.

Here's the real truth: we are not free to be happy; we are slaves to suffering. My new hope is to accept these facts, to let the pieces fall where they may on my reality map, to move on, and to try and find peace and happiness in the midst of this farcical nightmare we call life. I need to move the goalposts, to restructure my perspective, to stop seeking reason in important ways. Finding constructive delusion and ignorance, a new faith, may be the only practical path.

-----------------------------------

<<footnotes "1" "I am open to the possibility of humanity's child, A.I., living beyond us. Maybe there is hope there which I have not explored.">>
<<footnotes "2" "Doom, motha'fucka'. Doom, I tell ye h'what.">>
<<footnotes "3" "Hanlon lost to Socrates.">>
--------------------------------
Shit got dark in here. Have a [[video|https://www.youtube.com/watch?v=wrLDoitgYp4&feature=youtu.be]].
[[Freewill|Freewill]]

I've been honing, digging-for, and isolating the concept of perfection for a long time. Perfection is a maximal manifestation of the Good. To say X is perfect is to say X is a maximally good. But, we must ask, "good for what?" Good in itself, good instrumentally?

In //Searching for Meaning: Idealism, Bright Minds, Disillusionment, and Hope//, they claim:

Our illusions can become 

I don't think I'm seeing illusions. I think I'm seeing reality. It is not my depression that causes me to think the world sucks; it is the fact that the world sucks that causes my depression.


----------------------------

I’ve been considering for many years an odd problem (that seems to pop up over and over again). The problem goes something like this:

In any given circumstance, are we morally responsible for doing the “golden standard” right thing (such that everyone should do that) or something which scales to the particular circumstance, including facts about who we are (such that only we are should do it, but others may not be obligated in the same way)? 

Traditionally, the answer is something like the golden standard. What one ought to do in any circumstance is what anyone ought to do in that circumstance. I think Virtue, Kantian, and Utilitarian thought, as solid examples, really point toward a golden standard of right and wrong (there are exceptions in versions of these theories, but I’m generalizing). 

The problem is that it isn’t clear what we mean by the scope of a circumstance. How specific will it be? As we focus upon the scope of circumstances for moral responsibility, it becomes clearer and clearer that the golden standard just can’t be quite right, and we are pushed toward a “scaling standard” of right and wrong.

For instance, someone with a person with an IQ of 60 might not be able to figure out what one ought to do in a general circumstance, as perhaps it requires an IQ of 120. Can we really hold that person responsible for doing what is “golden” right? Surely not. Ought implies can, and “can” requires a rational ability to identify the right, and this person simply can’t. Thus, we not only can’t hold them morally responsible for not doing the “golden” right thing, but they aren’t even obligated to do that original golden right thing. O -> C is equivalent to ~C -> ~O. If you can’t, then you not ought. How does the moral philosopher (of any breed) make sense of this?

It seems that the circumstance was too general, and rather, we need to include the IQ of the person in question as part of the circumstance. Essentially, what the 60 IQ person ought to do in the general circumstance will be different from what the 120 IQ person ought to do in that general circumstance. The reason is that they are two different specific circumstances. So, in a sense, moral responsibility and “right and wrong” will scale, but we need not completely throw away the golden standard. The golden standard, however, appears to be reduced to particularism. Moral particularism, however, seems to be problematic for the generalization of any moral theory (although not necessarily defeating); we might worry that is spirals into a kind of moral relativism. 

Somehow, the golden standard seems lost. Some part of me wants to say: “given all the possible intellectual resources, what should one do?” That is the real golden standard, not the particularistic approach. Perhaps the golden standard looks like “the good” not the right. I’m not sure.

So, let us assume moral responsibility is scaling, and thus morality is scaling with specific or particularistic circumstances. Fine. What of it? Other old and weird issues seem to creep up, and I worry that moral responsibility might not even be real. Let me start with an anecdote.

Take someone who is a highly conditioned racist. I can look upon their life, and I see why they’ve become what they’ve become. Now, perhaps it is possible that the racist could employ their reason and (allow me to assume) libertarian free will to become not a racist (let us even deny direct doxastic voluntarism and assume it must be habituated, etc.). But, in all likelihood, the racist simply won’t. 

Is the racist responsible for being racist here, and what is the right thing to do for the racist? Racism might be “bad” (in the good/bad distinction), but it isn’t necessarily (and bear with me folks) “wrong” (consider the case of someone with a very low IQ). 

The scaling standard should force us into the shoes of other people. How would most people who were forced into the shoes of the racist (shedding their previous identities, and acquiring the racist’s identity and past) behave and choose? I think we would be no different. In fact, we should empathize with the racist’s racism. We should consider that person a victim in some very twisted sense. At the very least, we would hold the racist less responsible for being racist in this case, and maybe they didn’t do “as wrong” as someone who didn’t have such conditioning.

But, notice that we seem to be able to tell the same sort of story for any act of immorality, right? Why should we hold a person responsible when in all likelihood nobody else would have done differently in those exact circumstances, standing in the exact shoes of that person? 

What one ought to do in a particular circumstance isn’t necessarily the same as what everyone would do in that circumstance. That has to be the only answer the scaling standard can give to vindicate moral responsibility. But, it isn’t satisfying. 

In some weird way, whether we did the right or wrong thing just doesn’t feel “up to us” upon the empathetic scaling standard view. Even if it is up to us, it seems as though evaluating how virtuous or vicious a person may be just isn’t very relevant or meaningful because we wouldn’t be anything different either. Virtue and vice, right and wrong, and moral responsibility all particularize or scale so effectively that they seem to lose meaning.  

Even if the scaling standard maintains its robust moral realism, despite being particularistic, and we can maintain moral responsibility, and even if we could figure out what others ought to do (epistemic flaws in utilitarianism apply to almost all particularistic theories), it seems like we now actually have a good reason not the “judge” anyone else. Yeah, they did what was wrong, but you wouldn’t have been any better, almost nobody would. 

Morality and moral responsibility lose their bite.
The Fremen saved for generations to transform the face of Arrakis into their paradise. I hope to save for mere years to achieve a plot of land and house that I can legitimately call my dream home.

---

One story
--OR two stories, but w/ balcony
Extra wide doors
Signs for all the rooms
Excellent soundproofing 
A musical wall where instruments are stored
Desks w/ comfy seats
Three or four bedrooms + a barracks
**Barracks: Beds to the ceiling; each bed w/own drawers & electrical outlets/psuedo desk (little Japanese containers)
***The barracks should be technically long-term livable; up to 12 ppl
All around the house porch - maybe part should be shutterable - comfy seats
3 bathrooms - one large Master, one general, one barracks
Combined living room/study/library
**Pool table in the living room
A badass aquarium, designed into/part of the house, like in the wall, and you need like a scuba suit to clean out, that Michael Patrick is responsible for taking care of
Tiered theater - giantass tv/projector, comfy sofas &/or recliners

---

* Rooms
** Foyer/lobby
*** Store shoes, coats, umbrellas, etc. Take a load off, or get ready to go.
** Basement
*** Easy place to create our own secret space after the home has been built.
*** Laundry Area
**** Laundry chutes from bathrooms and rooms. Make life easy.
**** Two washers and dryers.
**** Altneratively, we build the Laundry area at the center of the house and have chutes in that direction.
** Kitchen+Dining Area
*** Stainless, longlasting appliances.
*** Industrial dishwashing
*** Deep freeze
** Living Room
** 3 Bedrooms
** Barracks
*** 3-Tier Custom Bunks, with bottom mattress literally being on the floor.
**** Very sizable gel-based twin mattresses
*** Two sets of bunks. Tiny room.


* Aesthetic, Details, etc.
** Walls
*** Prefer minimal walls, more open spaces.
*** Obviously, we're going log cabin all the way. So, wood.
**** Don't forget to store extra wood of the same kind/type/batch
*** Could have modular kinds of walls. We build the house perimeter, and walls are something we construct later. 
** Floors
*** Hardwood, stone, or very nice mixed stone/concrete. 
** Doors
*** Cat doors on all doors that allow cats to get through. I want nice heavy doors.
*** Red Front Door
*** Indoor are all Long-handled
**** Lockable with simple picks
*** Prefer doorless in most walkways
*** Cat Doors
**** Autolocking catdoor that can only be unlocked with RFIDish collartag. 
** Windows
*** Polarized to block all light
*** Mirrored for privacy
*** Shutters
*** Massive in size; could even take up entire walls for all I care.
*** Very sturdy
*** Needs to be highly insulative. Perhaps 3-trip pane with vacuums in between?

* Laundry Chutes
** I want it to be easy to move laundry. Make life easy.

* Heat/Cooling
** I want a wood stove to heat the house incase fo the apocalypse. I don't need a fireplace, hearth, etc. I just want the backup.
** Amazing Central Aircon
** Are there natural, low cost ways to cool houses? What are they?

* Security
** Solar-powered security cameras, motion sensors, etc.

* Networking
** Network/Server/Control/Security Room Closet
*** Locked, requires a real key
** 10GBit Ethernet throughout the house
** A solid wifi system with major coverage.
*** Spend some serious time and money on it.
** Preferred VM Firewall, transportable to new hardware, etc.
** Check to see if we can run fiber to the house.
** Long-range wifi anywhere on the property
** Mile-long connection to remote router/modem (gives us options for where we live, although makes us dependent)
** 4G/5G access. Failover and binding.

* Bathrooms
** 3 Full
** Urinal - automated
** Long toilet (fat people in my family)
** Built-in Bidet (in one of them)
** Flowing sinks with deep basins.
** Floor drains
** Laundry shoot
** Serious cabinetry and storage
** Easy clean surfaces
** Giant vertical drop down shower
** One-way mirror/glass or "opaque" color on outside but still seethrough from the inside, large for the bathrooms.

* Roof
** Appearance is irrelevant. Function is absolutely everything
** Solar where possible
** I want it to last forever and be easy to repair.
** I want to avoid cleaning it as much as possible.
** Funnel water into cistern or other. Make use of the rain. 
** Would love a rooftop guardtower/belltower/lookout area.

* Geography
** Preferably in/next to the woods. Few if any neighbors, but just enough that we can get utilities.
** Living next to a body of water would be amazing.
*** Pond for fishing
*** A lake would be insane. Maybe expensive. 
*** Creek/River for mobility, power generation, water source, and because it is cool
** Preferably on top of a hillside
** Would be great to have goats, bees, and cats (cats a must)
** Prefer the chance to purchase more land if we wanted

* External aesthetic and utility
** Electrical outlets scattered around outside. Built-in retractable extension cords even better.
** Patio entrance

* The Shop
** Wildflowers or Vines externally
** Fuel tanks
** Prep storage
** Safehouse/basement for Tornadoes
*** For funnsies could have secret tunnel =)

* The Greenhouse

* The Pool/Garden

* The Yard
** Rainwater can be automatically directed to our trees, bushes, and used to irragate our garden.
** Significant tree line. Perhaps plant quite a few of our own. 
*** Would love to plant trees that grow fruit and nuts especially. A pseudo-orchard would be nice.
*** Oaks, cherries, mulberries, walnut, etc. 
*** 1 maple
*** Must be hardy through different seasons. Preferablly can live without much water or in intense heat, global warming.
** Vineyard area.
** Corn, X, tomatoes (three sisters)
** Berry bushes

* Driveway
** Automagically lit
** Prefer something resistant to ice. Treelines help. Severe treeline or bushes is nice too.
** Parking should be double lane and circular.

Watching it with the kids. It's a free day. I wanted to pick something out that I thought my son would love. So, I did. =)

It's definitely some racist cold-war propaganda. That's okay. We'll deal with it.
My son asked me what I thought would be the perfect ARAM champion. I have no idea. I need to think about it.

Let's try and stay in the standard power budget. Pretend you are making a believable Magic the Gathering card.

A group healing/shielding, anti-poke hypercarry tank with serious seige capacity. AD tanks are incredibly rare too. So, AD is a must. Unfortunately, there is a huge gap in itemization for AD tanks. They are very few hybrid items available to them that belong on tanks.

* Snowball + Flash

In a weird way, I want to isolate the items I want to use first to answer this question.


My mom gave me a beautiful aphorism-poem when I came of age at 18.

<<<
There are two things you give your children:

One is roots

The other is wings
<<<

I think a lot about this poem. It is a lens through which to understand my mother and father. Knowing that they intentionally gave it to me makes it all the more complex. Being a parent myself, of course, only adds meaning to it. 

The gist of the poem requires analysis. My worry is that it allows us to say: "we gave you what you need" in all possible contexts. It does seem to have a deceptive shape to it. I say that realizing how beautiful it really is. It is not, however, an obvious Giving Tree.

My mother-in-law told me to "dig around in those roots." It is not lost on me.

I take it that my parting with my parents, the severance, is their way of being kind and loving. It is truly a sacrifice on their part.

We are building ourselves through our children. This isn't a fame and fortune problem. To empathize with the future really is to embed ourselves in the lives of our children. The giving tree is fundamentally right, only it explodes into more dimensions than you could possibly conceive of.

//Where I contemplate my erotic-sounding career aspirations. I can hear Beavis and Butthead snickering, "hehehe.....he said 'Pipefitter,' 'Screwpipe,' 'I need to screw my pipe in that fitting,'" etc. I obviously hope my pipedream isn't what it sounds like, but instead is realistically attainable. I will be practical and stoic in my pursuit of excellence..//

Understanding where it is you want to end up in your career is obviously not simple. One thing I take into account is the Peter Principle. Given my background and breadth of knowledge, I could actually fit a large number of industries at a variety of levels. Just because I look good on paper doesn't mean I'm really a good fit though. Being an autistic person makes life complicated, in addition to the fact that I generally strongly dislike people. The Peter Principle is highly applicable to me. It is very easy for me to find myself in a position where I'm seemingly qualified, but there is a region, often a social one, which ultimately precludes me from being a proficient worker in that position.

Given both my ineptitudes and misanthropy, limiting social interactions to politely-hostile business interactions with minimal actual socializing is likely my best chance. I can small talk when I feel it is necessary given the context. Ultimately, I must be the judge of what counts as using people. Of course, I can only do my best not to.

I want to own the means of production. I'd like to be my own boss. I'd like to have a job worth doing in every sense, and I want to feel free instead of politically and economically enslaved (or mitigate my enslavement as much as possible).

Owning a business may require working with other people, and at least includes working for people since even the self-employed are technically employed via their customers. It would be wise to limit or spend extra time thinking about our interactions, since I'm autistic. Being empathic is something I need to work hard on; I need to understand their minds and feelings. I need to know how we should interact (expectations, patterns, etc.). It's worth treating people respectfully, even the honest shopkeeper knows that. I need to be at peace with myself, to be unified, while I make money. Think carefully, and act wisely. How do I do it well? What is the most effective path? 

Starting late in life on the moneypath is not a terrible thing. Now better than than never, and I have tools. I have a picture of how it influences earnings potential, opens and shuts doors, etc. But, I also haven't been wasting my time. I have learned quite a bit. 

* [[Bidness Ideas & Hustlin']]
* [[Resume]]
* [[Structure of Moral Business]]
* [[Negotiating]]
The Problem with Traditional Views of Salvific, Voluntary Belief.

Orthodox Christian (there are exceptions, see Calvin, etc.) theology maintains that to be saved requires actively choosing Jesus to be your Lord and Savior, asking for forgiveness of your sins, and pledging your life to be His slave. Honestly, as a theist who has done a decent amount of theology and biblical interpretation, I can say that this is not an unreasonable possibility. In effect, you want to live an ethical life (that’s what being God’s slave is all about). 

Now, after studying and thinking about it, I take it that direct doxastic voluntarism is false in all cases. I can’t just make myself belief the sky is red when it isn’t. I can’t make myself believe 1+1=3. I can’t seem to find a single example where belief is directly up to me (in the libertarian free will sense). There is no space between the evidence I have and the beliefs I hold in which I make any choice in the matter. The only real space is choosing how I will go about evidence gathering, and that is indirect doxastic voluntarism. So, in a sense, I am still responsible for what I believe.

What does this mean for the orthodox Christian? Well, there is not exact “point” where I am converted by my own choice because conversion is a belief, and beliefs are directly up to me. Now, perhaps there is an exact point where I am converted, but not because I chose it. So, at any given moment, whether or not I had salvific belief just isn’t up to me. Those who are salvific belief aren’t believers by their own immediate choosing, and those don’t have that salvific belief don’t have it by their own immediate choosing either. The problem is that if I didn’t choose it, then it isn’t clear how I can be responsible for it.

Of course, the answer must be the use of indirect doxastic voluntarism. We are responsible for choosing to gather evidence in favor of salvific belief. We must educate, habituate, condition, and manipulate ourselves into salvific belief. But, if that is all we can be responsible for, then why is it the moment where we successfully acquire the salvific belief that matters? It seems to me that someone who is on the journey to gather the evidence is the only person “doing what is right” and the only action for which we can be really responsible.  I doubt there is salvific belief, but rather there is salvific searching for God.
Everything God does is morally right. God would always do exactly as He did in a circumstance and nothing else. Essentially, there is no such thing as permissibility and option for God. God is morally obliged to do what He does. What He does is right by definition. He is unchanging and unwavering in this respect. 

These claims are not difficult to swallow for the orthodox Christian. 

Further, salvation is thought of as a gift. God offers it to us out of mercy. We think of it as undeserved grace. But, I think the above claims contradict such thinking. 

God’s offering of grace is obliged. He has a duty to offer it. Duties have corresponding rights. Thus, we have a right to that grace, assuming we meet the conditions to acquire it (however one acquires salvation and justification). So, assuming one meets those salvific requirements, God, in his moral splendor, is morally obligated to save you. It isn’t undeserved mercy and grace, but rather it is required by the moral law, and by the very nature of God, that He save you in such a case.
I should answer this question for myself in a practical way when it comes to my rationality. Being practical about knowledge just is, by definition, the most rational thing I can do. What counts as pragmatism? That seems to define much about knowledge for me. There is so much I don't know about knowledge, and thus I must be practical about it. What could be wiser?

Phronesis means practical wisdom. Practical wisdom is a whole brained activity. Essentially, the frontal lobes are not a dictator. It is necessary to have unification, a smooth running system as a whole, and maximizing frontal lobe production isn't necessarily the sole right or good thing. If we are take separate the physical parts of ourselves, we realize also learn how best to make them function together as parts of a whole. 

I tell you, practical wisdom is fundamentally about good executive decision making. Thus, I know how fundamentally important the frontal lobes are to my existence. I'm saying they are a very necessary part of achieving happiness. 

Oh, I forgot to tell you? Bless my soul. //The Purpose of Knowledge is Happiness. // You are welcome. Seriously. You're totally welcome. One day, you'll thank me again. And, seriously, you are totally welcome. I love you because I love me.<<ref "1">>


-------------------------

<<footnotes "1" "I'm having a conversation with myself. It's okay to say it. I'm not going to feel bad to say that I love myself. Any rational person should to a significant extent. I wasn't raised in a way that allowed me to really believe that. I was raised the wrong way with a fairly rare combination of mental capacities and limitations. I have to forgive my parents for being shitty parents. They're as bad as the rest of us, and that means I must treat them like the rest of us. They could not have helped you, even if they knew how. Ah, you're probably thinking the good and right have a ton in common because you are so practically wise. ">>
The Matrix is the best movie I've ever seen. It's worth studying. There isn't a real, philosophical system underpinning it, but it does a nice job of weaving together many important concepts. The new show Westworld has much in common, not just at a surface level (the experience machine), but for many other significant problems. As in every experience machine story, the Red Pill is always present.

The Red Pill is the catalyst to fundamental paradigm shifts in one's reality map. After taking the Red Pill, one can see the world as it "really" is (or at least as a step closer to the objective truth, or at least that is the faith in the Red Pill).  

The primary force behind the illusion of choice in our minds is a rewards system in our brains that runs on pleasure-inducing chemicals. In a way, happiness is reducible to the right configuration of sustainable IV drip of these chemicals (this problem of hedonic happiness definitions is an old one). Your brain already shows the choices you've made 2-4 seconds before you are consciously aware of it. We aren't consciously free because our subconscious is clearly steering the ship. 


--------------

The Red Pill shows us that appearances can be deceiving on the scale of our reality map. The Red Pill itself, however, is still a kind of appearance. The Red Pill can be deceiving. When we attend to the Red Pill over time, we see we were right about some thing and wrong about others. Our reality map becomes inverted after the Red Pill, but then it has to settle down.

We each may experience many Red Pills of various sizes, shapes, and potency in our lives. The more radical the reality map the stronger the redpill.

I think one of the more important Red Pills is at the apex of the disagreement between the Marxist and the Libertarian, and both of these can be pulled in another direction that is psychopathic.

So, I think there is Psychopathic Marxism (hard to understand what it is, but I think this is the visual that people have) and Empathic Marxism (which is what I take Marxists to really mean by Marxism [No true Scotsman, let's talk about the nature of fallacies]). Similarly, there are Libertarians who have Empathy and those who don't. 

---------------

Internet slang also includes: "being woke" (AF, etc.)

Heidegger called it "The Event"

---------------

Idiocrasy Intro: https://www.youtube.com/watch?v=unoMMru4-c0

Cooperation Game Theory: https://www.edge.org/conversation/david_rand-the-cost-of-cooperating
As far as I am concerned, the Golden Rule (the CI itself) is //the// classic thought experiment in metaethics. Right behind it, the Ring of Gyges is the next most important thought experiment in metaethics because it shows us what perfection itself is like in practice. It was meant to describe Justice, but I think it describes normativity in general with the simplicity and beauty of no other device (the Veil of Ignorance emerged as a distributed Ring of Gyges, but it still rests upon that atomic notion). The Ring of Gyges speaks to the concept of Moral Virtue, Virtue of the Moral Practice directly. The Golden Rule is only more beautiful because it is the contents of morality, even if it applies Utility. The Ring of Gyges is an ancient tale from the genius of geniuses of geniuses himself, Plato:<<ref "1">>

<<<
Suppose now that there were two such magic rings, and the just put on one of them and the unjust the other; no man can be imagined to be of such an iron nature that he would stand fast in justice. No man would keep his hands off what was not his own when he could safely take what he liked out of the market, or go into houses and lie with any one at his pleasure, or kill or release from prison whom he would, and in all respects be like a god among men.

Then the actions of the just would be as the actions of the unjust; they would both come at last to the same point. And this we may truly affirm to be a great proof that a man is just, not willingly or because he thinks that justice is any good to him individually, but of necessity, for wherever any one thinks that he can safely be unjust, there he is unjust.

For all men believe in their hearts that injustice is far more profitable to the individual than justice, and he who argues as I have been supposing, will say that they are right. If you could imagine any one obtaining this power of becoming invisible, and never doing any wrong or touching what was another's, he would be thought by the lookers-on to be a most wretched idiot, although they would praise him to one another's faces, and keep up appearances with one another from a fear that they too might suffer injustice.<<ref "2">>
<<<

Tolkien obviously came when he read this, all over his book. Unfortunately, even Plato was wrong about The Ring of Gyges. Socrates claims justice can't be reduced to this notion since the unjust man is enslaved to his appetites, and thus not rational and free, and therefore not an agent, and therefore he isn't happy.<<ref "3">> Yeah. That argument sucks. The Ring of Gyges is a false device because "it doesn't make us happy." Wrong. That argument cannot be why it is conceptually flawed. Not being an agent means we can't be happy? Wrong. Eudaimonia is achievable, whether we are free or not. Rationality can make us happier (it doesn't always; we have to wield the instrument virtuously); we just have to try really hard. Of course, we are slaves to our appetites. It's the redpilled truth. We aren't free like we thought we were. And it doesn't matter, my nihilist friend. 

We aren't moral agents; there are no objective moral truths. Yes, the transcendental still exists, but normativity in itself, the Greatest of all things in itself, The Good, etc. can never be touched or fully seen. As mortals in this realm, it cannot be real for us. We will only ever see shadows. We must be content with the shadows on the wall. There is a place where we cannot be philosophers because, in a way, it just doesn't and cannot exist for us, with us, in us, or because of us. Perhaps it is faith. Perhaps it is our plight. Perhaps it is axiomatic to us and constitutive of the appearance of unified agency. 

The stoic must accept the inability to see into the [[Transcendental Gateway]]. It's okay, it's not your fault. It's not up to you, and in a way, nothing really is. That's okay though. Enjoy the epiphenomenal experience of freedom and consciousness. Why not? It's not like you can do anything about it anyways. This is your chance to take that spark of h0p3 and do something with it. Make life meaningful for yourself. There is no authority on meaning outside of yourself (and you know that you aren't really an authority either, but so what? Who has the authority to say you shouldn't? No one. Exactly). 

The nihilist is the ultimate wielder of The Ring of Gyges. Allow me to profane the sacredness of the highest saints and gods among men before me and call that phenomenon: The Ring of h0p3. The "just" wielder of the Ring of h0p3 is the positive nihilistic state of being moral because you want to be moral without feeling it to be a burden. To be clear, you define morality for yourself. That doesn't mean you'll always find yourself to be perfect or justified (that would be a confabulation we couldn't accept). It's okay that you don't like who you are sometimes, and it's okay that you strive to be better. Who makes the rules? Well. You do. Of course, if it is too unbearable, just remember: it doesn't matter anyways, but don't dwell there too long. You really do want stuff to matter. Remember: 

<<<
When we are no longer able to change a situation, we are challenged to change ourselves.<<ref "4">>
<<<

Program yourself.

It's your plight to desire The Good. Go for it. Be wise about it. Be practical and ideal. Do your best. Forgive yourself when you don't. You probably can't program yourself out of that, and you probably wouldn't want to. That isn't the kind of life you want to lead, and you don't need to worry about someone else approving of your moral theory. Do it because you approve of it. That doesn't mean don't listen to people, but it means that you need to be the ultimate law giver for yourself. It's the only Good thing to do. And thus, Right and Good were collapsed. There is only normativity: your normativity. 

They may call it relativism. You used to. You still might. Does it matter? No, not really. Nihilist! Lol. For whatever it's worth (which is ultimately nothing, ha), 

The person who is wearing the Ring of h0p3 is the ultimate wielder of The Ring of Gyges because they not only knew they could get away with anything, because nothing actually matters, because they aren't moral realists, and yet they still try to act as the person whose actions are no different with or without the Ring of Gyges. The Ring of Gyges burns brightly on the nihilist. It transforms into its true form: the Ring of h0p3. It is one thing to not be immoral even when there are no consequences, but it is entirely more profound to not be immoral when there are no objective reasons not to do so. 

There are nihilists who wear the Ring of h0p3 and feel it is a heavy burden to them, as though our plight should not be celebrated or enjoyed. Their existence is a challenge without the love of challenge. They seem to lack hope in the face of being a moral-realist-ish nihilist. Be the nihilist who loves wearing the Ring of h0p3. Have hope with that ring. Find a life worth living, that you enjoy, that is meaningful, that is the best you can do with it. Be a [[eudaimonic lifehacker]].

Unfortunately, the successful wielder of the Ring of h0p3, the eudaimonic lifehacker, must be on the road to eudaimonia. You have to let your skepticism go. It's the only way to get happy. Be a skeptic about humans, but don't be a skeptic about the transcendent or your reasons for getting up in the morning. Plato, hilariously, is right about the problem of happiness and its connection to the ring. He just didn't account for moral luck. Some of us can only be so happy. It's luck of the draw what life we get. Let's make the best of it. We cannot assume that everyone has a chance of successfully wielding the Ring of h0p3. We aren't free agents by definition. You've got to hope you are part of the lucky few who have the chance to be a eudaimonic lifehacker.<<ref "5">>

-----------------------

<<footnotes "1" "Whether or not Plato thought of The Ring of Gyges or someone else did, I'll call them Plato. ">>

<<footnotes "2" "Plato's Republic, 360b–d">>

<<footnotes "3" "Ibid., 10:612b">>

<<footnotes "4" "See: Viktor Frankl">>

<<footnotes "5" "This is not a religious or gnostic discussion of a remnant. It's just a plain fact about human history and evolution. No one is 'better' than anyone in any objective sense, of course. This is not a place to discriminate, except to feel empathy and pity for those who suffer.">>
I care less for everything past "First Contact," which aren't as amazing to me. I watch it out of habit now.
We've watched all but the newest. Honestly, I'm not sure I care. You need to know the basics. You should understand the experience. Appreciate the differences and similarities between the old and the new. One be capable of joining a broad scope of cultural memetic networks. This is low-hanging fruit.
//This the sketch of a fictional story (duh). I'm brainfarting around. I literally dreamed this, and as I slowly woke, I continued to think about it. It's all a confabulation, but I know it's a fiction (so that makes it a safe place to explore).//

Imagine a tree whose fruit makes us truly happy to each of our perfectionist specifications (and modifies our specs insofar as our initial specs would contradict the happiness of ourselves and others), and it does it the only way that is possible: It controls us. 

Since consciousness is scientifically an illusion, we are mere observers, it is conceptually possible for us to appear to be autonomous to ourselves while actually having lost it to some mind control agent. It is deeply manipulative, but with the right telos (our happiness) and the instrumental means to achieve it. It is a unique drug. It transforms us. It heals us. It is a panacea. It is a utopia-generator. It makes heaven on Earth. 

This is an experience machine we can hardly say no to. 

* Unhappiness
** We need backstory. Sadness. Ailment. We need to know unhappiness in the world, the sources of it. 
** Maybe we follow a few individuals, a few groups, a few nations, etc. 
** Pull them heartstrings.
* Deus ex machina: the seed arrives
** Meteor, teleportation, or other "out of thin air"
** Genetic modification turned serendipitous accident
** An omniscient, omni-benevolent, omnipotent AI has computed it and builds a single seed
** etc.
* The Garden: It germinates, cultivates, and spreads
** It is planted (very minimal requirements here), for whatever reason. 
** A treeplant rockets out of the ground like Jack's beanstalk.
** Maybe it has fly-away spores. Multiple ways to spread (e.g. the seeds survive our digestion).
** Many treeplents make a garden.
* Adam and Eve: the Fruit of Eudaimonia
** They enter the garden.
** Perfectly spherical, high-liquid content fruit with "unique" Dune-Spice-like smell and taste factor to each person.
** Temptation and the inevitable.
** Pleasure upon contact
** Immediate transformation.
* Memes of a Fruit: the tree takes the world by storm.
** Like a virus, it spreads through our minds, bodies, and lands.
** We are perfectly happy.
<<<
[[RPIN]]: You lack explanatory power here, [[KIN]], but you probably can't disagree with the description.
<<<

The upper layers of the [[human-pyramid|Human-pyramid]]. At the very top, the top 1% of the world. This includes much of America, Europe, Japan, with the fastest growing sectors in China and India.

Let us refer to the top 10,000 (their are ~1,800 billionaries in 2016) most powerful humans on top of that human-pyramid as the [[Hyperclass]] 
//See first: 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 & 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 & 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖 & 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 //

<<<
I wrote them down in my diary so that I wouldn't //have// to remember them.

--Henry Jones Sr., Indiana Jones and the Last Crusade
<<<

This is my story. Here are the records of my practice of the [[Art of Living]], and I hope it will be my masterpiece. I hope it will be my life's magnum opus; one's life should be one's life's work. Here I archive significant bodies of my work which make me proud, nostalgic, or pensive. This vault is a sequence of memoirs, projects, and shifts in my perspectives, values, and goals. It gives me a chance to reflect upon seasons, eras, arcs, and chapters of my life. I suppose, to some extent, this is a trophy vault and a place for me to celebrate myself.<<ref "1">> I have achieved much, and I've come a long way. I hope to be motivated by this catalog to wisely amortize my self-reflection. Lastly, I hope to provide myself perspective on //who I was// for the sake of both knowing //who I am// and planning //who I will be//. Thus, I hope to have a prolific and unabridged life of happiness.

Obviously, my narratival divisions are poorly justified subjective human constructs. Life is chaotically complex, hard to reduce, difficult to categorize and systematize, and that's all because it is difficult to draw clean lines. That's okay. It is our plight to play games of semantics with ourselves; it is the foundation of human communication and our fallible analysis+synthesis. I'm bootstrapping; I'm building it brick by brick, and I'm filling it droplet by droplet. I have to start somewhere, and I shouldn't expect perfection.<<ref "2">>

* 1985-2003 -- [[Childhood]]
* 2003-2005 -- [[Berea]]
* 2006-2008 -- [[Hypercynic]]
* 2008-2010 -- [[Thailand]]
* 2010-2014 -- [[Summa Philosophica]]
* 2015-2016 -- [[Highdeas]]
* 2016-???? -- hello world<<ref "3">>

If the rest of the wiki itself is not the next addition to this vault, assuming I will continue having conversations with myself/myselves for a long time in this medium (let's [[h0p3]] so!), then my future goal is to prune similarly-scaled and completed (or sufficiently achieved) chapters of life from [[Projects on this Wiki]] and store them in this memetic vault.

Perhaps I will need to actually sit down and write memoirs to help give shape to this in a sense. I can provide writings from a time period and writings about that time period.

Being towards death:<<ref "4">>

* [[Autoeulogy]]
* [[Bucketlist]]

-------------------------------

<<footnotes "1" "These works tend to be as well-formulated and articulate as I could be in my given contexts, although the formatting is not always perfect (especially for work grafted into this wiki). I'm autistic and not naturally gifted with language. Further, my oversharing and honesty comes off as stupid, arrogant, and cringeworthy to most people. That's okay though: I probably think and feel the similarly about your life too. It's time to be courageous when we look at ourselves in the mirror of time. I'm not going to be ashamed of it, and I'm not going to hate myself. That isn't useful to me.">>

<<footnotes "2" "So kindly fuck-off, haters.">>

<<footnotes "3" "I assume some parts of me are going to win out as I continue to grind my way through cognitive dissonance and unify myself. What will be the outcome of my [[Frankfurtian Feedback Alignment|2017.03.15 -- Frankfurtian Feedback Alignment]]?">>

<<footnotes "4" "I think this is the most fitting place on the wiki (although it might fit in many places) for an odd writing assignment I've taken up for myself: how should I think about my death? What do I want from it? Stoicism is the mindset, but analysis should emerge. Be practical about death.">>
* Kurzgesagt -- https://www.youtube.com/user/Kurzgesagt
* The School of Life -- https://www.youtube.com/user/schooloflifechannel
* Real Engineering -- https://www.youtube.com/channel/UCR1IuLEqb6UEA_zQ81kwXfg
* Khan academy -- https://www.youtube.com/user/khanacademy
* Wendover Productions -- https://www.youtube.com/user/Wendoverproductions
* Real Life Lore -- https://www.youtube.com/channel/UCP5tjEmvPItGyLhmjdwP7Ww
* ASAPscience -- https://www.youtube.com/user/AsapSCIENCE
* ChrisFix -- https://www.youtube.com/user/PaintballOO7
* CrashCourse -- https://www.youtube.com/user/crashcourse
* Learn Engineering -- https://www.youtube.com/user/LearnEngineeringTeam
* LEMMiNO -- https://www.youtube.com/user/Top10Memes
* Tech Quickie -- https://www.youtube.com/user/Techquickie
* Wireless Philosophy -- https://www.youtube.com/user/WirelessPhilosophy
* Vsause -- https://www.youtube.com/user/Vsauce
* NerdWriter1 -- https://www.youtube.com/user/Nerdwriter1
* Alternate History hub -- https://www.youtube.com/user/AlternateHistoryHub
* Charisma on Command -- https://www.youtube.com/user/charismaoncommand
* Almazan Kitchen -- https://www.youtube.com/channel/UCVVAnxQ2YMC_qlc7QfPA2YQ
A theory of mind is the representation of someone else's [[reality map|Reality map]] in our mind. It's the way in which we believe another mind operates, thinks, feels, infers, desires, believes, etc. 
Japanese martial concept of Shuhari:


<<<
"It is known that, when we learn or train in something, we pass through the stages of shu, ha, and ri. These stages are explained as follows. In shu, we repeat the forms and discipline ourselves so that our bodies absorb the forms that our forebears created. We remain faithful to these forms with no deviation. Next, in the stage of ha, once we have disciplined ourselves to acquire the forms and movements, we make innovations. In this process the forms may be broken and discarded. Finally, in ri, we completely depart from the forms, open the door to creative technique, and arrive in a place where we act in accordance with what our heart/mind desires, unhindered while not overstepping laws."
<<<


It's about hearing the voices of reason inside us, the innerself that offers us the best path to take. 
* Basic nursing (a practical skill which easily jumps into more white collar jobs)
** Useful in a wide variety of contexts

* How to drive

This is the script I use on my current host. It allows us to have several virtual hosts for each member of the family.

```
server.modules = (
        "mod_access",
        "mod_compress",
        "mod_redirect",
        "mod_compress"
)

server.document-root        = "/var/www/html"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"

server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80
index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

mimetype.assign = (
  ".html" => "text/html", 
  ".txt" => "text/plain",
  ".jpg" => "image/jpeg",
  ".png" => "image/png" 
)

$HTTP["host"] == "bookwyrm.life" {
    server.document-root            = "/var/www/k0sh3k-html"
    compress.cache-dir              = "/var/cache/lighttpd/compress/k0sh3k"
}

$HTTP["host"] == "k0sh3k.h0p3.xyz" {
    server.document-root            = "/var/www/k0sh3k-html"
    compress.cache-dir              = "/var/cache/lighttpd/compress/k0sh3k"
}

$HTTP["host"] == "jedihacker.life" {
    server.document-root            = "/var/www/j3d1h-html"
    compress.cache-dir              = "/var/cache/lighttpd/compress/j3d1h"
}

$HTTP["host"] == "j3d1h.h0p3.xyz" {
    server.document-root            = "/var/www/j3d1h-html"
    compress.cache-dir              = "/var/cache/lighttpd/compress/j3d1h"
}

$HTTP["host"] == "kokonut.life" {
    server.document-root            = "/var/www/1uxb0x-html"
    compress.cache-dir              = "/var/cache/lighttpd/compress/1uxb0x"
}

$HTTP["host"] == "1uxb0x.h0p3.xyz" {
    server.document-root            = "/var/www/1uxb0x-html"
    compress.cache-dir              = "/var/cache/lighttpd/compress/1uxb0x"
}

$HTTP["host"] == "antsmelody.life" {
    server.document-root            = "/var/www/antsmelody-html"
    compress.cache-dir              = "/var/cache/lighttpd/compress/antsmelody"
}
```
!! Stuff? (Lol)

* [[Abnormally Hidden Tiddlers on this Wiki]]
** [[Wiki: Center ASCII Art Settings]]
** [[🢔⦗Home⦘🢖 ASCII Art Logo]]

* [[Tiddlywiki Hotkeys]]
* [[Tiddlywiki Wishlist]]

!! Howto:

* [[How to Center Objects on Tiddlywiki]]
* [[Make a Table on Tiddlywiki]]
* [[Embed a Picture on Tiddlywiki]]
* [[Unformat Text Without Code Block on Tiddlywiki]]

!! Resources:

* http://filetotid.tiddlyspot.com/
Confirming changes to the draft tiddler containing the keyboard focus:

```
ctrl-Enter
```
* Chat, messaging, posting, or any means of direct contact on the site itself. Very hard to integrate, from what I can tell.
* Updoots (although, I'm not convinced I have the heart for downvotes).
* Wordcounts
* A visual map or diagram to see the tree structures.
* I'd love to see the "backlinks" (?, that's what I'll call them) of each tiddler. What links to a tiddler? I want to know.
Each tiddler will have a primary author (the part of myself responsible for voicing it) listed in the Tag name. This shows what I take to be the person who wants to show it on the wiki, the person who endorses it, or the persons (I don't see a reason for multi-tagging yet). Untagged will just be h0p3, and we'll have a tag for [[RPIN]] and [[KIN]]. This is a 3-party adversarial system in a way, much like the 2-party + electorate system in the United States. If h0p3 is to be free, then he must maintain his autonomy against [[KIN]] and [[RPIN]]. The point is to unify, not explode in the number of persons. That said, having more identities is not equivalent to being less unified. Maybe that is just the nature of disagreement with ourselves. I don't know. The healthiest election systems are weighted, provide multiple parties, etc. 

<<<
[[KIN]]: Ugh, I know [[RPIN]] is right about something: the most redpilled will emerge from the various groups of us to take over. The nice guy does lose. Maybe I can be metamodern in my redpilledness though, allowing for a new kind of [[KIN]] to emerge to interpret and respect them.
<<<

<<<
[[RPIN]]: That is an astute observation. See: [[Christian Memetics]].
<<<


* The entire wiki is contained in a single html file (the index.html file you are viewing right now). 
** If it is loaded in your browser, then you can still browse it even while offline. 
** You can also save it for offline reading if you wish. 
** Please note that if you are connecting to https://h0p3.xyz, then you may need to clear your browser cache or use private/incognito mode for updates.<<ref "1">> 
* Internal links open up a new wiki-page below your current wiki-page, while external links are opened in a new browser tab.
* Footnotes have a pop-up, but they can also be found at the bottom of the wiki-page.
* The date below the title of each page shows when it was lasted edited. 
* The button in the top-right corner opens the wiki's options, recent pages, search functions, etc. 
* Your URL bar shows a re-usable link to the ordered layout of the wiki-pages you currently have opened. 
** Clicking on a wiki-page title link will make it the primary "currently targeted" wiki-page in the ordered layout in your URL bar. 
* There are many saveable custom options and configurations for offline users, but users are unable to make any modifications to the published wiki.
*Don't forget to look through the homepage options (About, Projects, Connect, etc.).

* Navigate by taking links forward, and clicking "X" in the top right-hand corner to go backwards. 
** Note that Tiddlywiki doesn't have a hotkey for closing windows yet. 
** You can back just use your browser hotkeys though: alt+left or alt+right to navigate through your history. 


Tips for Authors:

* Upgrade your Tiddler: http://tiddlywiki.com/upgrade.html

-------------------------------------------------------------------------------------

<<footnotes "1" "I've not yet figured out a way to permanently maintain no-cache metatags in Tiddlywiki (since it overwrites them).">>

* [[2017.02.05 -- Letter to My Children]]
* [[R&C]]
**[[2017.01.10 -- Letters with R]]
**[[2017.01.16 -- Letters with R]]
**[[2017.01.17 -- Letters with R]]
**[[2017.01.23 -- Letters with R]]
**[[2017.02.05 -- Letters with R]]
**[[2017.02.06 -- Letters with R]]
**[[2017.02.12 -- Letters with R]]
**[[2017.02.18 -- Letters with R]]

[[2017.02.05 -- Letter to My Immediate Family]]
* [[2016.10.17 -- Letter to Mom and Dad]] -- Unsent
* [[2016.25.12 -- Christmas Letter to Parents]]
* [[2017.01.09 -- Post-Kids'-Birthdays Letter]]

* Computing

** Digest and Organize my thousands of bookmarks

**RPi

* Short-term
** Call Thompson guy
** Find font and make stencils, ask wife for printouts.
** Firesprinkler, apply
** TEC Electrician positions, apply
** HTTPS
** greatmagus.life






* Abilities
** Vicarity -- At-Will Type
*** I grant an ally the chance to use one of their abilities of my choosing (I also choose the targets). The character's player must agree to accept my divine gift, else my ability fizzles.
** Harm Inversion -- At-Will Type
*** My target's next spellcast or attack has a chance to heal and cleanse their target instead of damaging or debuffing their target.
** Break Fourth<<ref "1">> into Love and Merriment -- Daily Type
*** Target player (not character) must get me a drink of my choosing and gleefully sing me a song (of their choice). Furthermore, that player's character falls in love with my character for the rest of the game.<<ref "2">>
** Bestow -- Conditional Type
*** Any time I move into a position adjacent to any ally, we both have a chance to be healed.
** Divine Aura -- Innate
*** I and all allies adjacent to me roll twice for any saving throw.

* Weaknesses
** Hardcore Pacifism -- I cannot directly harm any PC or NPC.
** Pornographic Habits -- I rarely save against traps, and they are super effective against me.
** No Rest for the Wicked -- Anytime my character is damaged or I, the player, roll dubs, I must do one sit-up, push-up, or jumping-jack IRL.


---

<<footnotes "1" "Breaking the 4th wall, amiright?">>

<<footnotes "2" "This can't be annoying, right? A buffbot deserves some perks, I think.">>
Avoiding the Riker problem isn't easy. We would literally need to watch ourselves step outside of our brains into another container. I'm not sure how that would even work.
Family of Arguments: [ [[Arguing Against Reason]] ] -=- [ [[Less Wrong]] ] -=- [ [[Doing Our Best]] ] -=- [ [[My Purpose]] ]

Doing your best just is the definition of rightness. Do your best since it is the best you can do (beautiful circularity).

----------------------------

I have been told many times that I need to stop trying to be right. I suspect this is an attempt to prevent me from thinking on my own and from disagreeing with them. Perhaps it is a plea got something else (call me out on a strawman, but steelman my argument as well); they didn't say it well though (and I'll show you why).
Can you be wrong in trying to be right? Sure. We can say you didn't "try to be right" in the right way, or i.e. you failed to be right. That doesn't mean we shouldn't try to be right.

Trying to be right is aiming for excellence (//arête//) against some standard of the good of X, the F-ness of a practice. 

Is "trying to be right" aiming for perfection? Not directly in any maximally ideal sense (as a final end, a final goal, yes, but we quickly must realize that only partial perfection is possible for us). We aren't ideal (we are finite, fallible, etc.), and thus it wouldn't be practical to aim for ideal perfection. But, whatever is practical for us generates a line of maximum potential (each passing moment, experience, and modification of our lives may result in this line moving). The goal is to reach our maximum potential, to be excellent in context. If that isn't the telos, then why be excellent? Why be right? What are we aiming for? How is that not a new kind of "right" to aim for?

The problem is intractable. You must beg the question. Not caring about "being right" results in much higher degrees of logical inconsistency, disintegration (to some extent), and frankly gives you no metric or method to find happiness. If happiness is your telos, then you do care about being right. If you were to care about what God says, then you do care about being right. If you care about anything, then you do care about being right, being right towards, being right with, acting rightly, thinking rightly, etc.

Are you really right when you say I'm trying too hard to be right? How hard are you trying to be right, and why? Isn't it obvious that there are fundamental things we have to try hard to be right about? Don't you see the very concept of morality, of the normative, of the Right? 

Try to be right. It is obviously an axiom (even the very concept of axiom begs the question). 

Here is a not put-enough-together argument, which is sad considering how long I've been working on it (it is a long told philosophical story running through many cultures; we must wrestle this meme). This is my best rendition of it (which is dreadful, abysmal, and not well expressed). It is the Hermeneutic Circle I'm most worried about:

Right, Righteous, //riht//, //gath//, united, standard of unity, the Good of unity, Righteousness, //díkaios//, Righteoused, Justified.<<ref "1">> //riht//, //gath//, //arête//, and //díkaios// have fundamental links (there are many words for it), and they clearly have some crucial relationship with The Good. I know you see them. That pattern is not an accident. Plato, Aristotle, and Kant saw it deeply.

We pursue the Good.<<ref "1.1">> The Right is necessary as a means to the Good. It is our Plight to seek the Good via seeking the Right. Thus, we pursue the Right. This is the pragmatism of perfection. Doxa and Praxis must be welded together here in the "right" way.

But further, we can never have the Good in and of Itself.<<ref "2">> It is the nature of the Good that we can't hold it, that we can only partake of it. We can only dance in the whispers and shadows of the Good, and that is only by being Right. We can't be perfectly Right, and that means we can't be perfectly Good. We can't really understand the Good in its entirety by definition.<<ref "3">> We are less than, and that's okay. It is untouchable and unknowable; it is Kant's metaphysics. But even the Mighty Kant can be wrong.

Unfortunately, upon much closer inspection, after actually seeing the corners which skepticism (from Analytic, Continental, and Eastern traditions) has //rightfully// driven us into (they have shown us the boundaries, outlines, and cores), it becomes apparent that the best answers demonstrate that no system of Right (or the pursuit thereof) can be logically consistent (cannot be Right with itself). Rightness is incomplete, and it appears by definition. It's unintelligible not because we are fallible, finite, and mere mortals, but because it actually isn't conceptually possible. I pursue a thing which doesn't exist in pursuit of the Good (which may Itself simply be a construction of our minds if we do not reduce it to Instrumental Reason). I want to do a Right thing, to partake of a Good.

As much as I railed against Post-modernism before understanding it, now that I see it and realize what it is actually about, I weep. I cannot unsee it. In pursuing the Right, it is clear that my starting place made uncorrectable assumptions. I need a new foundation for pursuing the Right and Good (and maybe even those concepts must be reinterpreted, but I would have no idea where to begin and why). 

My only hope is to find a Metamodern solution. What fundamental philosophical paradigm answers postmodernism? I assure you, it is not by going backwards (although, we must very carefully understand our predecessors; we must learn from the past as we attempt to create our futures). Postmodernism is extremely successful because it will take whatever you feed it and reduce it to absurdity using the very standards you accept. Postmodernism is a very deep problem. 

I set out in 2010 to answer it. It took years of training to even begin to understand how large a creature I was wrestling, that I had it by its toe, and it had me pinned like a bug. I'm here to rally against it again. I want my life to be meaningful and intelligible to me. Ultimately, I am still pursuing some kind of Rightness and Good, but I do not understand them well enough.  

----------------------------

Doing your best just is the definition of rightness. It's the "ought" implies "can" rule. "Can" here is a very complex capacity, and we have yet to even prove our freedom. But, even if we needed to hedge, even if we assumed for practical and epistemically prudential reasons a metamodern morality and our agency, when we get past the skeptical baggage, we are still left with an emormously complex question of what counts as "can." Without it, we cannot answer "ought." 

Here is the [[Neo-Kantian Slip]] that I hate: 

In their skewed understanding of human nature, they lose sight of The Good and The Right. They correctly lower the standards, but where they have put the standards we should be aiming for is much higher than they've accepted. They legitimately think they are good people. Any serious Kantian knows they are a bad person, that we are all bad people. I see them as people who selfishly confabulate and eisegetically inject a false interpretation of [[Metaethics]] that has lowered the bar enough that "coincidentally" justify and show they are good people. They move this goal post so as to maximize their happiness while still having the ability to virtue signal from. I'm serious. My professors really thought they were good people deep down; not one would honestly and outspokenly call themselves out. Sure, they would give you a politely humble response if you asked them, but that is not who they were. That's not who any of us are. We really do suck. Just because we suck doesn't mean nobody has dignity.

Perhaps even Personhood dignity and respect should come in degrees. I've been too dogmatic about it (and yet have made argument in that direction countless times). 

I have long had a struggle in me. Do I see people as sinners, saints, or something in between? Who are we? What? How? Why? When, Where? Who? Tell me. I need to know. There are big differences in the kinds of inferences we ought to make when the glass is half full, half empty, or something else. 

Beyond some basic theory of economics/financial principles/etc (an enormous portion of the Bible worries about money and power), the Bible and Economists share one fundamental thing in common: people are selfish, they are sinners. They see the same thing, they just use different words to describe it. Crucially, while the Bible and Economists are studying the same thing (who we are) and come to very similar descriptions of who we are, they do not provide the same prescriptions about who we should be. 

This is why I've had such a hard time being a businessman. It's why I stopped going into business and started going into philosophy. 

----------------------------

<<footnotes "1" "St. Paul was crucially onto something, dare I say he was //right// in important ways. I have studied the concept of Justification - it has been central to my philosophical training (and to my academic work on this subject over the past decade and a half). I think in at least a minimal way, I am justified in my understanding of justification.">>

<<footnotes "1.1" "Which may simply be an idea, a concept. I do not think it is a Being anymore, and I do not buy Plato, Aristotle, or Judeo-Christian Gods (or any other gods for that matter).">>

<<footnotes "2" "Plato, Aristotle, Kant, and Gödel know it (in different ways). I see that they know it. I've yet to consult Spinoza (I have my suspicions); we will see what that monster has to say. I can rarely give higher praise to a claim or concept when all of them agree (across the gulf of time, those memes must have been mighty strong for these geniuses of geniuses of geniuses to have agreed to such a powerfully cosmos-defining claim [St. Anselm, among a great many others, agreed too, but I'm hesitant to put him on the previous list because...look at that beautiful list.]), and yet I know I run the risk of Appealing to Authority.">>

<<footnotes "3" "I just sweepingly defined 300B.C.-1400AD on the topic. Arguably, we are striking at the very core of The Great Conversation, i.e. The Humanities Project. It may, to some minimal extent, be ineffable to us. It is the Gödellian Incompleteness of our existence.">>

```bash
#!/bin/bash
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                                                  ,,    ,,       #
#      `7MMF'                      mm            `7MM  `7MM       #
#        MM                        MM              MM    MM       #
#        MM  `7MMpMMMb.  ,pP"Ybd mmMMmm  ,6"Yb.    MM    MM       #
#        MM    MM    MM  8I   `"   MM   8)   MM    MM    MM       #
#        MM    MM    MM  `YMMMa.   MM    ,pm9MM    MM    MM       #
#        MM    MM    MM  L.   I8   MM   8M   MM    MM    MM       #
#      .JMML..JMML  JMML.M9mmmP'   `Mbmo`Moo9^Yo..JMML..JMML.     #
#                                                                 #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Ubuntu 16.04 Post-Installation "Batteries Loaded" Script        #
# Please, do not blindly run this script.                         #
# Read it, modify it, and then use it as you wish.                #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #



############# Preparations #############

# update + upgrade
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean -y

# update pips
sudo apt-get install python-pip -y
sudo apt-get install python3-pip -y
sudo pip2 install --upgrade pip
sudo pip3 install --upgrade pip



############# OS changes #############

# Deja Dup/Duplicity Backup doesn't work without installing this first.
sudo apt-get install duplicity -y
sudo apt-get install python-gi -y

# Typeface
sudo add-apt-repository ppa:no1wantdthisname/ppa -y
sudo apt-get update && sudo apt-get install libfreetype6 -y

# Synaptic Package Manager
sudo apt-get install synaptic -y

# Ubuntu tweak
wget -q -O - http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
sudo sh -c 'echo "deb http://archive.getdeb.net/ubuntu xenial-getdeb apps" >> /etc/apt/sources.list.d/getdeb.list'
sudo apt-get update
sudo apt-get install ubuntu-tweak -y

# Gnome tweak
sudo apt-get install gnome-tweak-tool -y

# Unity tweak
sudo apt-get install unity-tweak-tool -y

# Compiz config editor
sudo apt-get install compizconfig-settings-manager -y



############# CLI App Installations #############

# unrar
sudo apt-get install unrar -y

# Openssh - change to port 4222
sudo apt-get install openssh-server -y
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
sudo sed -i 's/^Port 22.*/Port 4222/' /etc/ssh/sshd_config
sudo systemctl restart ssh

# Golang
sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable -y
sudo apt-get update
sudo apt-get install golang -y

# lftp
sudo apt-get install lftp -y

# midnight commander
sudo apt-get install mc -y

# htop - top replacement
sudo apt-get install htop -y

# discus - disk usage display
sudo apt-get install discus -y

# ncdu - Disk Usage Tool
sudo apt-get install ncdu -y

# jed - text editor
sudo apt-get install jed -y

# bmon - bandwidth monitor
sudo apt-get install bmon -y

# nethogs - per process throughput monitor
sudo apt-get install nethogs -y

# byobu - Terminal multiplexer
sudo apt-get install byobu -y

# dtrx - Easy Decompression
sudo apt-get install dtrx -y

# mtr - Traceroute + Ping utility
sudo apt-get install mtr -y

# aria2c - Wget/Curl Replacement
# Usage: aria2c foobar.com/file.xyz
sudo apt-get install aria2c -y

# w3m - Console Web Browser
sudo apt-get install w3m -y

# weechat - IRC client
sudo apt-get install weechat -y

# finch - all-in-One pidgin-like messaging client
sudo apt-get install finch -y

# inxi - System Info Viewer
# Usage: inxi -Fi
sudo apt-get install inxi -y

# sshfs - Mount remote folder over SSH
# Usage: sshfs name@server:/path/to/folder /path/to/mount/point
sudo apt-get install sshfs -y

# xonsh - Pythonic bash, let's upgrade pips
# Usage: don't forget to prepend "#!/usr/bin/env xonsh" to your .xsh file
sudo apt-get install python3-pip -y
sudo pip3 install xonsh

# when-changed - Do X when a file changes
sudo pip install when-changed

# hashfile - another hash tool
sudo pip install hashfile

# Ghetto SSH VPN
# Usage: sudo sshuttle -r username@sshserver-ip 0/0
sudo apt-get install sshuttle -y

# Neofetch
echo "deb http://dl.bintray.com/dawidd6/neofetch jessie main" | sudo tee -a /etc/apt/sources.list
curl -L "https://bintray.com/user/downloadSubjectPublicKey?username=bintray" -o Release-neofetch.key && sudo apt-key add Release-neofetch.key && rm Release-neofetch.key
sudo apt-get update
sudo apt-get install neofetch -y



############# GUI App Installations #############

# Hexchat IRC client
sudo apt-get install hexchat -y

# qBittorrent is still my favorite native GUI torrent client at this point. It is my uTorrent 2.2.1 replacement.
sudo apt-get install qbittorrent -y

# Chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i ./google-chrome*.deb -y
sudo apt-get install -f -y
rm google-chrome-stable_current_amd64.deb

# Furious Iso Mount 
sudo apt-get install furiusisomount -y

# Sublime Text 2 - don't forget a key
sudo add-apt-repository ppa:webupd8team/sublime-text-2 -y
sudo apt-get update
sudo apt-get install sublime-text -y
# Make Sublime Text 2 your default Text Editor
sudo sed -i 's/^gedit*/subl/' /usr/share/applications/defaults.list

# Pidgin
sudo apt-get install pidgin -y

# Hexchat
sudo apt-get install Hexchat -y

# qTox
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/xUbuntu_16.04/ /' >> /etc/apt/sources.list.d/qtox.list"
sudo apt-get update
sudo apt-get install qtox --allow-unauthenticated -y
# Create auto-startup file
sudo cat <<EOT >> ~/.config/autostart/qtox.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=qTox
GenericName=Tox client
Comment=qTox is a powerful Tox client that follows the Tox design guidelines.
TryExec=qtox
Exec=qtox %u
Icon=qtox
Categories=InstantMessaging;AudioVideo;Network;
Terminal=false
MimeType=x-scheme-handler/tox;application/x-tox;
EOT
sudo rm /etc/apt/sources.list.d/qtox.list

# VirtualBox
sudo su -c 'echo "deb http://download.virtualbox.org/virtualbox/debian xenial contrib" >> /etc/apt/sources.list' 
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-5.1 dkms -y

# Filezilla
sudo apt-get install filezilla -y

# Kodi - use their repository because of Debian's lack of RAR
sudo add-apt-repository ppa:team-xbmc/ppa -y
sudo apt-get update
sudo apt-get install kodi -y

# VLC
sudo apt-get install vlc -y

# Gimp
sudo apt-get install gimp -y

#Calibre
sudo add-apt-repository ppa:n-muench/calibre2 -y
sudo apt-get update
sudo apt-get install calibre -y

# NoMachine
wget http://download.nomachine.com/download/5.1/Linux/nomachine_5.1.62_1_amd64.deb
sudo dpkg -i nomachine_5.1.62_1_amd64.deb

# Openvpn for Network manager
sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome openvpn network-manager-vpnc -y

############# Preparations #############

# Truecrypt
sudo add-apt-repository ppa:stefansundin/truecrypt -y
sudo apt-get update
sudo apt-get install truecrypt -y



############# Requires user input #############
# Resilio (btsync-GUI)
sudo apt-get install curl -y
sudo sh -c "$(curl -fsSL http://debian.yeasoft.net/add-btsync-repository.sh)"
sudo apt-get update
sudo apt-get install btsync-gui -y

# Resilio (btysync NO GUI)
#sudo sh -c 'echo "deb http://linux-packages.getsync.com/btsync/deb btsync non-free" > /etc/apt/sources.list.d/btsync.list'
#wget -qO - http://linux-packages.getsync.com/btsync/key.asc | sudo apt-key add -
#sudo apt-get update
#sudo apt-get install btsync
#sudo service btsync start



############# Gaming #############

# Steam
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install steam -y

# PlayOnLinux
sudo apt-get install playonlinux -y



############# Rice #############

```
```bash
#!/bin/bash
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                                                  ,,    ,,       #
#      `7MMF'                      mm            `7MM  `7MM       #
#        MM                        MM              MM    MM       #
#        MM  `7MMpMMMb.  ,pP"Ybd mmMMmm  ,6"Yb.    MM    MM       #
#        MM    MM    MM  8I   `"   MM   8)   MM    MM    MM       #
#        MM    MM    MM  `YMMMa.   MM    ,pm9MM    MM    MM       #
#        MM    MM    MM  L.   I8   MM   8M   MM    MM    MM       #
#      .JMML..JMML  JMML.M9mmmP'   `Mbmo`Moo9^Yo..JMML..JMML.     #
#                                                                 #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Ubuntu 16.04 Post-Installation "Batteries Loaded" Script        #
# Please, do not blindly run this script.                         #
# Read it, modify it, and then use it as you wish.                #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #



############# Preparations #############

# make the usual directories
mkdir ~/bin
mkdir ~/scripts
mkdir ~/src

# add Gopaths
mkdir ~/src/go
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export GOPATH=$HOME/src/go' >> ~/.bashrc

# Set PATH and update .bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:~/bin:~/scripts' >> ~/.bashrc
source ~/.bashrc



############# Aliases #############

# upgrade - does it all
echo 'alias upgrade="sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean -y"' >> ~/.bashrc 

# Opens a file with whatever program would open by double clicking on it in a GUI file explorer.
# Usage: try someDocument.doc
echo "alias try='gnome-open'" >> ~/.bashrc 

# History search (use: hs sometext)
echo "alias hs='history | grep $1'" >> ~/.bashrc 

# toxic - run the toxic CLI client
echo 'alias toxic="cd ~/bin/toxic/ && ./run_toxic.sh"' >> ~/.bashrc 

# push 'n' pop dem directories (a stack for 'cd')
echo "alias +='pushd'" >> ~/.bashrc
echo "alias -- -='popd'" >> ~/.bashrc
echo "alias ?='dirs -v'" >> ~/.bashrc

# Delete current directory (ask for permission)
echo "alias deldir='find . -mindepth 1 -delete'">> ~/.bashrc

# update bashrc
source ~/.bashrc



############# User applications #############

# toxic - cli tox client
cd ~
wget https://build.tox.chat/view/Clients/job/toxic_build_linux_x86-64_release/lastSuccessfulBuild/artifact/toxic_build_linux_x86-64_release.tar.xz
dtrx toxic_build_linux_x86-64_release.tar.xz
mv toxic_build_linux_x86-64_release ~/bin/toxic
rm toxic_build_linux_x86-64_release.tar.xz

```
This is scumbag territory, no doubt. However, there is something inside each of us which at least appreciates cleverness. The cracks in the system are there. We are all deeply manipulable. Obviously, I don't intentionally engage in this behavior. I'm not condoning it either. As an analogy, I can appreciate Nazi blitzkrieg without actually attaching any positive normative force to it. These ideas can be hilarious and intriguing to think about. 

Aphorisms, Truisms, and Social Facts:

*Sometimes it's easier to ask for forgiveness than to ask for permission.
* Look like you belong.
** Corollary: look busy.
** It's easy to trespass with maintenance crew gear, an orange safety jacket, a clipboard, etc.
* The first person to talk loses.
** Humans have a hard time dealing with silence, social awkwardness, etc. 
** As an aside, direct multi-second eye contact is a strong social catalyst
* People will remember not what you said but how you made them feel.
* Most people like talking about themselves so ask lots of questions about them.
* When a group of people laugh, people will instinctively look at the person they feel closest to in that group.
* Always be honest so when you have to lie, people will believe you.
* You can judge the character of a person by how they treat people who can do absolutely nothing for them.
* The key to confidence is walking into a room and assuming everyone already likes you.

Getting a job:

*Get a burner phone and use yourself as a reference on job applications. 
*If you have gaps in your résumé, fill your work history with fake freelance computer work or renovations.
** International work and references you control may help
* Use tiny, white font (or black on black lines/objects) to pack keywords into your résumé in order to trigger automated parsing/searching 
** From what I understand, they are getting better at catching this.
* For interviews, the Primacy Effect: schedule interviews early, since items are more memorable if they are presented earlier. 

Saving money (i.e. theft):

* Continental breakfasts at hotels are there for the eating.
* Most paid car parks have a 'lost ticket' button which is the maximum daily fee. If you feel like parking for a week or so, just press that button instead of paying for the week.
* For a show/game/etc., buy cheap tickets, research empty/unused/unsold expensive tickets, and act like you belong where you don't.
* If something you own breaks, just buy a replacement and return the broken one to the store.
** Watch for serials, make sure they have relaxed return policies, etc.
* Similarly, liberal return policies can essentially act as free rental policies.
* Get free food at any fast food restaurant by calling or pulling up and saying they forgot a burger or fry in your order
* Complaints in the service industry (whether in person or over the phone) will often result in having your service comped. 
* Self-checkout is exactly what it sounds like.

Saving Time:

* Want something on Craigslist from another town but dont want to travel? Ask them to meet you half way, but claim to live in a place twice the distance that you actually do from them. You live at the midpoint now.
* Print out your own handicap permit.

Social Engineering and psychological hacks:

* At a crowded bar, and can't get a seat? Go up to the hottest woman there, and hit on her. She'll leave in disgust, and you can take her seat.
* Unexpected, raw, open aggression, particularly for one-time meetings, causes flight mechanics. 
** You can also use it privately and be two-faced in public settings. That will drive them insane.
* Simply say "Thank you to compliments" and freely offer compliments when it benefits you.
* If someone doesn't completely answer a question, just keep eye contact and don't say anything. They will eventually complete the thought.
* If you want to make someone do something make them chose between two things (a.k.a False Dichotomy).
** False compromise does something very similar. Take a more extreme position than you need, and act like you've compromised when taking up your original position.
* When walking into a crowd, don't make eye contact with oncoming people. Look past everyone, and they'll move out of your way.
* If you want someone to do something, ask it in question form rather than giving it as an imperative order. 
* If you want to convince someone it's not the facts that matter but the confidence with which they are presented.
* Saying someone's name improves their opinion of you. 
* Repeating back what someone says in a different way ("so what you're saying is,") after they say it makes them think you are a good listener and a good person.
* Touch someone's right arm when suggesting they should do something for you, they're more likely to do it.
* If you really want something from someone, frame it as an offer rather than a request.
* Foot-in-the-door/gradual commitment phenomenon: people are more likely to agree to do a task for you if you ask them to do something simpler first.
** This is a form of false compromise
* If you get yourself to be really happy and excited to see other people, they will react the same to you.
* If you have a warm hand when you shake somebody's hand, you immediately become a more desirable person to get along with.
* People have a certain image of themselves and will fight tooth and nail to cling to it. You can avoid insulting someone by not saying anything that shows you perceive them differently than what they're trying to present.
* Romance: Look up the false attribution of arousal. Basically, if you want to make someone like you, get their heart rate going.
* Attractiveness: Wearing red. For women, the color red makes them exponentially more attractive.
* Seeking Approval: Body mirroring. Works well for interviews.
* In debates, do not state or stance or background (since this induces your audience to see you as biased), instead just give your argument.
* Reminding people of their death will make them more likely to follow a charismatic leader.
* The placebo effect is actually more powerful than some medications. 
* Pay attention to people's feet. If you approach two people in the middle of a conversation, and they only turn their torsos and not their feet, they don't want you to join in the conversation.


Work hacks:

* If you want to sound sick when calling into work, lie on your back while hanging your head over the edge of the bed. You will sound congested.
* Many employers legally cannot call you into work if you claim to be intoxicated.
* Shit at work, not at home.
**Just don't shit yourself out of a job.
* Live-booting drives, USB-Wireless adapter, any source of interwebs, and a smart desktop appearance allows you to own most machines without detection
** There are definite exceptions. You'd have to know what you are doing.




```
"""
Text to be unformatted goes here.
"""
```
* Soda-water Carbonation system/machine
From my standpoint: 

//Virtue is Knowledge//

[[<=>]]

//[Virtue] is [Wisdom] is [A Unique, Normative Kind of Practical Knowledge]//

[[<=>]]

//[Virtue (for me)] is [Wisdom (for me)] is [Knowledge (for me is my habiturally trained [[intuitions networks|Intuition Networks]]) in our [[fastmind|Fastmind]]]//

[[<=>]]

//Virtue is Intuition//

Or, perhaps Virtue isn't really knowledge, it's a very special kind of knowledge. Virtue requires developing excellence/mastery embedded in the Intuition networks of our fastmind. This is our moral psychology. 

This is incredibly in line with the literature. The Triune Greek Philosopher Gods were fucking geniuses. They were incredibly in touch with who they were to have deduced what they did with what little evidence they had.

<<<
[[RPIN]]: ....or....that is the natural state of memetic evolution. You are just getting in tune with the ancient beast inside you (that set of intuitions we are born with from evolution, embedded in ), the oldschool natural way, but now you know far more about these beasts and should take up a different position that people who lived thousands of years ago.
<<<
I've decided the best (and unfortunately weakest) definition of Vocation I can find is that which we will do for free, but especially that which requires sacrifice or may not eventually result in our happiness. 
Since Plato, we’ve known that democracy sucks, but we’ve also seen a solid, practical case made for it simply in virtue of not having a better option actually available to us. Tyranny of tyrants, oligarchies, and majorities in democracies will always be a problem. 

This separation between the legal and moral realms is odd. Some people want to paint it as two kinds of normativity (that just sounds fucking stupid though). Ought is ought. There is either a unified normative theory or nothing. 

Weird things come out of this split. Censoring, as a practice, can be done morally. Practically and politically, however, it will be abused. Hence, even those things which we might morally wish to censor may need to be left untouched so that we can protect those sorts of speech which are necessary to a healthy, informed public.

Anyways, I would absolutely love to ban most people from voting. Fuck people. Most of us are retarded. It would be best, in some hypothetical way, to make sure everyone passed certain tests to allow them to vote (you need to be smart, informed, moral, etc.). Imagine how a small, well-educated voting base would perform (sounds like I’m trying to describe the ideal congress)? Awesomely, right? But, who is going to design these tests and implement them? How can such a thing not be abused (like the censorship issue)? Eh, it can’t. Basically, I don’t think we can have a political system other than democracy just because there will always be some pieces of shit/corrupt elites which will abuse the system.

So, everyone has a “legal” right to vote. That doesn’t mean everyone has a “moral” right to vote. I think most people are immoral when they are so arrogant to think they have the right to vote (hell, I don’t even know if I’m qualified to vote). 
''How did you first find out about VPNs?''

(I’m giving you more than you asked for in this section, but I don’t want to deceive you with a shallow
answer.)

I want to be clear about this question. The majority of people who use VPNs don't even know what a
VPN really is. What do you mean by VPN? (I believe there are valuable comp-sci and philosophical
questions about what even counts as a VPN or a functional network for that matter. I’ll set those aside
for now though.) Let me try to give a quick account of the standard term.

VPN stands for Virtual Private Network. Roughly, a VPN is a secure private network which sits on top of
or operates through unsecure networks. In most cases, a VPN is used to extend a private network (like a
home or corporate network) over a public one (like the internet). In a way, a VPN can be used to create
a virtualized WAN. Standard VPN tools use a cryptographically secure tunnel between a client and
server, enabling the client to remotely participate in the server's LAN. You might imagine this as running
a secure, digital LAN cable from your client over the internet to the server’s LAN. Obviously, there are
many uses for this, and the ability to proxy is just one of them.

In my opinion, the majority of people who use VPN's in non-commercial settings, however, only use
them as a secure tunnel to a server which acts as a proxy to the clearnet. Users seeking the proxy
function of a VPN are provided two significant features: 1) a degree of privacy, namely middlemen (like
ISPs) cannot modify or meaningfully inspect the encrypted information passed between the VPN client
and server, and 2) a degree of anonymity, since users connecting to third party internet services are able
to masquerade as coming from the server’s IP rather than their own.

VPNs, however, are used for far more than proxying. Thus, I wonder if you are really asking about proxy
services here.

If so, I first encountered proxy services (which weren't standard VPNs) in the 90s, learning about
penetration testing. That said, I often prefer VPNs to other proxy techniques because good VPN
protocols/tools are open source, heavily field tested, reliable, fast (5-10% throughput overhead, with a
reasonable increase in latency), widely available, and, most importantly, they make it really easy to force
all of your internet traffic through the VPN tunnel (there are exceptions). In the anonymity+privacy arms
race we face in the digital era, VPNs have been one of the few efficient, effective, and yet easy to use
tools available to the masses.

VPNs are not perfect, but they are often good enough. I think a VPN is often a cost-efficient and effort-
efficient way to gain significant privacy and anonymity for many users. I feel morally obligated to say
this: Anyone with significant privacy or anonymity needs (i.e. getting caught would result in major fines,
going to jail, or worse) should NOT rely upon just a VPN! Individuals should evaluate their risks and
understand what their tools buy them (we can't afford to be illiterate in these matters). In many cases,
an openVPN service will suffice. Users might also benefit from rolling their own VPN (via a VPS or
dedicated server) rather than relying upon a third party service.

I'm not even sure when I first encountered a standard VPN, but I know I used a VPN to play LAN games
over the internet with friends as a teenager. I also used VPNs to grab files from my home computer from
my dad's workplace. These VPNs were not used for the sake of proxying.The first paid VPN service I used for the sake of proxying was about ten years ago. I found out about these VPN proxy services because I had been searching for a method to provide privacy against Comcast's packet inspection, primarily to prevent their routing algorithm from throttling my torrent connections (one of the first and worst violators of net neutrality principles which ISPs used to follow), and to provide anonymity against trackers and other swarm participants as just a bonus (pirates weren't hunted down in the same way back then, so it was just a bonus).

''How did you get involved with VPNs and the TOR network?''

For standard VPNs: gaming, penetration testing, and pirating. Searching the internet and reading books
is how I first understood anything about them.

As far as I’m concerned, Tor is a VPN. It’s a really specialized kind of VPN with a well-designed
architecture and protocol for a variety of threat models. When it comes to anonymity+privacy, Tor is a
sledgehammer. No other single tool is as effective at handling so many problems that users face. For
example, Tor is one of the few tools available when you can’t afford to trust a VPN provider. Tor is not
perfect (even if it is better than standard VPNs). Again, I feel morally obligated to say: Anyone with
significant privacy or anonymity needs (i.e. getting caught would result in major fines, going to jail, or
worse) should NOT rely upon just Tor!

I don’t remember when I first heard about Tor. I think I stumbled upon it on 4chan and/or some tech
news sites many years ago. I tried it out for fun, but, for the longest time, it wasn’t much more than a
toy for me. I didn’t become strongly invested in Tor as an instrument of freedom and human rights until
maybe 7 years ago.

''What made you interested in additional levels of online security and anonymity? Why do you use
VPNs and other online privacy tools?''

I’ve been interested in privacy and anonymity since I was twelve. I read many non-fiction books and
articles on hacking, cryptography, the history of US intelligence agencies, censorship, etc. as a teenager.
Fiction also opened my eyes. After reading 1984 and Animal Farm, I dove into Orwell's work, and others.
Reading tech news sites, following forums and other social media sites, and talking with people have
helped cultivate my interest in privacy and anonymity as well.

These issues really struck me even harder when I moved to Thailand. I got to see first-hand how
censorship plays out in Thailand (and I only now see how incredibly effective the wealthy and powerful
aristocracy of first-world Western nations are at censoring and controlling the flow of information). I
was able to see the real moral value of piracy there as well, and it’s an experience that has led to my
rejection of the moral basis of Anglo-American intellectual property regimes. For both censorship and
piracy, standard VPNs, Tor, i2p, etc. have been invaluable to me.

Over time, I’ve come to see how important anonymity and privacy tools are for people in all nations.
These tools are social, political, educational, and economic equalizers and mobilizers. Many parts of our
lives require or are vastly improved by having access to anonymous and/or private information
exchanges. These tools help overcome censorship and enable us to subvert politically and sociallycoercive forces. These tools are necessary for overcoming global class warfare and the oppression of the
poor and disenfranchised. I strongly believe that people have a human right to freely access non-private
information and to use their minds as they fit, and these are crucial tools for the people in what I believe
is the primary digital war of the information age.

''Can you expand on your involvement with TOR?''

I started by donating money to foundations for it. Eventually, I realized that I could hunt around for
better deals on VPSs and contribute directly to the network myself. So, I’ve run relays, bridges, and exit-
relays for years. I can’t afford much, but I do what I can. At one point, about 1% of Tor traffic went
through my relays. Unfortunately, I can’t run an exit node anymore. It’s a dangerous and difficult thing
to do on someone else’s servers.

''Do you think that Americans are becoming more conscious of online security?''

Maybe. It depends on what you mean by “becoming more conscious” and by “online security.”
Here’s a shitty, simple, and honest answer to what you probably mean by that question: Some
Americans, yeah, but the masses, not much. It’s a complex issue.

Improving one’s technical aspects of computer security practices is hard work. It requires literacy and
effort to implement. There is a risk/reward problem that acts as a barrier to the adoption of
improvements in security practices.

As an example of this complexity, from my reading and experience, I don’t believe that Millennials are
any more computer literate than older generations. Their technical security practices are just as bad as
older generations. I believe younger generations, however, have a different ethos and value privacy and
anonymity more highly than older generations. It often doesn’t play out with privacy and anonymity
through standard technical means, though. It plays out in more practical and social ways, through what
they say online, the kinds of communities they join, how they compartmentalize their digital lives, etc.
This is a kind of security practice with a certain kind of awareness.

Do you mean to ask whether or not I think VPN usage is on the rise? I’m pretty sure it is just a fact that it
is on the rise. More and more people are joining the technical arms race. Why do they use them? Some
for piracy, others to masquerade as coming from the US or other origins (content can be censored and
blocked by nation or area), others for professional reasons, etc.

''Were you surprised at Edward Snowden’s revelations? Did they impact the way you browse, or were
you already deep into extra security before?''

I was not surprised. I’m not trying to sound conceited. I think I’ve been paying attention for a while,
though (besides history and it repeating itself, we’ve had many public hints), and I’ve a minimal enough
technical knowledge and imagination to make an educated guess about the US government’s capacities
and practices.There’s a ton more than just “the way I browse” at stake here. I use the internet for a lot more than browsing http sites.

Part of the impact is that I’m more willing to talk about the issues with people, and I feel even more
vigilantly aware of how it affects our lives. A lot of people would have considered the lesson and claims
from those revelations as a conspiracy theory or something irrelevant to their lives before. Now we can
have a somewhat more open discussion about it.

I still think there are many barriers to the changes we need, and I am not hopeful that we’ll do anything
about it. I don’t think most people are technically literate enough to understand what’s happening
(which isn’t their fault), and I think they are busy doing other things with their lives (understandably).
Further, even for those who understand these problems, many people have just given up on securing
their privacy and anonymity, as if the loss is inevitable or a deep inconvenience.

For example, I don’t even use a VPN or Tor to protect and mask my everyday traffic. It’s just not worth it
for me. I’ve got a 150mbit connection, and I’m not willing to sacrifice my bandwidth or add 250ms
(which can easily add seconds to each complete connection) for my everyday stuff. I want that
anonymity and privacy, but the cost is too high.

There are other things I do, however, which aren’t a sacrifice for me. With a decent enough computer,
having the full complement of privacy extensions in my browser doesn’t require any performance
sacrifices. I stay away from mobile as much as I can for a multitude of security reasons (I cannot
recommend it enough). I’m selective in my ISP (as selective I can be with the very few options available).
I try to be more mindful and supportive.

''Do you think the US is still better than most countries regarding online privacy since there are no
mandatory data retention laws?''

I think the US is among the worst, if not the worst. Plenty of nations do awful things to their people, but
few are as good at hiding or misdirecting away from it as the wealthy and powerful interests of the US.
Also, there is a difference between what laws are on the books and what is actually practiced.
Further, this isn’t just a nation-state problem. Many significant adversaries do not have political borders,
multi-national corporations being a solid example.

''Do you think governmental attempts to crack down on VPNs and encryption will be successful?''

Yes, to some large extent. This is a tricky question in that the answer is both technical and political. On
the technical side, take China and their nationwide firewall as an example. They are only getting better
at it, too. Many governments are working their way toward having the technical capacities to control the
flow of information, including the disruption or prevention of VPNs, encryption, etc. I have no doubt the
US government is capable, and I think they probably will to some extent.I hope governments won’t succeed. I hope we find a way to win the arms race as the 99%. I don’t think we will win, though, at least not on a large scale. There will always be a remnant that exist through obscurity and steganography.

''What is your opinion on the recently passed USA FREEDOM act?''

Lol. It’s a sign of hopelessness and farce. There’s no way to say this nicely or politely. It was a
demonstration of the aristocracy’s rhetoric and false compromises, as well as our inability to do
anything about the military-industrial-congressional complex of our nation. That it has any support from
the populace demonstrates how uneducated and/or brainwashed they are.
```bash
sudo apt-get update
sudo apt-get install vsftpd -y
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
```



WASM tiddlywiki. You could closesource that. 

Learn Rust. Profit. I need to learn Rust with my daughter. 

* Fully decentralized 
The following methods can acquire the latest official version of this wiki:<<ref "1">>

* Visit [[https://h0p3.xyz/|https://h0p3.xyz]] in a web browser.<<ref "2">>
** Grabbed http://philosopher.life/ as well. Haven't setup https yet. 
* Join the [[Resilio|https://www.resilio.com/individuals/]] (formerly btsync) swarm with read-only key at: [[B4OWUSIS36KT27PXSJIYYTTL5MYPOCL7W|https://link.getsync.com/#f=var-www-html&sz=73E6&s=3E5S6FV4LRD7SS2TUEYTN4ZDEFT5SB6X&i=CFC2UQTLPYQFCSDLXLA3KH7Q2XAGGNBNO&p=CCJG3IT7Z63BKGMTMHF5IH5QARYUCPH4]]
* [[Contact]] me and I can send it to you however you wish.

This wiki changes. For posterity's sake, I keep a daily snapshot collection. You can join the Resilio swarm for it with read-only key at: [[BY7DL6VWCYLOEGXQUWEHH7LNT5EK6UCLL|https://link.getsync.com/#f=h0p3.xyz&sz=44E6&s=DBJ2FIZ5WDCRJ24HINZNVFFUDKGH3AU7&i=CNMB6FJQ34QBT5STXDV5WKVWISGVGY3NO&p=CCJG3IT7Z63BKGMTMHF5IH5QARYUCPH4]]<<ref "3">>

As a sidenote, I'm sure it would annoy many computational minimalists that I willingly store virtually the entire site in a single self-editing html file. I'll grant that text files alone have something going for them, but this is a very special tool. This wiki is incredibly portable, functional, and malleable. I consider Tiddlywiki to be a skeuomorphic feat of software engineering. How many virtually complete websites with this degree of functionality and content can you download in a few megabytes?<<ref "4">> Exactly. I think there is profound minimalist beauty to it. Yeah, load times aren't great.<<ref "5">> You can always just sync it instead. 

The following sites are my family's wikis:

* 1uxbox's wiki: [[http://kokonut.life]]
** Resilio read-only key: BP5NMZQF25EICLU27RAWM3AIXRWSNL2CM
* j3d1h's wiki: [[http://jedihacker.life]]
** Resilio read-only key: BDCX3UO5NOBGPGT2LFZU2527IMXKCOY3T
*k0sh3k's wiki: [[http://bookwyrm.life]]
** Resilio read-only key: B3LKP7KPMNMNWRF75CKLTRB3EIJJTLCNM


--------------------------

<<footnotes "1" "I used to have more methods. But, I believe this was fun yet irrelevant, at least for now.">>

<<footnotes "2" "To guarantee you receive the latest edition of this wiki, clear your browser cache or use private/incognito mode. While I don't force redirects, you can and should access the h0p3.xyz site using HTTPS.">>

<<footnotes "3" "Hear my plea O' Lord, God of Existence, may this not be a record of my descent into arrogant madess. Amen.">>

<<footnotes "4" "Less than 2MB compressed, which is the standard size of any webpage on the web anyways, but you can't multi-threaded download this one.">>

<<footnotes "5" "And, that probably won't be changing. Few if anyone besides myself ever load this page, so I'm not worried about CDNs or optimizing performance (especially not for your shitty machine ;P).">>
Don't we love this section? Let's pat ourselves on the back.

A strong habit and meme that permeates our family is having the wisdom to recognize how often and to what degree we’ve failed to be intelligent or wise over the course of our lives; we evaluate ourselves and see our limits in an honest way that others often do not and very often cannot. Sometimes we are too critical, and sometimes we think too highly of ourselves or thoughts. In my opinion, having the humility to consistently recognize this flaw in ourselves has been one of our family’s greatest assets (and sometimes source of pain).

Our overexcitable sensitivity to the world around us is the first step in a psychological equation describing why we are relatively smart (let’s keep patting ourselves on the back). That sensitivity, to being wrong for example, has led to our intermittent ability to be humble enough to honestly evaluate ourselves. It is the fundamental, evolutionarily selected-for, underlying physiological explanation of our intelligence.

Being smart means our sensitivity causes us to generate very specialized, highly information entropic, yet deeply patterned ideas, beliefs, and inferences. Essentially, being smart means we have very specified reality maps, and it makes sense that we are mathematically more likely to clash, find incongruence, or feel incompatible.
This is a template. It's a generalized gameplan and not an exact schedule. This is about contemplating the overall everyweekliness structure of our lives. Obviously, we must be flexible. It's the kind of thing we naturally keep in our heads, but it is also something worth writing down for more objective analysis. We may need to change it. When I get out of my Pipefitting program, I may be forced to travel for long periods of time. We will need to think about and plan around these kinds of generalized structures. I can certainly do it by hand in my head, but it may be easier, more efficient, and less stressful if we wrote it down for everyone.

* Sunday - The Day of Practical Idealism
** Church
** DCK Meditation
** Reflective Writing
** Family Walk
** Family Book Supper
** Family Meeting
** Chores
* Monday
** School/Work
** Chores
* Tuesday
** School/Work
** Chores
* Wednesday
** School/Work
** Chores
* Thursday
** School/Work
** Chores
* Friday
** School/Work
** Chores
* Saturday - The Day of Ideal Pragmatism
** Make our public library run
** Grocery shopping
** Additional errands
** Clean house (those non-daily chores) & daily chores
** Budget analysis
** Reflective Writing
** Family Saturday Project
** School Accountability and Direction Shaping Meeting
[[Super Mario Bros.]] the movie is weirdcore. So is [[The Fifth Element]].
You want to be a grandmaster pipefitter, right? Learn to fucking weld. Grandmasters have mastered many things. 

* [[Welding Projects]]
* I'd like to make cups. Lol. 
Despite my life falling apart in the past few years, my family's lives have improved significantly since the move. Actually, I feel like my life has been coming together too. That has been hope-inducing and purpose-giving to me. I need to figure out what I'm going to do now. 

The reason I have to live right now is the happiness of my children. I must pursue that purpose with zeal. I can't let that flame die out. Of course, if my childrens' happiness is my telos, then I will have many instrumental values through the necessary conditions for their happiness. [[What is necessary and what is sufficient for eudaimonia?]]

How can I give my children my best? What is best for them? How can I make them happy? Who are they, who will they be, and what do they need? What is my vision for my children? How are the most likely to achieve the highest average utility? 

<<<
[[KIN]]: Watch out, we do not know that [[Eudaimonia]] [[<=>]] Max (Personal or Global) [[Utility]]
<<<

My first practical thought: I'm going to help them become computer wizards and systems-gods.<< ref "1">> They could be jedi-hackers. But, of course, my first thought is too narrow. It is really only a gateway to a broader set of things my children need for the future. They have tobe  philosophical too. They need to find love, to be challenged in the right ways, to figure out their own goals, etc. Achieving happiness is not simple. I need to create [[eudaimonic lifehackers|Eudaimonic Lifehacker]].

Academically, I must help them to:

* become proficient in practical life skills
** Basic accounting and managing their personal finances
*** Do they have a basic understanding of economic, financial, and monetary concepts and principles?
***Do they instinctively look towards with the world in a utilitarian mindset (the only moral perspective which relies heavily upon the frontal lobes)? 
**** Do they practice self-control, planning, and delayed gratification?
**** How much do they use reason to dictate their financial (or even life in general) choices?
** Home economics
*** Can they troubleshoot problems in objects around the home?
*** Do they cook, clean, and organize their home? 
**** Can they make their home a palace they enjoy habitating?
*** Can they gracefully handle having other people in their home (in various contexts)?
* acquire a formal trade skill
* habituate constructive social skills
* round out their education with laser-focused depth in humanities
** I have a very strong point of view in the humanities. It is part of my art and craft in philosophy; the root of the humanities just is my techne.
* become language learners
* become effective self-reflectors




May they be jedi-lifehackers. When they decide to leave my nest, they will have a very practical tool for the [[uberworld|The Uberworld]]. 

How can I raise jedi eudaimonic lifehackers? What is the virtuous character?

They need to learn:

* how to learn
** broadly: what to learn, why, how, from whom, in the right way, at the right time, and so on and so forth
** how to practice
** how to curate information
*** learning which information to curate and why
*** learning how to build their curation toolset
** to develop and tune a bullshit detector
** how to organize and reassess their reality maps
* to consistently engage in the growth cycle of: taking healthy risks, getting hurt (while sometimes succeeding to varying degrees), and learning from their mistakes 
**i.e. to habituatally improve upon their risk taking algorithm in the rewards system of their mind
**to fail over and over and over, and to not give up
** to see the costs of being the kind of person who gives up easily (to be motivated to avoid it)
** to learn how to pick their battles and goals well, and how to mentally land on their feet after they fall
*** to accept failure, to roll with those punches, and to move on
** to constantly analyze their work+life goals
* to work hard, fast, and efficiently
** to convert work into games they find fun and interesting
** to automate work, to offload the heavy-lifting, to passive gain income
** to see the value in their work, to see its limits and potential
*to see their future selves as part of their authentic self. 
**They must recognize and identity with their 4th-dimensional identity. 
**They must plan and think about who they are becoming, because that just is them. 
** They must learn to empathize with themselves, to talk to themselves, to care about who they are. 

Of course, I need to be a much better role-model in this respect. How can I hope for them to succeed if they don't a blueprint to follow?

I can't teach them or motivate them (or help them learn to teach and motivate themselves) without empathy. I have to understand them to teach and motivate them. My goal is to empathize with my children. I must develop reliable, accurate, and rich theories of their minds, and consistently elect to fire off my mirror-neurons to put myself in the hypothetical world generated by the programmatic details of my theory of their minds. I need to get to know them as well as they know themselves, or I at least need to do my best. I can't understand their individual needs or tailor my parenting to them without empathy. 

They need me to empathize with them, that's what loving them is all about. To guide them wisely requires the resources and love to develop a habit which trains me to gutterally enjoy (to like) empathizing with them in all contexts, since after all, that is the only way in which I will have the virtuous disposition, perception, and gutteral reflexes to be a an excellent (arete) parent (MacIntyre's virtue of the practice).

On a different note, I now see that I have to help my parents develop reliable, accurate, and rich theories of my mind, and that can only be done if I can do the same for them in a bootstrapping process. It can't be all on them to find their way through my desert. I have to lead them down my very odd network of thoughts. It is my responsibility to engage them in this way. They need my help to empathize with me. 

Alright, so I have answered "What's next?" or "what it is I'm going to do now" with educating my children correctly and helping my parents understand me. Both of these, fundamentally, are about learning how to be more empathic. I must trust in empathy. I must trust my [[Kantian Intuition Network]] (KIN), and I must do it regardless of the conclusions of my [[Redpill Intuition Network]] (RIN). It is a kind of faith, but even RIN must accept that the bottom of epistemology is obviously faith, it is the only solution to [[the foundation problem|Epistemic Foundation]]. 

''KIN'': RIN, can't you see 

Metamodernism and Positive Disintegration

---------------------------------

<<footnotes "1" "My goal is not to be a kingmaker. My goal is find the highest utility for my children possible.">>
* Gondola
** Unlike so many before him, he does not purport to be anything he isn't, he simply bears witness to the world as it is.
* Wojack / Feels Man
** Represents feelings such as melancholy, regret or loneliness.
** Perhaps sub-type Smug Wojak in some respects.
Install

```
sudo apt-get install dnsmasq
```

Add the following to /etc/dnsmasq.conf

```
address=/#/127.0.0.1
server=/khanacademy.org/8.8.8.8
server=/kastatic.org/8.8.8.8
server=/kasandbox.org/8.8.8.8
server=/ubuntu.com/8.8.8.8
server=/github.com/8.8.8.8
server=/python.org/8.8.8.8
server=/stackexchange.com/8.8.8.8
server=/stackoverflow.com/8.8.8.8
server=/codeeval.com/8.8.8.8
server=/mrnussbaum.com/8.8.8.8
server=/philosopher.life/8.8.8.8
server=/kokonut.life/8.8.8.8
server=/jedihacker.life/8.8.8.8
server=/bookwyrm.life/8.8.8.8
server=/gmail.com/8.8.8.8
server=/jabber.at/8.8.8.8
server=/google.com/8.8.8.8
server=/wikipedia.org/8.8.8.8
server=/mozilla.org/8.8.8.8

server=/duolingo.com/8.8.8.8
server=/d2.duolingo.com/8.8.8.8
server=/d37gvrvc0wt4s1.cloudfront.net/8.8.8.8
server=/d7mj4aqfscim2.cloudfront.net/8.8.8.8
server=/d35aaqx5ub95lt.cloudfront.net/8.8.8.8
server=/duolingo-forum-prod.duolingo.com/8.8.8.8
server=/s3.amazonaws.com/8.8.8.8
```

Restart the service with the new configuration file

```
sudo service dnsmasq restart
```


Being rational sometimes grants utility. Being perfectly rational always grants you the best utility option (which doesn't necessarily grant you utility, but only the best of the options). Failing to consistently be perfectly rational sometimes, or failing to be fully rational in an instance, doesn't always grant you the best utility option (utility outcome prediction errors or selecting the option with the highest utility errors [seems deeply dysfunctional to do] have those kinds of results). People aren't always picking what maximizes utility. 

People can be burned by trying to be rational. They can be humiliated and embarrassed of who they were and what they used to believe. They can see that people 


I realize the enormity of what I'm asking. Securing the internet systematically is hard for a bunch of incredibly complex reasons. It is clear to me that very large tech companies should have a vested interest in really do this systematically (instead of from working inside). They don't seem to act upon it. Just another reason to doubt authority, wealth, and power. =(

We have to fight for it tooth and nail as a people.
I'm not a professional because I don't make a living by thinking, reading, and writing about what the academic world considers academic philosophy. I don't publish in peer-reviewed journals or write books with that audience in mind. 

Don't get me wrong, I am capable of thinking at that level. I regularly do. I've got the training but not the rubber-stamp seal of approval.<<ref "1">> That isn't to say I don't respect academic philosophy or the degree. I do. I am still proud of the high praise I have received from my professors. Their opinions mean a lot to me. I am profoundly affected by what I have learned. Academic education has transformed me. 

Unfortunately. there is something missing in academic philosophy. It is a popularity contest corrupted by capitalism which has left behind and suppressed the pursuit of //systematic philosophy//.<<ref "2">> Academic philosophy is still spinning its wheels in post-modern deconstructionism, and that's probably because there is no foundation we can all rationally accept (I don't know if this dooms the CI or not, but I think there is a way out). The goal of being an academic might be to find a very tiny spot to leave your mark or to push the bleeding-edge of the public sphere of knowledge. Who wouldn't like to be famous for what they think? But, that isn't ultimately what I'm after. When I'd talk to my peers and teachers over the years about this issue, they would give me a puzzled look. Understandably, I suppose, since I'm not buying what they do.

Philosophy is deeply practical to me. It is a framework or lens through which I interpret the world. I'm here to be philosophical about my life. I'm doing philosophy for myself, not for others.<<ref "3">> That isn't to say what I'm doing shouldn't be or isn't useful to others, but it does mean that my work doesn't fit nicely into the topics du jour then "I'm out."<<ref "4">> Some people are lucky enough to have opinions that are popular, that coincide with the intuitions of others so effectively that they are readily accepted into the fold. I am a misfit with terrible social skills. That's okay though. I'm still a philosopher.

-----------------

<<footnotes "1" "I'm exceedingly grateful for the opportunities I've been given. I won the lottery back-to-back-to-back to be paid to go to school to learn a discipline which is generally considered esoteric, useless, and irrelevant by the world at large.">>

<<footnotes "2" "I'm not the only ex-academic philosopher who thought this. That doesn't mean we are correct. And, of course, market-based academics does generate valuable work in many ways. Markets are as imperfect as the people in them though.">>

<<footnotes "3" "That sounds really selfish. I think my philosophical views obviously have impact on the people around me. What I believe affects what I practice and how I behave. This is a doxa->praxis.">>

<<footnotes "4" "Project Runway: Heidi Klum's voice, please.">>
We all want to be empathic .
I hope this becomes one of the most important logs I keep on this wiki. It seems infused with the fundamental practice of talking to myself on this wiki. It is at least part of the kind of manual labor one must do to filter, interpret, and process previous work. At the very least, it offers me the chance to redraft what I wrote before. I hope that once I get this plate spinning that it will enable me to spin much larger objects.<<ref "1">>

I must force myself to have a conversation with myself. I should not "fire and forget." This is part of holding myself accountable to maintaining key feedback loops on this wiki. I'm hoping that this log will feed information to 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖. This seems like a basic way to grind the meta. 

Re-read at least all "New" content created the previous day.<<ref "2">> If you have the chance, review "Recent" as well.<<ref "3">> Reflect upon it, comment, and strategize. Edit and revise it. Listen to yourself. 

!! Vault:

* [[2017.04 -- Wiki Review Log]]
* [[2017.05 -- Wiki Review Log]]
* [[2017.06 -- Wiki Review Log]]

!! Current Month:

* [[2017.07.01 -- Wiki Review Log]]
* [[2017.07.02 -- Wiki Review Log]]
* [[2017.07.03 -- Wiki Review Log]]
* [[2017.07.04 -- Wiki Review Log]]
* [[2017.07.05 -- Wiki Review Log]]

I need to self monitor. Am I following through? Does this work? Does it help me? How can I improve it? Is it overwhelming, or is it feasible?

If it becomes absurdly useful, maybe I should create a stack of work, a backlog. Many logs don't require much more work or digestion, but some pages are avenues that should be taken. These are paths to walk down. This is a way of systematically doing more long-term work from short-term seeds. Again, this is contingent on many things. I'm just considering the possibility.

---

<<footnotes "1" "This is a terrible metaphor. I'm not sure how to explain it.">>

<<footnotes "2" "Don't forget to use [[Wiki Script: Wiki Review Log Python Script]].">>

<<footnotes "3" "The fact is that you need to work on projects which are old as well!">>
```python
#!/usr/bin/python

# Parse the copy'n'paste into command line to clean it up for pasting straight into a link log. Presumably, it is already formatted, it just has some metadata on the front we don't like.

# Usage example from console: 
# ~$ wikireview.py "[11:34:20] asdf-123: * https://www.nature.com/news/2011/110411/full/news.2011.227.html
# [11:34:31] asdf-123: ** No, no, no. People are ideally rational, right?
# [11:42:02] asdf-123: * https://youtu.be/dbo1a5WzXX8
# [11:42:07] asdf-123: ** Beautiful, frisson"

# Just paste from your CnP clipboard!

# You'll want to install pyperclip
# sudo -H python2 -m pip install pyperclip
# sudo -H python3 -m pip install pyperclip
import pyperclip
import sys

# Parse text from command line argument
text = sys.argv[1].splitlines()

# Format and generate clipboard string
clipboard = ""
for line in range(len(text)):
    clipboard += text[line][21:] + "\n"

# This is magic I don't understand. Thank you. Just paste away!
pyperclip.copy(clipboard)
spam = pyperclip.paste()

```
```python
#!/usr/bin/python

# Copy the "New" or "Recent" section into command line, build the template I'll fill out, and make it paste-able.

# Usage example from console: 

# ~$ wikireview.py "Carpe Diem Log
# 2017.06.19 -- Prompted Introspection Log
# Prompted Introspection Log
# 2017.06.19 -- Diet Log
# Diet Log
# 2017.06.19 -- Wiki Review Log
# 2017.06.19 -- Pipefitting Log
# Pipefitting Log "

# Just paste from your CnP clipboard!

# You'll want to install pyperclip
# sudo -H python2 -m pip install pyperclip
# sudo -H python3 -m pip install pyperclip
import pyperclip
import sys

# Parse text from command line argument
text = sys.argv[1].splitlines()

# Format and generate clipboard string
clipboard = ""
for line in range(len(text)):
    clipboard += "* [[" + text[line].strip() + "]]\n" + "** \n"

# This is magic I don't understand. Thank you. Just paste away!
pyperclip.copy(clipboard)
spam = pyperclip.paste()

```
* [[Wiki Script: Tox-2-Wiki Text Formatter for Link Log]]
* [[Wiki Script: Wiki Review Log Python Script]]
You will (and probably always) learning how to use this medium. It is unclear how to wield this tool like a master, for maximum effect. You should be hone your questions here. Mull it around. You can write 1st-personally here, since this not a place where anything is set in stone. It will be the seed, hopefully, which we cultivate into answers.

* It is unclear to me which pages should be static and which should be dynamic. I do not understand the real method and principle behind timestamping. What is an evolving page that I can edit, and what should I keep a versioning log of? I do keep a daily snapshot, but I want to understand how the structuring on the wiki itself ought to go for this problem. I've not yet solved or understood it well enough.



Structure, Code, etc.

* Import/make a calendar
* Center the Tiddlers, shrink the width, but scale to screen size

Content:

* Import relevant bookmark work
* Import relevant Reddit work
* Interpret Less Wrong
* Interpret Daoism
* Interpret https://meaningness.com/
* Interpret The Stack
* Interpret XKCD and SMBC
* Interpret http://tvtropes.org
* Evaluate other Internet Rabbit Holes

Obviously, you are the primary audience, h0p3. That said, there are others who may read it. More importantly, there are standards you should hold yourself to. Recall that Kantian rationality has a democratic, hypothetically crowdsourced kind of reflection to it. Do not lose that idealism. T

* Assume you read it.
* Assume your wife reads it.
* Assume your family reads it some.

Who is your ideal target audience if it isn't on this list? 

If you aren't writing to those people, then you should be aiming very high. You should be pleasing the the ghosts of the most intelligent people you've ever met, and beyond if you can. Pretend Aristotle and you were timestop-trapped on the Island of Lost Time, what would you say to him? You're going to fail at this lofty goal, absurdly. Shoot for the stars though. There is no reason not to try your best, not to envision an audience that you need to learn from, respect, and seek the approval of.<<ref "1">>

It's important not to compare yourself to perfection here. You need to speak to an idealized person to keep you in check. The way in which they are supposed to keep you in check is not through shame, disrespect, or disapproval. They literally disagree with your ideas, not you (even if that isn't conceptually possible). You are holding up a very particularly high standard of the good. Don't be blinded by its brightness. Do not stare into it! Use it to guide your path, not burn you. Do not compare yourself to the perfect, The Good itself (even if it only exists in your mind or is valuable because you value you). It is an impossible aspiration, and yet it illuminates the world and ourselves for us. Be thankful you have it, even if it isn't real.<<ref "2">>

-------------

<<footnotes "1" "Even if those might not be generally appropriate or healthy perspectives to take up about real people.">>

<<footnotes "2" "Obviously, don't be religious about any more than you have to be. Take up the axiom, but be critical, God damnit!">>
Be the kind of author that:

* chooses to value writing over reading (and other activities) when something feels wrong.
** Self-reflection should replace all other compulsions.
* pragmatically chooses not to read or write on this wiki when it is getting late in the evening.
** Unless you don't absolutely need to go to bed and feel very strongly about needing to work on it. 
** Be warned: it will keep you up. 
** This wiki is a difficult kind of introspective work that needs to be done in a constructive, quiet, safe, and focusable environment.
* records aphorims. 
* looks for rules of thumb about himself and the world. 
* habitually seeks patterns in thought and behavior. 
** You need to have the most accurate picture of who we really are to make effective, world class, virtuous decisions about what to do. 
** You are habituating virtue in yourself when you have the executive function to look at yourself and the world in a consistent, practical, and theoretical manner.
* ignores haters, would-be haters, and hypothetical haters.<<ref "1">> 
** Some people will think this is too cold and calculated. They think life should feel more organic. I mean no offense to these retarded Romantics, but they clearly do no understand the nature of reason as it relates to meaning, virtue, and The Good itself. They defensively and confabulatorily rejecting you. It's irrational, and you should see them as such. Don't be hurt by their stupidity.
** Additionally, the anti-intellectual #iamverysmart crowd of cowards and psychopaths can fuckoff. They do not care about you or what you are doing. You have to care about yourself. You are valuable because you value yourself, QED.

----

<<footnotes "1" "Note this difference between constructive criticism and haters.">>
//Oh, you're asking who is root? I'm still figuring that one out. Let me guess: it's me, right?// <<ref "4">> 

Here we examine the generalized, high-level process flow of this wiki. Remember that writing this wiki is like piloting a computer. You have to make it do what you want and need it to do. Feedback loops are part of the heart of this wiki's success. Connect it wisely. I think it's exceptionally important to see the difference between FO (First Order) and SO (Second Order) wikipages. 

Below are the list of SO process-files running on this wiki:

* The 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 page is this wiki's bootloader, it is one of the few root-only write access areas. 
** Be ever so wise with your root access. 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖 is your current foundational narrative.
*** Make decisions which enable you to escape/build yourself out of your [[Positive Disintegration]] (i.e. make sure it is as positive as it can be).
** We can't really password ourselves out of it. We just have to trust ourselves. Yup. You're trusting trust. You're free to program yourself.

* The 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖 page is concerned with the quantitative, direct, and pragmatic resolution of the conflicts in 🢔⦗[[About|About, a.k.a. The Opening of the Rabbit Hole]]⦘🢖.

*The 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖 page examines where you've been spending your time on 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖. Essentially, it is a place to inspect the focus of your wiki. 
** There you turn Husserl's ray of intentionality upon itself in a long-term way.
** When we are thinking existentially in a recursive manner, we can decisively align our many orders of networks of beliefs and desires. 

* The 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 page is something like this wiki's /home/h0p3

* The 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖 page is perhaps like this wiki's /var/www/html. It's the Long-Term Project. In a sense, it is an end by-product of this wiki that you're slowly rendering and creating content for each day (the final end and ultimate reason for this wiki being your happiness). Who you were just is part of who you are. Our memories and broader narratives matter.<<ref "5">> 


--------------

<<footnotes "4" "Kant and Hume are calling to me. Fine. Be reasonable in your faith in your autonomy. Enjoy what you can of forcing yourself to believe you are free. You'll know you are free eventually; it won't bother you.">>

<<footnotes "5" "Yea, thou I walk through the valley of nihilism, I value things, thus they are valuable. Lol.">>
<div style="text-align:center;display:inline">
<div style="font-family:monospace;white-space:pre;">
<$view>
</div></div>
* Hierarchical lists
** Lexical, alphabetical, and other orderings have meaning and purpose.
** Alphabetically arranged unless you have a good reason.
** Avoid the "weighing" problem when you're not there yet.
** Have links you will click on and use. 
*** Change it wisely and often.
*** Lose the dead weight, and reason about why the project failed.
** Keep it clean. 

* Every major Wiki-Directory of Directories can have some default directories
** /b/ -- Random -- The Playground of the Sandbox -- Seed
** Log
** Current Plan
** Planning
** Vault (highlights the overall conversation, it is meta about the log)
** etc.

* Use logs and templates. 
** Systematically ask yourself questions, answer them, and have data to work with. 
** You are doing science on yourself. Treat yourself like an operating system. Do things that are generally very practical with computers to your mind. Be meta about yourself.

* One must periodically iron the wrinkles out of the wiki. 
** Do a detailed comb through it. Be vicious with your own work. Edit, revise, analyze, and synthesize!

* Maximize the dimensionality of the wiki. 
** e.g. footnotes, tags, tiddlers/wikipages themselves, titles, bullet points, sentence-lists, etc. 
** Hold in tension many domains, strings, and orders of thought.
** Maximize your metativity.

* Maximize the way you appropriately capture "Who I Was, Who I Am, and Who I Will Be."

* Document your progress.
** Date of original posting
*** Not all posts should be dated "YYYY.MM.DD --" since they are more likely to morph or constitute much longer-term thoughts.
** Date of last modified
** Give meta-accountings for what you are doing. Find the structures and trends in your thought patterns.

* Tags
** Apply [[1uxb0x]], [[j3d1h]], and [[k0sh3k]] tags (and others if applicable) in order to quickly generate lists of content meant for or about a person that is dearest to me.
** Apply a KIN or RPIN tag whenever we strongly suspect it belongs to them.
*** If this is a tug of war between RPIN and KIN, then we should study our shape. Apply the Williams' Moral Weighing model, What percentage is RPIN of the wiki compared to KIN at any given time slice? Who is winning? That's where reason takes us friend. Love yourself. Accept who you are. Only then will your reason truly control how you shape yourself at a fundamental level in your [[Frankfurtian Feedback Alignment|2017.03.15 -- Frankfurtian Feedback Alignment]] of your FO-SO paired selves. 

* The Structure of a Blog on this wiki
** Intro/About/etc.
** Vault
** Current Time Period (usually month)
** Ideabag
** Other Long-Term subproject Ideas
*** Foobar
*** Boobs
*** etc.
These are the Rawlsian-lexographically ordered guiding existential axioms and fundamental principles of this wiki: 

* Be [[h0p3]]!
** Have hope. Believe you can succeed. 
** It's a spark of reason with enormous emotional force behind it.
** Don't let your flame die out. Protect it. 

* [[Be Happy!]]
** Engage in the science of becoming happy.
*** Be utilitarian. Be rational.
** Train yourself to be a [[eudaimonic lifehacker]]. 
** Be the correct, worthy, rational, and self-accepting version of Jesus' Kantian Man. Tame Kant's whimsy, habituate him, teach him utilitarian virtue. Discipline yourself and be stoic. See the world for what it is, and understand your place in it. Accept your station, reasons to live, and do your best in life. 
** When it comes to life: lick the spoon, suck out the marrow, and squeeze out every drop of happiness you can. 
*** Be cozy, appreciate small blessings, etc. 
*** Seize the day
*** Attend to the right objects with your ray of intentionality in a patterned way.
** Take calculated risks. them
*** Success requires failing in the right ways for the right reasons, etc.
*** Perfectionists tend not to take enough risks. Thus, you should take more risks. Fail more often. Just do it. You'll get hurt sometimes, but it's worth it in the end. Succeed at the Marshallow Test of Life: promote effective executive functioning.

* [[Do your best]]
** Be wise!
** Don't give up! Don't be akratic!
** Work hard!

* [[Know Thyself]]
** Be stoic. Find the mistakes in yourself. Own it. Forgive yourself. Solve it. Find the best move, and apply it. Rinse and repeat.

* [[Virtue is Knowledge]]
** Do your best (be rational), and have a good attitude (be empathic).
** Use the [[Slowmind]] and [[Fastmind]] in the right ways, at the right time, and so on. i.e. Be excellent. Be virtuous at a practice. What practice? The practice of making myself happy, of becoming eudaimonic. Be moral in the right way, be the right kind of renaissance man, be a eudaimonic lifehacker, etc..

* [[Have a Good Attitude]]
** Be happy while being moral (goodluck!).
** Balance yourself through reason.
** Consider the contradictions in yourself, but learn to be okay with them and/or fix them when you can. 
** When all else fails, rely upon stoicism, empathy, and hope. 

* [[Empathize with yourself]]
** And, hence, empathize with others.
** Be honest and open about who you are.
** Argue, charitably, with yourself.
*** Forgive yourself when you don't.

* [[Program yourself]]
** Understand the best patterns necessary for positively adjusting your reasoning behaviors. 
** Be practical and idealistic. Weld it together, yo!
** Actually engage in the practice of sculpting yourself on this wiki by organizing it. 
* Progress is made by making new tiddlers. Push forward. Be courageous, but not reckless. Golden mean your progress.
* You are in a conversation with yourself, so let it flow.
* There is a time for computation of the contents of the wiki and a time to compute the contents for the wiki. Lastly, there is a time to infinite regress (maybe we should just call it [[Infinigress]]) into meta-wikidom.
* Find your voice, and keep finding your new voice.
* Find the tools to empathize with yourself and others. Practice them. The Art of Empathy is the among the highest of technes.
* When you feel like a nobody, you don't feel the pressure to be somebody. Use that freedom. Become who you want to be. 
* Utilitarianism
** Diminishing Marginal Utility

* The Unix guru philosophers of yore offer us this wisdom
** Write programs that do one thing and do it well.
** Write programs to work together.
** Write programs to handle text streams, because that is a universal interface.

* Other famous programming principles and dictums:
** DRY. Don't Repeat Yourself. Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
*** Write code designed to be reused (corollary of DRY).
*** Rule of Three (a pragmatically weakened rule-of-thumb variant of DRY for refactoring). Code can be copied once, but when the same code is used three times, it should be extracted into a new procedure.
** If it ain't broke, don't fix it.
** 

* The Bayesians have much to say.

* The Less-Wrongers, Positive Disintegrationists, Meaningnessists, Nihilists, Socialists, Redpillers, Daoists, and other Metamoderns also have much to say.

* When all else fails, carefully consider the wisdom of the crowds, but turn up the signal-to-noise ratio as high as you can by curiously curating (be intellectually honest).
You have a 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖 page. This page is more specifically about the engineering and using the wiki as a technical instrument.

* [[lost+found]] 
* [[Tips for Using this Wiki]]
* [[Tiddlywiki]]
* [[Wiki To-do-list]]
* [[Reasons to Use a Wiki]]
* [[Wiki Theory, Questions, Problematics, and Investigations]]
* [[Wiki: Scheduled Practices]]
Having a conversation with myself means I should spend non-trivial amounts of time reading my own work. I need to engage in the habit of actively listening to myself in order to make use of this feedback loop. I can't leave it up to chance. Thus, I must schedule and plan the practices of working on my wiki. Schedule making new content, and schedule digesting it. 

Below you will find a list of processes that I aim to consistently practice.<<ref "1">> I hope to habituate it as a reflex. This is key to programming oneself. My only worry is that I'll continue piling things on until it becomes unwieldy and too much work. I need to be careful here. It is all too easy to create unmanageable and impossible tasks sets for myself. Apply the KISS principle.

Note that this section is perhaps more transient and malleable than other sections of 🢔⦗[[Principles|Principles of Programming Myself]]⦘🢖. It's the nature of the beast. Consider it firmware, middleware, dynamic rather than static (on that gradient), or more RAM-like than ROM-like.

* Daily
** [[Diet Log]]
*** Be wise with what you eat. It affects you in a multitude of ways: socially, physically, and mentally. You have much to gain by being disciplined in this area. Empathize with yourself.
** [[h0p3's Log]]
*** Some of the hardest work you do on this wiki is in this log. This is the real grind. Do it.
** [[Link Log]]
*** This is fun. It's intellectually stimulating. It can also be incredibly useful. Use it as a means to curate tools and information, to help you build your life and reframe the world. 
** [[Pipefitting Log]]
*** If you are spending most of your day working on something, you should spend a considerable amount of time writing about it. 
** [[Prompted Introspection Log]]
*** You ask and answers random introspective questions. Run with whatever hits you. See where it leads. Never stop writing.
** [[Wiki Review Log]]
*** You must force yourself to have a conversation with yourself. You should not "fire and forget." This is part of holding yourself accountable to maintaining key feedback loops on this wiki. Let us hope that this log will feed information to 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖. This seems like a basic way to grind the meta. 
*** Re-read all "New" (not Recent) content created the previous day. Reflect upon it. Edit and revise it. Listen to yourself. 

* Weekly
** [[DCK Meditation Log]]
*** You are staving off depression. Do not let your guard down. This is part of your self-monitoring, but it is also an opportunity to explore. Recall that hallucinogens and dissociatives activate and expand your consciousness. Awareness must be harnessed. Use yourself for yourself in a long-term and wise manner.
** [[Family Log]]
*** Your family is important to you, right? Collect data. Systematically inquire. Integrate yourselves. Teach your children how to think about life and how to live.
** [[Family Wikis Log Collection]]
*** This wiki is clearly the best tool you've ever used. Your family needs access to it as well. It may take them a while to wield it well (not that you wield it well). Take the time to guide them. More importantly, take the time to integrate yourself into their lives at this level. This is what being family is about. It's about caring about each other's lives. Remember to treat everyone with respect. This is no place for censorship or heavy-handedness. Be open and kind. Be empathic. This is truly a way to stay connected from any distance. We must be ourselves on our wikis. 
** [[Homeschooling Log]]
*** While you will be a traveling worker, you still need to be a strong participant in your children's education. This is mostly a planning tool for now. Perhaps it will grow into more.

* Monthly
** Audit and archive your daily and weekly logs. Read them, digest them, summarize them. 
** 🢔⦗[[Focus|Current Focus of h0p3's Wiki]]⦘🢖 Log
*** You've been looking for a way to make principled, systematic, consistent decisions about the nature of 🢔⦗[[Projects|Projects on this Wiki]]⦘🢖. Let's hope this is the tool.

* Quarterly
** Audit and Review your Monthly archives. 
** Edit/revise and adjust your trajectory.

* Yearly
** [[Annual Wiki Review]] Log
*** Summarizing and cataloging it in 🢔⦗[[Vault|The Vault of h0p3]]⦘🢖 would be completely reasonable. What better way to handle it? You've been searching for a way to understand the fitting places to draw the timeslice lines. Why not this way? It is quite systematic and holds you accountable. Furthermore, you can always reshape it. It doesn't have to be set in stone. This is just one strong looking possibility.
** Don't forget to summarize.

Right now, the only scheduled practices I have are updating and auditing my layers of logs. I may eventually have other kinds of maintenance, updating, or evaluative practices that the logs aren't suited for. This should kind of be like the crontab of this wiki. 

---

<<footnotes "1" "Previously found on [[Logs Collection]]. I'd like to point out that I consider it a bad practice to have two copies of the same data. Keeping them synchronized will eventually fail. There should only be one place to store it. Screw symbolic links (implementable, but why complicate this?).">>
Love it or hate, Windows has arguably the richest and most backwards compatible software ecosystem to date. It's nice to see older tools retaining their usefulness, and surprisingly, many remain the best or only tool of their kind for the lineage of Windows versions. Unfortunately, a few of these tools must be pirated. 

Administration, Local File Control, and OS mods:


* 3DP Chip
* 7-zip
* CCleaner
* Classic Shell
* Dexpot
* Everything
* Find and Replace
* Gamma Panel
* Intel Burntest
* Hiren's Boot Disk (I suggest automounting)
* HP USB Disk Storage Format Tool
* Huge Small File
* HWinfo
* KMSpico
* Poweriso
* Process Explorer
* RBtray
* Revo Uninstaller
* Rufus
* Teracopy
* XYplorer




Automation:

*Advanced BAT to EXE Converter
*Autohotkey
*Filebot
*Folder Monitor
*Pulover's Macro Creator
* Resilio
* Synkron




Development and Production:

*Python 2.7 and 3.5
*Sublime Text 2
*Java 8



Media:

*Calibre
*Gimp
* Kodi
* Microsoft Office
*Sumatra PDF
*VLC media player



Op Sec:

*GNUpg
*Hashtab
*Kee Pass
* Open VPN
* Proxy Searcher
* PWGen
* Quick Hash
* Softether VPN Client (including vpngate server list)
* Truecrypt 7.1a
* Windscribe (sometimes a free commercial VPN is worth having)



Piracy:

*aMule
*Apex DC++
*Ares
* qBittorrent
* SABnzbd
* Shareaza
* Soulseek QT



Remote Access:

*Filezilla Secure
*No Machine
* Teamviewer



Social Tools:

*Hexchat
*Pidgin
*qTox
*Retroshare


Web and Web-like Tools :

* Google Chrome (hate that I use it, but sometimes you need it)
*i2p
* Mozilla Firefox
* Tor Browser Bundle
* Zeronet Bundle



Virtualization:

* Nox
* Sandboxie
* Virtualbox
* VMWare Workstation
* Abilities
** Force Kite -- At-Will
*** Deal direct damage to target, and the target is randomly snared (slows movement speed) or knocked back a considerable distance away from me.
** Levitate -- At-Will
*** Cause target object neither larger nor heavier than myself to levitate up to 5 feet higher from its previous position. The target naturally floats down slowly over the course of 1 minute.
** Time Stop -- Daily Type
*** Time stops for everything except me for 10 seconds. I can reposition myself (including my gear), but I can't move anything else. No one besides myself perceives what goes on in these 10 seconds.
** Enthrall -- Conditional Type
*** If I can see my target's eyes, I can choose to hold myself and my target mesmerized. We take no actions and we do not move. 
*** The effect is broken if either my sight of their eyes is broken or whenever one of us takes damage. Otherwise, I can break the effect at any time.
** Frozen Guard -- Innate Type
*** All damage against me has a chance to stun my attacker.
*** Stunned targets are unable to act or move, and damage does not break the effect. 

* Appearance
** 6'6", lanky build, and long a silver beard. 
** Like any classic wizard, I resemble Gandalf from them Harry Potter movies.<<ref "1">>
** I'm fairly amiable and seem friendly enough.
*** "Would like a piece of candy?"

* Items
** Non-Magical Items
*** A Yo-Yo
*** A Bag of Assorted Hard-Candy.<<ref "2">>
*** A Sling-Shot
*** A Steel Knife
*** A Piece of Flint
** Magical Item
*** Bottomless Bag of Holding -- A bag with a 1' by 1' opening. It has infinite and weightless storage. It can also store other bags.

* Weaknesses
** Immobilize -- All my abilities have a chance to root me for a few seconds.
** Achromatopsia -- Total color blindness and cannot achieve satisfactory visual acuity at high light levels.
** Low Physical IQ -- All athletic, strength, and dexterity checks require an additional saving throw to succeed.


---

<<footnotes "1" "Just the first one though, the second actor was terrible (but, so were the movies).">>

<<footnotes "2" "The made from sugar kind. I realize this breaks the stack rule, but I think it's acceptable here.">>
* Dyadic meta-accuracy: Thinking about how other people think about you.
* Moral fluency<<ref "1">>
* Paraprosdokian: a figure of speech in which the latter part of a sentence, phrase, or larger discourse is surprising or unexpected in a way that causes the reader or listener to reframe or reinterpret the first part.

---

<<footnotes "1" "My daughter made this phrase up. How? Wow.">>
* http://www.self-esteem-health.com/reflective-journal-writing-prompts.html
* https://psychcentral.com/blog/archives/2014/09/27/30-journaling-prompts-for-self-reflection-and-self-discovery/
* https://www.linkedin.com/pulse/52-writing-prompts-self-reflection-discovery-janine-ripper
* http://dce.oca.org/assets/files/resources/170.pdf
* https://gritandvirtue.com/25-journal-prompts-self-reflection/
* https://www.mantelligence.com/good-questions-to-ask-to-get-to-know-someone/
* http://reflectionsfromaredhead.com/105-writing-prompts-for-self-exploration/
* https://daringtolivefully.com/journal-prompts
* https://www.reddit.com/r/QuotesPorn/
I worry you think that my only or best way out of my depression is to reconvert to Christianity. Like you think is some spiritual problem played out in a physical dimension. Like this is a spiritual warfare taking its toll on me. As if the only way to be free and happy is to accept Christ again. 
I think you did not understand the minds of your children in important ways. I think it also really hard to understand the minds of your children, since they were not neurotypical. I think you technically had the ability to learn and repond to these problems, and you didn't. I also think you had so many other pressures in your life as you were raising us that you couldn't empathize with us. If generally believed you did have the time, energy, resources, and life-direction to do it.